Is Base44 right for agencies?
With caveats. The agency use case has two shapes, and Base44 is a different fit for each.
Shape 1: agencies that build for clients. Base44 is a strong fit. You can ship client work in 2–6 weeks instead of 3–4 months, your unit economics improve materially, and the AI generation speed compresses your time-to-handoff. The caveats are around white-label depth (Base44 branding leaks if you look hard), client edit access (do not give it), and credit-cost passthrough (build it into your retainer).
Shape 2: agencies that resell Base44 as a product. Base44 is a poor fit. You cannot truly white-label the platform, you cannot offer compliance posture beyond what Base44 provides, and your margin gets squeezed because Base44 captures the platform value while you own the customer relationship. Resellers do better on Bubble, Webflow, or Wix Studio (the parent company of Base44, ironically), all of which have explicit reseller programs.
This page covers Shape 1. If your model is Shape 2, migrate to a different platform before scaling further.
What you can build
Agency engagements that fit Base44:
- Client-facing dashboards — for marketing/SEO/ad agencies showing campaign performance, conversion funnels, ROI metrics. Aggregated data from Google Analytics, Google Ads, Meta Ads, etc., displayed in a branded UI.
- Internal client management — your own agency's project tracker, retainer hour log, deliverable schedule. The internal-tools playbook applies.
- Onboarding and intake flows — multi-step questionnaires for new clients, document collection, contract signing, kickoff scheduling. Forms-and-states is Base44's wheelhouse.
- Reporting dashboards — aggregating data from multiple platforms (HubSpot, Salesforce, Stripe, Google) into a single client view. Read-mostly, polling-acceptable real-time.
- Custom client portals — per-client branded UIs where the client team can view project status, request changes, approve deliverables. One Base44 app per major client.
- Lightweight branded apps for non-regulated verticals — directories, calculators, lead-magnet apps your client uses to attract their own customers.
What does not fit:
- Deep white-label resale — clients' customers must never know it's Base44.
- Per-client SOC 2 / HIPAA — compliance posture is wrong.
- Multi-tenant SaaS for the client to resell — that's the SaaS use case, not the agency use case.
- High-volume client work — 50+ active client apps is a lot of Base44 subscriptions to manage.
Critical patterns for agency engagements
1. One Base44 app per client
Do not try to multi-tenant a single Base44 app for multiple clients. The default-open RLS makes this dangerous, and Base44's billing model does not give you significant savings from consolidating anyway. Pattern:
- Each client gets their own Base44 app.
- Each client gets their own subscription (you bill them for it as a passthrough or include in retainer).
- Each client app has its own custom domain.
- Your agency's master tracker (also Base44, on your own subscription) keeps tabs on all active client apps, billing dates, retainer status.
2. Role separation: agency team vs client team
Each client app needs at least three roles:
users {
id, email, name,
role: 'agency_admin' | 'agency_developer' | 'client_admin' | 'client_user',
agency_id (FK, only for agency users),
client_id (FK, only for client users),
}
// RLS rules on every collection:
// READ: request.user.role IN ('agency_admin', 'agency_developer')
// OR (request.user.role IN ('client_admin', 'client_user') AND row.client_id == request.user.client_id)
// WRITE: similar, with client_user usually capped at their own records
Critically: do not give client_admin Base44 platform access (the editor). Build a custom admin UI in the app itself for whatever you want them to manage. Platform access leads to client-prompts-the-AI-and-breaks-things.
3. Custom domain + branding
Every client app should ship with:
- Custom domain (clientbrand.com or app.clientbrand.com).
- Their logo, colors, fonts — full visual rebrand.
- Their company name in every UI surface, no Base44 references in user-facing copy.
- Their own email sender (set up SPF, DKIM, DMARC for transactional email through Postmark).
What you cannot fully hide:
- Network requests in DevTools may show base44 endpoints unless you proxy them all through your own backend.
- Custom-domain DNS preview windows may briefly show a Base44-hosted URL before resolving.
For most clients this is invisible. For a security-paranoid client, it is not, and you should disclose upfront.
4. Retainer billing: build credit overage into the price
Base44 charges by credit consumption. Heavy AI agent use eats credits fast. Your retainer must cover this:
- Fixed monthly retainer of $500–$2,500/month per client app.
- Includes platform subscription cost.
- Includes a defined number of revision rounds (e.g., 2 rounds per quarter).
- Includes a credit budget (e.g., 1,000 credits per month).
- Anything past the budget is billable at a transparent rate.
The trap: open-ended T&M where the client prompts the AI agent themselves and you are on the hook for the regressions. Always meter credit usage against the retainer.
5. Handover documentation
Every client engagement needs a handover doc that includes:
- Login URLs (admin, end-user, Base44 platform).
- Admin credentials (rotated to client-owned).
- Custom domain DNS records.
- Custom domain expiry tracking.
- Retainer terms and billing cycle.
- Escalation path (Slack channel, email, on-call).
- Backup/export procedure.
- Migration option if they ever want to leave Base44.
Without this doc, every client off-boarding turns into 6 hours of unbilled support.
Limitations and gotchas
| Limitation | Agency impact | Mitigation |
|---|---|---|
| Cannot deeply white-label | Sophisticated client users see Base44 underneath | Disclose upfront; use Base44 only for non-paranoid clients |
| One subscription per client app | Overhead at 20+ active clients | Bake into retainer pricing |
| Client edit access risks regressions | Client breaks app, calls you to fix | Don't give edit access; sandbox previews only |
| AI agent regressions burn billable hours | Margin gets eaten by re-work | Snapshot-and-scope discipline |
| RLS defaults open | Cross-client data leak if multi-tenant | One app per client, never multi-tenant for clients |
| Webhooks need active users | Notifications miss after-hours | External webhook proxy |
| Editor hangs on large projects | 30+ component projects slow | Performance editor fix |
| No agency-level dashboard | Cannot see all client apps in one view | Build your own master tracker |
| Migrating clients off later is painful | Client lock-in to Base44 | Wrap SDK calls in your own data layer day one |
| Stripe regressions | Client-billing failures cascade | Stripe integration breakage guide |
The two that bite agency margin most: AI agent regressions (you lose billable hours on rework) and credit-overage cost (your client thinks the retainer covers everything).
Real-world example architecture
A typical agency setup with 12 active client apps:
Master tracker (your own Base44 app):
- clients (id, name, contract_start, retainer_amount, status)
- client_apps (client_id, app_url, base44_subscription_id, plan)
- engagements (client_id, start_date, end_date, scope, fees)
- retainer_invoices (client_id, period, amount, paid_at)
- credit_usage (client_id, period, credits_used, overage_billed)
- handover_docs (client_id, doc_url, version)
- support_tickets (client_id, urgency, status, hours_logged)
Each client app (12 of these):
- users (agency staff + client team, role-separated)
- [client domain entities — different for each engagement]
- audit_events
- export_log
External services per client app:
- Auth0 or Base44 native auth (depending on client SSO needs)
- Postmark (with client-specific sender domain)
- Cloudflare Worker (webhook proxy if needed)
Agency-wide:
- Notion / Linear / Slack
- Stripe (for billing your clients)
- 1Password Teams (rotate credentials per client engagement)
This setup runs the agency at 10–20 active clients without becoming unmanageable. Past 20 active clients, consider hiring a project manager or moving to a more agency-native platform.
Cost to ship per client engagement
For a typical client portal engagement ($9,000 fixed price, 4 weeks):
| Line item | Engagement cost | Recurring (monthly) |
|---|---|---|
| Discovery + design (4 hours) | $400 | — |
| Base44 build (24 hours) | $2,400 | — |
| Hardening (RLS, audit, auth) (8 hours) | $800 | — |
| Custom domain + email setup (2 hours) | $200 | — |
| Handover + training (2 hours) | $200 | — |
| Internal time (PM, QA) (4 hours) | $400 | — |
| Internal cost | $4,400 | — |
| Sale price | $9,000 | — |
| Margin | $4,600 (51%) | — |
| Client retainer | — | $1,500/mo |
| Base44 platform pass-through | — | $80–200/mo |
| Recurring margin (after credits + maintenance) | — | ~$800–1,200/mo |
The math works at 8–15 active client engagements. Past that, hire a second developer; below that, the agency overhead eats the margin.
Migration off-ramp
When a client outgrows Base44, migration is part of your service offering. Targets depend on the client's needs:
- Client wants control of their stack — Next.js + Supabase + Vercel.
- Client is a SaaS preparing for funding — same target, plus Auth0 + Datadog.
- Client needs SOC 2 or HIPAA — AWS or GCP under BAA.
Position migration as a follow-on engagement at $9,000–$25,000 depending on scope. The client value is high (escape Base44 lock-in, full code ownership), and the agency margin is good because you already know the codebase.
Base44 to Next.js + Supabase migration playbook covers the technical path.
Get this scoped
If you run an agency and are evaluating Base44 as a delivery platform, our standard build engagement can serve as the model — we will spec out a client engagement to your scope, fixed-price, and you can use it as a reference for your own pricing. Or if you have a Base44 client app that has accumulated debt over time, the $497 production audit gives you a written assessment of what to harden, refactor, or migrate.
Book a 15-minute call to talk agency engagements