
How to Capture Angular Admin Dashboards in TypeScript

Snapshot Site Team
12 Jul 2026 - 02 Mins read
Angular is still the default choice for a lot of internal admin dashboards and enterprise back-office tools, where the audience is internal users rather than the public web. Those dashboards are also some of the most useful screens to screenshot automatically — for reporting to people without direct access, for QA before a release, and for catching regressions after a dependency upgrade.
Why Angular Dashboards Need Careful Timing
- Async data binding. Angular's change detection often updates the view slightly after the initial route renders, once HTTP calls resolve.
- Chart and table libraries (ngx-charts, ag-Grid, Material tables) frequently animate in or paginate on load.
- Route guards and lazy-loaded modules can add a short delay between navigation and the dashboard actually being interactive.
TypeScript Example
Using the Snapshot Site TypeScript SDK, or a plain fetch call:
const response = await fetch("https://api.prod.ss.snapshot-site.com/api/v1/screenshot", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-snapshotsiteapi-key": "YOUR_API_KEY",
},
body: JSON.stringify({
url: "https://admin.example.com/dashboard/overview",
format: "png",
width: 1440,
height: 900,
fullSize: true,
hideCookie: true,
delay: 2,
}),
});
const data = await response.json();
console.log(data);
The delay here covers the gap between route navigation and Angular's async data actually populating the dashboard's charts and tables — without it, a capture risks catching an empty-state or loading-spinner version of the screen.
Practical Recommendations
- Point the capture at the authenticated URL directly, the same way as any session-protected screen — see How to Screenshot a Login-Protected SaaS App for the general pattern, which applies regardless of frontend framework.
- Default to
fullSize: true. Angular admin dashboards are frequently built as long scrollable pages of cards and tables rather than a single fixed screen. - Tune
delayper dashboard, not globally. A simple summary view might need under a second; a dashboard with several chart widgets fetching from different endpoints can need two to three seconds to fully settle. - Strip environment indicators. Internal Angular apps often show a build number, environment name, or feature-flag debug panel that should not appear in a shared report screenshot — the
hidefield on the v2 endpoint removes it cleanly.
Common Use Cases
- Weekly dashboard snapshots for stakeholders without direct system access
- Pre-release QA to catch layout regressions after an Angular or dependency upgrade
- Internal documentation and onboarding material for new team members
- Feeding a scheduled visual monitor, as described in Visual Uptime Monitoring
Why a Direct API Call Beats a Custom Puppeteer Script
Teams that already use Angular for the dashboard sometimes reach for Puppeteer or Playwright directly to add screenshotting, since it is "just another Node dependency." That works until someone has to keep the headless browser version, the sandboxing, and the flaky waits maintained alongside everything else the team owns. A plain HTTP call from the same TypeScript codebase hands that maintenance burden to the API instead.
If you're not sure whether a plain capture or the AI-analysis endpoint fits your dashboard reporting better, see Snapshot API v1 vs v2 vs v3: Which Endpoint Should You Use?.
Snapshot Site renders the real Angular app the same way a logged-in user's browser would, without adding a browser dependency to your own build.

