Choose your
engagement.
Three productized tracks. Public pricing in USD. Pick the one that matches your timeline; if none fit, the last section covers custom scopes.
For founders with an AI idea who need a working prototype to test with real users this week. Outcome: a live webapp on your domain with one core AI feature, ready for investors or beta testers.
- Discovery call, scope locked day 1
- 1 AI feature end-to-end (chat / classification / generation / search)
- Auth + database (Supabase)
- Production deploy on custom domain
- Documented codebase, fully owned by you
- 14 days post-launch support
For founders with first users who need to go from prototype to a real SaaS they can charge for. Outcome: a complete product with onboarding, billing, analytics, ready to invoice the first paying customer.
- Everything in Validation, plus:
- 3–5 AI features integrated (eval harness if RAG)
- Onboarding flow + transactional emails
- Stripe billing scaffolding (subscriptions or one-time)
- Basic analytics + error monitoring
- Admin dashboard for the founder
- 30 days post-launch support
For post-seed startups or B2B SaaS teams who need a production system handling 1,000 users. Outcome: a multi-tenant production system with observability and cost controls, ready for Series A diligence.
- Everything in Launch, plus:
- Multi-tenant + RBAC
- RAG + agent pipelines with full eval harness
- Observability (Logfire / OpenTelemetry)
- Per-tenant cost tracking + rate limiting
- CI/CD + staging environment
- 60 days post-launch support + handover walkthrough
Compare engagements
| Validation | Launch | Scale | |
|---|---|---|---|
| Timeline | 5–7 days | 2–3 weeks | 4–5 weeks |
| Investment | $1,500 | $3,500 | $7,500 |
| Discovery + scope lock | |||
| Auth + database | |||
| AI features | 1 (core) | 3–5 | 5+ |
| Custom domain + deploy | |||
| Stripe billing | — | ||
| Eval harness | — | ✓ (if RAG) | |
| Multi-tenant + RBAC | — | — | |
| Observability | — | — | |
| CI/CD + staging | — | — | |
| Post-launch support | 14 days | 30 days | 60 days |
Validation MVP
- Discovery + scope lock
- Auth + database
- AI features1 (core)
- Custom domain + deploy
- Stripe billing—
- Eval harness—
- Multi-tenant + RBAC—
- Observability—
- CI/CD + staging—
- Post-launch support14 days
Launch MVP
- Discovery + scope lock
- Auth + database
- AI features3–5
- Custom domain + deploy
- Stripe billing
- Eval harness✓ (if RAG)
- Multi-tenant + RBAC—
- Observability—
- CI/CD + staging—
- Post-launch support30 days
Scale MVP
- Discovery + scope lock
- Auth + database
- AI features5+
- Custom domain + deploy
- Stripe billing
- Eval harness
- Multi-tenant + RBAC
- Observability
- CI/CD + staging
- Post-launch support60 days
From brief to production.
We define scope, success criteria, and deliverables. You leave with a written brief, even if we don't work together.
Scope locked in writing. Slack/Linear access. Daily async updates start from day one.
Staging URL updated daily. You see real progress, not slide decks.
Production deploy. Custom domain. Codebase walkthrough video. Full IP transfer on final invoice.
Bug fixes, small tweaks, refinement. After that, optional retainer.
What's actually shipped.
Frequently asked.
Nine questions I get most often. If yours isn't here, write me — I'll answer it.
Have you actually shipped this for paying clients, or are the case studies demos?
Honest answer: the projects on this site are portfolio engagements — I built them to production specs, not for paying tenants. The technical work is real: multi-tenant RLS, streaming chat, Gmail OAuth, cost tracking, all measurable in the running demos. What's missing is the messiness of an actual customer relationship — adversarial users, edge-case requests, support tickets at 11pm. I'm transparent about that distinction, here and in proposals. Real client engagements are covered by NDA; references are available on request.
What does fixed-price actually mean?
Scope is locked on day one in a written brief that lists exactly what's in and what isn't. The price doesn't move unless you decide to add scope mid-engagement, in which case I'll come back with a written delta — never a surprise invoice. If something inside the agreed scope takes me longer than I estimated, that's mine to eat.
Who owns the code, and what if I want another developer to take over later?
You own everything. On final invoice payment, full IP transfers to your company — source code, designs, infrastructure config, eval harness, the works. The repository moves to your organization's GitHub. I retain nothing except the right to mention the engagement on this site, and only if you give permission. Handover is built into every timeline: by delivery you have a runnable codebase that any competent Next.js developer can pick up without calling me.
How do we communicate during the project?
Async by default. Daily written updates Monday through Friday — with screenshots and short Loom videos when something needs visual context. One synchronous call per week, thirty minutes. I'm based in Tenerife (GMT+1): clean overlap with European business hours in the morning and US East Coast in the afternoon.
What happens if the project goes wrong or I need to stop midway?
If I deliver something that doesn't match the agreed brief, I fix it on my own time until it does. If you decide to stop midway, on Upwork or Freelancer.com the platform's milestone-based escrow handles it — you pay only for milestones already released and keep everything I've built. On direct contracts, my standard MSA includes a kill-fee of fifteen percent of remaining scope, plus work completed. Either way: no held-hostage repository, no surprise fees.
What kinds of projects do you not take?
Crypto and Web3 projects. Mobile-native apps with deep platform integration (Bluetooth, AR, native ML). Marketing websites without an application layer. Anything that asks me to deceive users at the design level — gambling mechanics, dark patterns, fake urgency.
Why solo? What's the bus-factor answer?
Solo is the multiplier: same person designing, building, deploying, with no agency overhead and no telephone-game between roles. The bus answer: every engagement ships with a written architecture document, a runnable handover, CI that doesn't depend on me, and a CLAUDE.md file that lets any developer or AI assistant pick up where I left off.
Why USD pricing?
Most clients reference USD as baseline. Invoices are issued in EUR at the day-of-invoice ECB rate via SEPA bank transfer (no Stripe fees).
What payment methods do you accept?
SEPA bank transfer or Wise (recommended for non-EU clients). 50% deposit at kickoff, 50% on final delivery. Invoices include EU VAT where applicable.
Custom scope
Need something custom?
Long-term retainer, an existing codebase to harden, or something none of the three tracks describe — write me a paragraph and I'll come back within 48 hours.