Underneath, HoneyBook is a small CRM built around one clever document: a proposal that bundles the quote, the contract and the invoice, so a client can read, sign and pay a deposit in one go. An agent can build that flow with Stripe and email reminders in a weekend. The gaps are what make it a business tool: it must run on a server your clients can reach, a typed signature carries less weight than an established e-signature service, and you go without the mobile app, QuickBooks sync, scheduler and template gallery. Invoice Ninja, self-hosted, covers quotes, invoices and a client portal for free if you'd rather not build.
Before you buildHoneyBook has no free plan, only a 30-day trial. Invoice Ninja self-hosted already covers quotes, invoices and a client portal for free.
Build me a client-booking app to replace HoneyBook for my one-person studio. Requirements:
- Next.js 15 (App Router) + TypeScript, Drizzle ORM on better-sqlite3 at
./data/studio.db, uploaded files in ./data/files/.
- Clients and projects on a pipeline board: Inquiry, Proposal sent, Booked,
Completed, Lost. A public inquiry form at /inquire creates both.
- Proposals: pick services from my price list, attach a contract from a Markdown
template with {{client_name}}, {{event_date}} and {{total}} fields, and set a
payment schedule (a deposit now, the balance on a date).
- The client gets a private link /p/<random token> with no client account: read,
sign by typing their name and ticking a box, then pay the deposit.
- On signing, store the time, IP address, user agent and a SHA-256 hash of the exact
contract text, and render a signed PDF with @react-pdf/renderer.
- Payments through Stripe Checkout (`stripe` package, keys in .env, test mode
first); a webhook marks installments paid and emails a receipt through
Nodemailer with SMTP settings from .env.
- A daily node-cron job emails reminders 3 days before each due date and again when
a payment is overdue; the dashboard lists everything outstanding.
- My side sits behind one password from .env. No accounts, no telemetry,
self-hosted: all data stays in ./data on my server.
- Out of scope: QuickBooks sync, SMS, a mobile app and a booking calendar.
- README: running it on a small VPS behind Caddy for HTTPS, setting up the Stripe
webhook, and an honest note that typed signatures may not meet every contract's
legal requirements where you work.Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own HoneyBook.
Add an importer for a HoneyBook contacts export to the client-booking app in this folder. Requirements: - A command that takes the CSV from HoneyBook (Clients > Contacts > Download spreadsheet). - Read the header first, map name, email, phone, address, notes and date added, show the mapping and ask before importing. - Skip contacts whose email already exists, so running it twice is safe. - Mark imported clients "from HoneyBook" and print a summary of imported, skipped and failed rows. - Update the README with the export steps.
Add a booking page to the client-booking app in this folder. Requirements: - Session types with a length, buffer and weekly availability, set on my side. - A public page /book/<session-type> showing free slots for the next 4 weeks. - Read busy times from my Google Calendar through its API (OAuth credentials in .env) and add each booking to it. Warn in the README that the Google Cloud console setup takes about an hour. - A booking creates or updates the client and a project at the Inquiry stage, and emails both of us a confirmation with an .ics file. - Update the README.
Add a bookkeeping export to the client-booking app in this folder. Requirements: - A page and a command that export one month of payments as CSV: date, client, project, amount, Stripe fee, net, payment method and Stripe payment id. - Pull the fee and net figures from Stripe balance transactions, not estimates. - Also export outstanding installments with due dates in a second CSV. - Out of scope: syncing to QuickBooks or other accounting software. - Update the README.
Photographers, planners and other solo creatives pay because a client goes from inquiry to signed contract and paid deposit without anything looking homemade. Many stayed after the 2025 price rise because their active bookings and payment schedules live in HoneyBook, and moving in the middle of a season feels risky.
Estimate · A small VPS costs a few dollars a month and email usually fits a free tier. Stripe's own per-payment fees still apply, much like HoneyBook's processing fees. The build session is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Starter | $36 | $29 | Unlimited clients and projects, invoices and payments, proposals and contracts, client portal, calendar, 2 live lead forms, basic reports. |
| Essentials | $59 | $49 | Adds the scheduler, automations, QuickBooks Online, up to 2 team members, 10 lead forms, SMS reminders and removes the HoneyBook branding. |
| Premium | $129 | $109 | Unlimited team members and lead forms, multiple companies, advanced reports, priority support. |
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: The mobile app for leads and payments on the go, A polished client portal and the template gallery.
About $36 a month on the Starter plan, $432 a year (checked 2026-10-13).
The mobile app for leads and payments on the go; A polished client portal and the template gallery; Scheduler, questionnaires and automations; QuickBooks sync and ready-made reports; Help from HoneyBook when a client disputes a payment. If any of those matter to you, keep paying.
Yes: Invoice Ninja (free), Dolibarr (open source), DocuSeal (open source).