Wishdeal Factory · Storefront
Operator interview · $75/hr · Roll Digital's seat
← Back to Frontage

How Caleb would build Frontage.

First-person from one of our chief operators. What he'd ship and how, AI-amplified. Stack, hour estimate, day-by-day plan, the parts that are hard, and the handoff. Synthesized from the agent spec.

How I'd build Frontage

I'd reach for Next.js with Postgres, Prisma for the ORM, Clerk for multi-tenant auth, Stripe for billing, Resend for the email delivery pipeline, and the Claude API for the actual generation engine. The frontend and API routes stay together on Vercel. I'd estimate 180-220 hours for a production-ready version: that's a solid three to four weeks at 50 hours per week, assuming we're shipping with basic compliance guardrails in place and a working referral system. The model overhead is low - we're talking Claude API calls at scale, not building a model - so the build is mostly product and integration work.

Day-by-day plan

  • Day 1-2: Set up Next.js monorepo. Scaffold Postgres schema with Prisma: accounts, users, listings (normalized MLS data), generations (audit trail), billing subscriptions. Wire Clerk for multi-tenant identity. Deploy to staging on Vercel.
  • Day 3: Build the agent signup flow and Stripe integration for the three tiers ($0 trial, $35/mo standard, $99/mo pro). Include webhook handlers for payment success, cancellation, churn.
  • Day 4-5: API endpoints for listing ingestion (bulk CSV upload, MLS feed connectors starting with Zillow API) and the generation pipeline. Hook Claude API with prompt templates for MLS description, email subject lines, Instagram captions. Add rate limiting per tier.
  • Day 6: Build the referral credit system: generate unique referral codes, track signups, credit accounts as referred agents convert. Implement affiliate dashboard showing credits and conversions.
  • Day 7-8: Customer dashboard: listings, generation history, one-click copy-to-clipboard, template customization (saved brand voice overrides). Basic compliance controls: checkboxes for fair-housing review before publish.
  • Day 9: Set up BullMQ for async job queue (generation batching, email delivery, usage tracking). Add Sentry for error tracking.
  • Day 10-11: Onboarding flow with Loom demos. Test with 10 real agents (beta). Fix crashes, edge cases.
  • Day 12: Final compliance audit, pricing clarification in product copy, go live.

What's hard about this build

Fair housing compliance is the real trap here. AI models are trained on billions of public documents, many of which contain coded language - "great schools nearby," "tree-lined streets," neighborhood names that correlate with demographics. When an agent pastes a description generated by Frontage into an MLS system, the legal liability is theirs, but the reputational damage is ours. I'd add an abuse-prevention layer: a separate Claude call that flags generated copy against FHA red flags before it leaves our system. That costs more API budget but is non-negotiable. Second: real estate data is fragmented and proprietary. MLS systems don't have a unified API; you're either parsing CSV files per broker or hitting paid feeds like Zillow. Third: agent adoption is slower than SaaS founders expect. Agents under 45 are tech-friendly; above that, they distrust software and need hand-holding. Churn from market downturns is real and structural - it's not a product problem, it's a market problem. When inventory freezes, there's no listing to write, so the product becomes worthless regardless of quality.

What's fast because of AI

I'd use Claude to scaffold the entire Next.js project structure in one afternoon instead of a week of boilerplate. Writing the Prisma schema and migration scripts: AI drafts 80% of it correctly. The Claude API integration itself - prompt engineering for different copy types, A/B test harnesses, fallback templates when the API is slow - takes maybe a day with Claude helping enumerate edge cases I'd otherwise miss in week two. Tests are faster: I ask Claude for unit and integration test cases for the referral system, billing webhooks, fair-housing checks. It catches scenarios I wouldn't have thought of. Copy for the product UI - "Start your free trial," buttons, onboarding microcopy - is written in hours instead of days of back-and-forth with a copywriter. Debugging async race conditions in the job queue? Claude helps me trace the state flow, spot the bug, propose the fix. That kind of leverage compresses two days of head-scratching into two hours.

How I'd hand it off

I'd leave a Loom walkthrough of the full deployment pipeline, the fair-housing review process, and how to read Stripe webhooks for refund edge cases. A runbook in Markdown covering: how to promote a user to admin, how to reset Stripe billing if it fails, how to check Claude API usage and costs, common troubleshooting steps. I'd do a 30-day pager rotation where you can ping me if something breaks in production. All credentials - Stripe keys, Claude API key, Postgres connection string, Clerk secrets - live in a shared vault. Code lives on GitHub with CI/CD hooked to Vercel. You can deploy by merging to main.

Hire Caleb to build this for you.

Frontage is available to own for $200 flat. Or pay $75/hr for a Roll Digital chief operator to build it for you, AI-amplified.

See pricing →