Build · Intermediate · Two or three weekends
Build a booking and invoicing system for a small business with open-source software
Everything a coach, tutor or salon needs to take bookings and get paid.
Instead of paying for Calendly, Acuity Scheduling, FreshBooks, DocuSign, PandaDoc, Typeform, Jotform, Mailchimp or Brevo.
What you'll build
A complete front office for a one-person or small service business: clients book a slot on your site, fill in an intake form, sign your terms, and get an invoice, with reminders sent for you. It replaces the usual bundle of Calendly, Typeform, DocuSign, FreshBooks and Mailchimp, which together can cost more than the business makes in a quiet month. Each piece is a separate open-source app, so you can start with bookings and add the rest later.
Blueprint
A client books in Cal.diy, fills in a Formbricks intake form, signs in Documenso and gets an InvoicePlane invoice. listmonk sends reminders and follow-ups.
- You Your availability and services Cal.diy
- Cal.diy Link to the intake form in the booking confirmation Formbricks
- Formbricks Client details to fill the contract Documenso
- Documenso Signed contract, so you raise the invoice InvoicePlane
- InvoicePlane Client email for reminders and follow-ups listmonk
The repos
- 01 · Take bookings Cal.diy
MIT-licensed community edition of Cal.com for self-hosted booking pages, with team, workflow and other enterprise features removed.
- Setup
- Medium; Docker Compose or Node.js build with PostgreSQL and many environment variables source
- Hardware
- Not documented; needs Node.js 18+ and PostgreSQL 13+
- Paid extras
- None required; no Cal.com account or licence key; calendar and payment apps need your own provider credentials
- 02 · Bookings, simpler option Easy!Appointments
Self-hosted PHP booking app where customers book services with providers, with Google Calendar and CalDAV sync and email notifications.
- Setup
- Easy to medium; upload files, create a MySQL database, run the setup wizard source
- Hardware
- Not documented; needs Apache 2.4+, PHP 8.2+ and MySQL 5.7+
- Paid extras
- None required; paid custom development, managed hosting and support are optional
- 03 · Send invoices InvoicePlane
Long-running MIT-licensed PHP app for quotes, invoices, clients, products, payment tracking with gateways, and simple reports.
- Setup
- Medium; upload the release, edit ipconfig.php and run the web installer, or use the container image source
- Hardware
- Not documented
- Paid extras
- None required; payment gateways charge their own fees
- 04 · Sign contracts Documenso
Self-hostable document signing platform with signing order, reminders, templates, audit logs and an API; AGPL core plus paid Enterprise features.
- Setup
- Medium; Docker plus PostgreSQL, SMTP, a reverse proxy and your own .p12 signing certificate source
- Hardware
- Minimum 1 CPU core, 1 GB RAM, 10 GB storage; 2+ cores and 2+ GB RAM recommended source
- Paid extras
- None required; Enterprise licence optional for SSO, 2FA reauthentication, 21 CFR Part 11, email domains, embed editor
- 05 · Intake forms Formbricks
Self-hostable survey platform for link, website, in-app and email surveys with logic, webhooks and integrations; some team features are Enterprise.
- Setup
- Medium; one-click Ubuntu script or Docker Compose, needs a domain with HTTPS source
- Hardware
- 2 vCPU, 4 GB RAM, 20 GB SSD for evaluation; 4 vCPU, 8 GB RAM for low load source
- Paid extras
- Core is free with unlimited responses; Enterprise adds branding removal, teams and roles, contacts, SSO, audit logs, spam protection
- 06 · Email clients listmonk
Self-hosted newsletter and mailing list manager in a single Go binary with PostgreSQL; lists, SQL segments, templates, analytics and archives.
- Setup
- Easy; download binary or docker compose up, plus a PostgreSQL database source
- Hardware
- Light; a production instance sent 7M+ emails using a fraction of one core and 57 MB peak RAM source
- Paid extras
- App is free; you need an SMTP server or sending service such as Amazon SES to deliver mail
Step by step
Install commands change, so each step links to the repo's own docs for the exact commands.
-
Add an intake form
Build a short form in Formbricks with the questions you ask every new client. Put its link in the booking confirmation message so clients fill it in before they arrive.
Uses Formbricks · its docs
-
Invoice and take payment
Add your services to InvoicePlane as products, connect a payment gateway if you want card payments, and turn on payment reminders.
Uses InvoicePlane · its docs
Watch out
Documenso and Formbricks keep some enterprise features under a separate paid licence; the core is AGPL. InvoicePlane's name and logo can't be reused.
Take it further
- Link the steps with Activepieces so a new booking creates the client in InvoicePlane automatically.
- Add a no-show policy to the contract and a deposit to the booking.
- Send a review request a day after each session.
Questions
Do I need all six apps?
No. Start with Cal.diy (or Easy!Appointments) and InvoicePlane. Add forms, contracts and email when the business needs them.
Can clients pay online?
Yes, InvoicePlane connects to payment gateways. The gateway charges its own fees; the software doesn't.
Is a Documenso signature legally binding?
Electronic signatures are accepted for most contracts in many countries, but rules vary. Check what applies where you work.
Every repo here is open source, still maintained and checked against its own documentation. How we check →