In this video· click a step to jump to it
Test recording
Featurely — register + app walkthrough
48,722 ms · 674,286 pixels changed
We built this regression test for www.featurely.no — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against www.featurely.no. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
// Featurely uses Firebase Auth — same email can only sign up once. Every
// re-run must use a fresh email or Firebase silently rejects with "email
// already in use" and the form stays parked on /sign-up. We compute the
// suffix at RUN time (Date.now()), not at test-creation time, so re-runs
// never collide. Plus-addressing routes all mail to [email protected].
const STAMP = Date.now().toString(36);
const DEMO_EMAIL = `viktor+featurely.run${STAMP}@lastest.cloud`;
const DEMO_PASSWORD = `•••`;
const DEMO_NAME = 'Lastest Demo';
const shot = (n, slug) => screenshotPath.replace('.png', `-${n}-${slug}.png`);Checks run
Notes from the demo run
AI-generatedFeaturely is an indie-dev admin suite that delivers what its marketing promises — one dashboard replacing feedback, errors, uptime, flags, analytics, i18n, and a CMS-ish 'Versions / Translations / Maintenance' grab-bag. The visual language is restrained and disciplined for an indie: dark theme with one accent yellow used identically on the F logomark, the primary CTA, the trial banner, and the active sidebar nav item; the same yellow underline-stripe shows up on blog covers, the pricing CTA, and the /demo Enter button. Public-side, the pricing page's compare-plans table is unusually candid (Hobby gets 1 project / 15-min uptime checks, Indie gets 5-min checks at €12/mo — granular asymmetry signalling a founder who's thought about each stage) and the blog reads like a manifesto stack ('Stop Juggling SaaS Tools', 'AI Generated Slop', 'Public Roadmaps'). Authenticated-side, the /dashboard sidebar is the strongest UX detail: 20+ routes grouped into Overview / Developer / Insights / Settings, with a yellow active-state stripe and a Featurely v1.0.3 version pin in the top-left. The 8-step Welcome tour appears on first dashboard load and is dismissable via Esc or the × icon — well-handled progressive disclosure rather than a forced wall.
- Pricing transparencyThe FAQ line 'No surprise charges — billing only activates when you turn it on' is the kind of detail that lands with indie buyers. Combined with the explicit '€15/seat/mo' in the compare-plans table, it sets up trust before the user even tries the product.
- Brand consistency across surfacesThe F mark, accent yellow, and yellow underline-stripe show up identically on the home hero, blog covers, pricing CTA, /demo Enter button, the authed dashboard's active sidebar item, AND the trial banner. Most indies break visual consistency between marketing and product — Featurely holds it through to the authed surface.
- Blog-as-positioningPost titles ('Stop Juggling SaaS Tools', 'AI Generated Slop', 'Proactive Error Tracking', 'Public Roadmaps') are a manifesto stack. They wedge the product into a worldview rather than walking through features.
- Compare-plans honestyHobby gets 1 project / 1 team member / 15-min uptime check interval; Indie gets 1 project but 5-min checks at €12/mo. That granular asymmetry signals a founder who actually thinks about what an indie at each stage will use.
- Dashboard information architecture20+ authenticated routes are grouped into 4 clear sections (Overview / Developer / Insights / Settings) with a yellow active-state stripe. Even on an empty project, every section renders an empty-state with a one-line description of its purpose ('Feature requests and bug reports submitted by users via the public API'). Lower friction than the standard 'pick a project first' wall.
- Onboarding flow is two clicksPost-signup goes /onboarding → 'Create your first project' (single text field, default 'My App' placeholder) → /dashboard with the 8-step Welcome tour. No multi-step setup wizard, no plan picker, no card capture. Possibly the shortest onboarding I've seen on an indie SaaS this surface-heavy.
- /demo 'Enter the live demo' never landsClicking the primary CTA on /demo flips the button to a disabled 'Signing you in…' state with a spinner. We waited 6+ seconds and the button remained stuck — no redirect, no error, no console message. See Scenario 3 screenshot. The loudest UX failure on the marketing surface: a paid visitor would assume the product is broken and bounce. The free-account fallback at /sign-up works but is a route-away from the headline value prop.
- Cookie banner covers the page on first paintThe 'Cookie preferences' modal is a centered overlay (not a footer banner) and blocks the hero on first load. A banner-blind visitor will scroll past without realising the hero CTA is behind it. The test dismisses via 'Accept all cookies' before each public screenshot.
- Trial banner shows nonsensical countdownOn every authed page the top banner reads 'Your 14-day Indie trial is active — 878 days remaining.' The 878-day figure is likely a clock-skew bug or hard-coded test value rather than a real entitlement. Either way it reads like dev leftover on production — a founder would want to fix this before sending visitors here.
- /dashboard/settings is unreachable without a projectRouting into /dashboard/settings before a project exists shows only a 'Select a project — Choose a project from the switcher above to customise statuses and update project details.' empty state. The Roadmap, Changelog, and other developer sections also show 'Create a project' empty states. None of them link directly to the project creation flow, even though the user is one step away on /onboarding. Adding a 'Create your first project' inline CTA here would close the gap.
- /dashboard/bugs, /dashboard/errors, /dashboard/logs, /dashboard/tasks, /dashboard/feature-flags, /dashboard/environments, /dashboard/versions, /dashboard/translations, /dashboard/maintenance, /dashboard/monitoring, /dashboard/packages, /dashboard/security, /dashboard/users·Featurely has 20+ authed routes; capturing all of them would bloat the share. Walked the 5 highest-signal pages (Incoming, Features, Roadmap, Changelog, Analytics) and trusted the sidebar nav screenshot to convey the surface area.
- /dashboard/settings·Renders only 'Select a project' until a project exists. We don't create a project in the demo (long-running app op the skill bans). Skipped to keep the share signal-dense.
- Continue with Google (OAuth signup)·OAuth redirects to accounts.google.com which Playwright cannot complete from a clean runner identity. The Firebase Auth email+password path produces the same authenticated session — no demo signal lost.
- docs.featurely.no·On a separate subdomain — not in the demo baseline scope.
5 visual changes
Share this run
This test was built for www.featurely.no — 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.














