In this video· click a step to jump to it
Test recording
Inferect — app walkthrough
109,856 ms · 22,875 pixels changed
We built this regression test for app.inferect.online — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against app.inferect.online. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const shot = (n, slug) => 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, 1300); await new Promise(r => setTimeout(r, 300)); await anim(max, 0, 700); })()";
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-cdn.com/**', function (r) { r.abort(); }).catch(function () {});
// ── Public context: marketing home ──────────────────────────────────────
stepLogger.log('Scenario 1: Public marketing home');
await page.goto('https://inferect.online/', { waitUntil: 'domcontentloaded' });
await page.waitForLoadState('networkidle', { timeout: 6000 }).catch(function () {});Checks run
Notes from the demo run
AI-generatedWe signed up for Inferect, completed the four-step onboarding, created a workspace and an Inferect API key, then walked every surface in the console: Playground, Providers, Models, API keys, Usage, Routing, Organization, Billing, Budgets and Guardrails. The information architecture is the strongest thing here. Every page opens with one plain sentence explaining what it is for, and the API keys page draws the distinction between an Inferect key and a provider key before a new user can get it wrong.
- Every page explains itself in one linePlayground: 'Send a real request through Inferect. This is the same path your application takes.' Budgets: 'Set a monthly ceiling on estimated spend.' That one-sentence header on each route does more onboarding work than a tour would.
- The Inferect-key vs provider-key distinction is made earlyThe API keys page states 'It is not a provider key, your provider keys stay on the Providers page' right under the heading. For a gateway product that is the single most confusable concept and you defused it up front.
- Copy-paste integration is one screenBase URL, plus cURL / Python / JavaScript tabs with a filled-in example, all sit under the key you just created. Nothing to hunt for in docs.
- The Playground is reachable but unusable before a provider is connectedLanding on Playground shows 'No models are available yet' and a greyed-out Send request, so the page that best demonstrates your value is a dead end for a brand-new account. Consider seeding a trial-credit model so the first request works before any provider key is added.
- The onboarding country field silently accepted a workspace nameOn the Organization step we filled the visible text inputs generically and 'Country (optional)' took a free-text value with no validation or autocomplete, so it saved a non-country string. A select, or a simple validation, would stop that landing in your org records.
- /dashboard/webhooks·Walked during discovery but trimmed from the recording to keep it under two minutes
2 visual changes
Share this run
Proof your app is not AI slop
This test was built for app.inferect.online — 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.





