The SaaS Landing & Dashboard UI Kit Your Stack Has Been Missing.
A production-ready landing page and dashboard UI with 6 languages, auth UI, dashboard, rate limiting, CSP headers, OG images, and 69 tests — bring your own backend and launch fast.
Trusted by 1,800+ developers and indie hackers
Every primitive you need. Nothing you don't.
Zutra ships the marketing site and dashboard UI, pixel-perfect and production-ready — so you can focus on your product's backend and business logic.
Auth UI, Bring Your Own Backend
Login, signup, and forgot-password UI for JWT, OAuth2, magic links, and passkeys — ready to wire into Supabase, Clerk, or your own backend.
Billing UI, Stripe-Ready
Pricing and billing UI for subscriptions, usage-based tiers, trials and proration — connect Stripe Payment Links in minutes, or wire the full Checkout + webhooks flow yourself.
Deploy Anywhere
Ship to Vercel, Cloudflare, or Netlify with the included Astro adapters and deployment guides — no vendor lock-in, no Zutra-hosted infrastructure.
Bring Your Own Database
No ORM or schema baked in — wire up Postgres, Supabase, PlanetScale, or whatever data layer your product needs, without fighting opinionated defaults.
Tested Foundations
69 Vitest tests covering middleware, i18n, and API helpers, plus strict ESLint + TypeScript — a solid base to build your own monitoring and observability on top of.
Team UI & Roles
Team management UI — invite flows, role badges, and audit log views — ready to back with your own RBAC, SAML, or SCIM implementation.
Trusted by builders
Join developers and indie hackers who've launched their SaaS landing page with Zutra.
Shipped our MVP in about a week and a half. Went from constantly explaining delays to the board to actually showing progress.
Dana Kessler
Head of Product · Axiom · 2025
I've tried a few SaaS starter kits. This is the only one that didn't make me feel like I was fighting the framework.
Wes Dalton
Founder · Solvex · 2025
We cut our landing page and dashboard build from three weeks to a couple of days. The UI alone saved us a full sprint — we still built our own auth and billing on top of it.
Morgan Lee
CTO · Helion Labs · 2025
First template where I didn't throw out the docs after day one. Everything is exactly where a senior engineer would put it.
Theo Larsson
CTO · Orbit Labs · 2025
The landing page and dashboard UI were pixel-perfect and production-ready in an afternoon — polish we didn't have to build ourselves, so our team could focus on wiring up our own auth and data layer.
Noor Hassan
Engineering Manager · Vortex · 2025
The design tokens and component library are the real hidden gems. We rebranded entirely in well under an hour.
Ines Kovac
Full-stack Developer · Lumina · 2025
As a solo founder, this template gave me the leverage of a small team. Wiring up Stripe on top of the billing UI took an afternoon instead of a week.
Chris Nguyen
Founder · Trackr · 2025
Edge deploys in well under a minute. Our previous setup took a lot longer — the difference is night and day.
Robin Alvarez
Lead Engineer · Fenix · 2024
Simple, transparent pricing
One purchase, lifetime access. No subscriptions.
Starter
For individuals exploring the stack.
- 1 project
- Community modules
- Basic analytics
- Zutra CDN (100 GB/mo)
- Priority support
- Team seats
- Custom domain
- Audit logs
Pro
Most PopularFor serious builders shipping real products.
- Unlimited projects
- All premium modules
- Advanced analytics + funnels
- Zutra CDN (unlimited)
- Priority support (< 4h SLA)
- 5 team seats
- Custom domain
- Audit logs
Enterprise
White-glove for teams that demand control.
- Everything in Pro
- SAML SSO + SCIM
- Dedicated infrastructure
- Unlimited team seats
- Dedicated Slack channel
- SLA 99.99% uptime
- Audit logs + SIEM export
- Custom contracts & billing
Changelog
Clearer Positioning: SaaS Landing & Dashboard UI Kit
- Refined Zutra's positioning to 'SaaS Landing & Dashboard UI Kit — bring your own backend' across README.md, package.json, src/config/site.ts, and src/i18n/*/sections.json (all 6 locales), so it's immediately clear what ships ready-to-use (UI, layouts, flows) versus what you wire up with your own backend (auth, billing, RBAC).
- Rewrote feature descriptions in src/content/features/*.json to describe exactly what the template provides out of the box, making it easier to evaluate fit before purchase.
- Updated testimonials and case studies to highlight what customers consistently value most about Zutra: design quality and UI/UX speed.
- Replaced the platform roadmap with a focused, buildable one: E2E tests, CI/CD templates, and reference integration guides for Supabase Auth, Stripe webhooks, and RBAC — practical next steps for teams wiring up their own backend.
- +1 more
Dark / Light Mode
- Complete dark/light mode system. A ThemeToggle (sun/moon button) appears in the desktop nav and the mobile drawer. The chosen theme persists in localStorage under 'zutra:color-scheme' and survives full page loads, View Transitions navigations, and layout switches between Layout.astro and AppLayout.astro.
- Anti-FOUC inline scripts in both Layout.astro and AppLayout.astro restore accent color and color scheme before the first paint, preventing any flash of wrong theme on load or hard refresh.
- View Transitions persistence via astro:before-swap: theme and accent CSS custom properties are applied to the incoming document before Astro swaps the DOM, eliminating the flash that previously occurred when navigating between pages.
- Animated theme transition: switching themes triggers a smooth 280ms crossfade (background-color, color, border-color, box-shadow, fill, stroke) by temporarily adding a .theme-transitioning class to <html>. The class is removed after 350ms so hover and focus transitions are not affected. Disabled automatically under prefers-reduced-motion.
- +9 more
Astro 7 Upgrade
- Upgraded to Astro 7.0.3 (from 6.4.8), @astrojs/mdx 7.0.0, and @astrojs/node 11.0.0.
- Removed Storybook — no config directory existed and the addon/core versions were mismatched (core at v10, addons at v8). Dependency tree is cleaner and peer-dep warnings are gone.
- Fixed missing await on checkRateLimit() in all 5 API routes (/api/waitlist, /api/contact, /api/auth/login, /api/auth/signup, /api/auth/forgot-password). Rate limiting was silently not working.
- Fixed Badge variant 'error' → 'danger' in the dashboard logs panel to match the Badge component's allowed variants.
- +2 more
Want early access or updates?
Join our waitlist to get notified about new features and releases.
No spam. Unsubscribe anytime.