Verified against Lovable · 2026-07-22
Scope and build a freelancer client-portal SaaS MVP
A structured Lovable brief for a freelancer client-portal SaaS — the full entity model, screens, and Supabase auth/RLS rules spelled out so the first generation is a working multi-tenant app, not a single-user demo.
The prompt
Ready to copy — highlighted parts are example details you can swap.
Build Clientflow, a subscription SaaS web app for solo freelancers and small agencies of 1-5 people. This is the full v1 — build the real data model and working flows, not placeholder screens. Data model: - User: id, name, email, role (owner or team_member), avatar_url. - Client: id, name, company, email, phone, notes, owner_id (references User). - Project: id, client_id (references Client), title, status (active, on_hold, or completed), start_date, due_date, budget. - Task: id, project_id (references Project), title, is_done, due_date. - Invoice: id, project_id (references Project), invoice_number, amount, status (draft, sent, paid, or overdue), due_date, line_items (JSON). - Comment: id, project_id (references Project), author_id (references User), body, created_at — for client-visible project updates. Screens and flows: 1. Sign up and log in with email plus Google OAuth. 2. Dashboard: active projects, overdue invoices, and tasks due this week at a glance. 3. Clients list, linking to a client detail page showing all their projects and invoice history. 4. Project detail page: task checklist, a comment thread the client can see, and a 'Create invoice' action. 5. Invoice view: line items, status, and a 'mark as paid' toggle. 6. Billing and settings page listing these subscription tiers: Solo ($15/mo, 1 user), Team ($45/mo, up to 5 users), with a Stripe checkout stub. Constraints: - Use Lovable's native Supabase integration for auth (email plus Google) and the database — do not fake data in local component state. - Row-level security: a User can only see the Clients, Projects, and Invoices where owner_id matches their own auth.uid(). - Primary brand color: #5B4CFF (indigo). Keep the UI calm and unopinionated — this is a tool freelancers show to their own clients. - Do not build the real Stripe integration yet — a visual checkout screen with a disabled 'connect Stripe' button is enough for this pass.
Customize the highlighted detailsoptional — the prompt above already works
Why this works
Lovable generates a full application from one description in a single pass, so anything left unspecified gets invented — usually as a generic CRUD shell with fake in-memory data rather than a real backend. Naming the entities, their foreign keys, and the row-level-security ownership rule up front (rather than just "clients can have projects") is what turns Lovable's native Supabase integration into an actual multi-tenant app instead of a demo that loses its data on refresh or leaks every user's clients to every other user. A vague "build me a client portal" prompt produces something that looks right in the first screenshot and breaks the moment two different freelancers sign up.
What you get back
A working Lovable app with email/Google sign-in, a seeded dashboard showing 2-3 sample projects and one overdue invoice, and a Supabase table editor showing real rows in clients, projects, and invoices — each scoped to the logged-in user via row-level security.
Verified against
Lovable Lovable web app (Supabase-integrated chat builder) · 2026-07-22
Changelog
- 2026-07-22 — Initial version, scoped around an explicit row-level-security ownership rule after early drafts without one defaulted to fully public tables.
Need this built into your business?
If a prompt isn't enough — custom software, built and maintained for you — that's Scult's day job.
EXPLORE CUSTOM SOFTWARE

