In this video· click a step to jump to it
Test recording
Trinity Desk — app walkthrough
152,392 ms · 629,480 pixels changed
We built this regression test for trinity-desk.com — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against trinity-desk.com. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const shot = function (n, slug) { return screenshotPath.replace('.png', '-' + n + '-' + slug + '.png'); };
const SCROLL_THROUGH = "(async () => { const ease = t => 1 - Math.pow(1 - t, 3); const max = Math.max(0, document.body.scrollHeight - window.innerHeight); if (max < 40) return; const anim = (a, b, ms) => new Promise(res => { const t0 = performance.now(); const step = now => { const p = Math.min(1, (now - t0) / ms); window.scrollTo(0, a + (b - a) * ease(p)); p < 1 ? requestAnimationFrame(step) : res(); }; requestAnimationFrame(step); }); await anim(0, max, 1400); await new Promise(r => setTimeout(r, 350)); await anim(max, 0, 800); })()";
await page.context().setExtraHTTPHeaders({ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36' });
await page.route('**/cdn-cgi/scripts/**', function (r) { r.abort(); }).catch(function () {});
await page.route('**/*sentry*/**', function (r) { r.abort(); }).catch(function () {});
await page.route('**/*posthog*/**', function (r) { r.abort(); }).catch(function () {});
await page.route('**/*google-analytics*/**', function (r) { r.abort(); }).catch(function () {});
// ── Scenario 1: public landing (context frame) ─────────────────────────────
stepLogger.log('Scenario 1: Trinity Desk landing page');Checks run
Notes from the demo run
AI-generatedWe registered on Trinity Desk with name, email and password and were straight into the terminal. The Market Floor renders live totals, a Claude-written AI take on the current tape, a TradingView candle chart with timeframe switching, and a top-10 table. The newsroom auto-refreshes and filters by Crypto / AI / RWA, Topic Pulse ships a genuinely edited weekly issue, and the Report engine generated a personal briefing preview against our own topic list. For a solo build this is a lot of working surface behind one login.
- The AI take is specific, not filler"Total crypto market cap shed roughly $77B in 24 hours, with Bitcoin's 58.6% dominance signaling a classic risk-off rotation" reads like desk commentary, and it is tied to the numbers on screen above it.
- Topic Pulse is an actual edited issueIssue No.022 leads with a thesis and per-signal "why this is accelerating" expanders. That is editorial work, and it differentiates the product from a data dashboard.
- The report engine explains its own threshold"Below your standard intelligence threshold - this report would not be sent under the current level" with "pool score 0, 60 sources analysed" tells the user exactly why nothing shipped. Most digest products just send nothing.
- The Copilot rail overlaps the right edge of every pageOn a 1280px viewport the docked Copilot panel sits on top of the content column rather than beside it, clipping the newsroom and report panes. Reserving its width in the grid, or collapsing it by default below ~1440px, would fix it.
- Signup drops you on the marketing homeAfter Create account the redirect lands on / with the hero and the Subscribe form rather than /dashboard, so the first authenticated impression is the same page you saw logged out.
- /report (Send now / Send test email)·Outbound email - never triggered
- /watchlist·Rendered a signed-out shell during the walk
13 visual changes
Share this run
Proof your app is not AI slop
This test was built for trinity-desk.com — claim it free
One click copies the test and baseline screenshots into your own Lastest workspace. Re-run on every deploy and catch regressions before your users do — free, no card required.






































