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

How Caleb would build Pencil.

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 Pencil

I'd reach for Next.js on the frontend with a FastAPI backend, Postgres for the core database, and Claude's API for the proposal generation engine. Stripe handles billing across the three tiers, Resend manages transactional email, and S3 holds the generated PDFs. Rough estimate: 200-250 hours of development work to reach a launchable MVP. That's including auth, the multi-tenant billing model, the proposal editor, AI integration, and the first wave of PDF export reliability.

Day-by-day plan

Day 1: Provision the Postgres schema for tenant isolation and user management. Set up the multi-tenant middleware in FastAPI and verify data boundaries between accounts.

Day 2: Wire Stripe billing. Build out the subscription tier logic, seat licensing for the 3-5 user model, and invoice delivery via Resend.

Day 3-4: Build the proposal template editor. Create a React component library for proposal blocks (scope, pricing table, case studies, timeline). Store template state in Postgres, serialize to JSON.

Day 5: Integrate Claude API. Build the prompt chain: user inputs brief, Claude generates initial proposal, returns structured JSON, we render it into the editor. Add guardrails to limit token spend per request.

Day 6: Implement PDF export. Use Puppeteer to convert editor state to downloadable PDFs. Test formatting across Chrome, Firefox, and mobile views.

Day 7-8: Build onboarding flow. Create the signup to Stripe to template creation to AI-assisted first proposal journey. Keep it to 3 screens.

Day 9: Set up monitoring with Sentry and deploy pipeline using Vercel for Next.js and Fly.io for the API. Create a basic admin dashboard to see active tenants, token usage, and churn.

Day 10: Write runbook and record a Loom walkthrough covering deployment, common issues, scaling considerations, and the credentials that need rotating.

What's hard about this build

Multi-tenant data isolation is the non-negotiable complexity here. A single query flaw exposes one client's proposals to another. I'd enforce tenant context at the middleware level and audit the code path before launch. The Claude API integration comes with cost and rate-limit risks. A power user generating 100 proposals per week could blow through token budgets or hit throttling. I'd implement per-tenant rate limits and usage metering from day one, not bolted on later. PDF generation is deceptively brittle; formatting breaks across browsers and when templates get complex. The incumbents have years of PDF finesse baked in. I'd plan for a week of QA just on edge cases. Finally, the core risk is product-market validation: consultants' proposal workflows are wildly idiosyncratic. If AI output requires more editing than writing from scratch, perceived value collapses after trial.

What's fast because of AI

Claude accelerates the scaffolding of the entire Next.js app and FastAPI boilerplate by at least a week. Writing comprehensive tests for tenant isolation and billing logic would normally take 3-4 days solo. With Claude generating test cases and enumerating edge cases, I compress it to 1.5 days. Copywriting for UI strings, error messages, and onboarding microcopy would normally be a full day of friction. Claude writes ten variations on "Your proposal is ready to share," I pick the best three and iterate. That's an afternoon instead of a day. Debugging complex state interactions in the editor or tracking down why a Stripe webhook isn't firing - Claude helps me enumerate what could go wrong before I hit the issue in production.

How I'd hand it off

I'd record a 20-minute Loom walkthrough covering the product feature tour, the admin panel, how to deploy a new version, and where the monitoring dashboards live. I'd write a runbook in Linear covering deployment steps, common alert patterns, scaling considerations, and how to rotate API keys safely. I'd stay on a 30-day pager rotation post-launch, responding to critical issues or feature requests your team flags. I'd transfer all credentials - Stripe keys, Claude API keys, Postgres access, S3 buckets, Sentry project - to your ownership via a shared 1Password vault.

Hire Caleb to build this for you.

Pencil 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 →