Skip to content
RepoQuarry

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.

  1. You Your availability and services Cal.diy
  2. Cal.diy Link to the intake form in the booking confirmation Formbricks
  3. Formbricks Client details to fill the contract Documenso
  4. Documenso Signed contract, so you raise the invoice InvoicePlane
  5. InvoicePlane Client email for reminders and follow-ups listmonk

The repos

  1. 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
    ★ 49k MIT Partial: 7/8 facts Official docsGitHubReplaces Calendly
  2. 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
    ★ 4.5k GPL-3.0 Partial: 7/8 facts Official docsGitHubReplaces Acuity Scheduling
  3. 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
    ★ 3.2k MIT Partial: 7/8 facts Official docsGitHubReplaces FreshBooks
  4. 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
    ★ 15k AGPL-3.0-only Confirmed: 8/8 facts Official docsGitHubReplaces DocuSign, PandaDoc
  5. 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
    ★ 13k AGPL-3.0-only Confirmed: 8/8 facts Official docsGitHubReplaces Typeform, Jotform
  6. 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
    ★ 24k AGPL-3.0-only Confirmed: 8/8 facts Official docsGitHubReplaces Mailchimp, Brevo

Step by step

Install commands change, so each step links to the repo's own docs for the exact commands.

  1. Start with bookings

    Install Cal.diy, connect your calendar and set up one event type per service with its length and price. If you want something simpler with no calendar sync, Easy!Appointments is the lighter option.

    Uses Cal.diy · its docs

  2. 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

  3. Send your terms for signing

    Upload your terms or contract to Documenso as a template with fields for the client's name and date. Send it to new clients after their first booking. Documenso needs your own signing certificate; its docs explain how.

    Uses Documenso · its docs

  4. 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

  5. Keep in touch

    Import clients into listmonk with their consent and set up a reminder or a monthly note. listmonk needs an email sending service (SMTP) to deliver mail.

    Uses listmonk · 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.

Shared builds

Nobody has shared one yet. Be the first.

Built your own version and put it on GitHub as open source? Share your build

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 →

Cookie preferences

Choose what we may store in your browser. You can change this any time from Cookie settings in the footer.

Essential

Security, and remembering this choice. rq-consent · 12 months

Always on