Features

Built around how service businesses actually work

Three document types, one connected workflow, and payments wired in from day one.

Each document family supports three working styles, so one-time gigs, retainers, and flexible arrangements all fit.

Quotes

  • Regular (Q-XXX): one-time project quoting
  • Long-term (LTQ-XXX): recurring service quotes
  • On-Demand (ODQ-XXX): flexible quoting without billing intervals

Contracts

  • Regular (C-XXX): one-time service contracts
  • Long-term (LTC-XXX): subscription / retainer contracts
  • On-Demand (ODC-XXX): flexible billing contracts

Invoices

  • Standard (I-XXX): one-time invoices
  • Recurring: auto-generated from long-term contracts
  • On-Demand (ODI-XXX): manual invoice generation

Create a quote

Choose Regular, Long-term, or On-Demand. It starts in Pending.

Approval

Approval auto-generates a linked contract and invoice under one project ID.

Signed contract

The project can't proceed until a signed contract is uploaded.

Active work

Contract stays Active until marked complete.

Invoice due

Completion sets the invoice due date (net 30 by default, adjustable).

Void / re-enable

Void any document at any time; related documents follow. Re-enable restores state.

PHP 8.3+

Modern PHP with Twig templates for a clean, maintainable codebase.

Docker-first

One docker compose up gets the full stack: app, cron worker, and MySQL 8.

Stripe API

Payment Intents with webhook handling and reconciliation for missed events.

Hardened by default

Database encryption at rest, encrypted secrets, account lockout, audit logging, CSP headers, and automated dependency scanning in CI.

See it for yourself

The entire platform is open source — read the code, run it, make it yours.

Browse the Repository