Marula documentation

Marula is an open-source PSA (professional services automation) platform for IT service teams and MSPs. It runs your tickets, timers, client records, dispatch schedule, project billing, and client portal in one place on a database you own and control.
"The core is open source. Host it yourself, fork it, break it, rebuild it. You can leave with your whole system on any given day and you can extend it any which way and make it entirely your own." — MANIFESTO.md, quoted verbatim
Start by role
- Technicians and service desk staff: Start with Your first ticket, then check Work a ticket, Run a field service day, and Close your day with the day pack.
- Dispatchers and service leads: Jump to Dispatch from the board, Set up SLA policies and business-hours calendars, and Build dashboards and scheduled reports.
- Office managers and bookkeepers: Walk through Your first invoice, Set up contract billing models, Verify a billing period before invoicing, and Portal onboarding.
- Systems administrators and developers: See Self-host local stack reference, Upgrade to the latest release, and Call the API from TypeScript or curl.
Or start from the task
Start here is the same idea, done properly: one page per reader, each listing tasks in the words people use and linking the page that answers them.
| You are | Start at |
|---|---|
| Owner — contracts, margin, month close, access | Owner tasks |
| Admin — people, boards, SLA, email, portal, automations | Admin tasks |
| Technician — tickets, service days, stock, billable time | Technician tasks |
| Operator — stand-up, backup, upgrades, monitoring | Operator tasks |
| Agent author — API, read model, grants, plugins | Agent and automation tasks |
Two pages cut across all of them: Troubleshooting starts from a symptom instead of a feature, and the Glossary defines the vocabulary the rest of the site assumes.
Browse by section
These docs follow Diátaxis. Each page belongs to one of four sections so step-by-step lessons, quick task checklists, technical specs, and design background stay easy to find.
| Section | Answers | Start here |
|---|---|---|
| Tutorials | "Take me through a full workflow, step by step" | Your first ticket |
| How-to guides | "How do I get this specific job done?" | How-to index by role |
| Reference | "What are the exact schemas and endpoints?" | API reference |
| Explanation | "Why does Marula work this way?" | Why we're building Marula |
Where the rest lives
- Architecture decision records:
docs/adr/ - Instant-first interaction doctrine:
docs/instant-first.md - Upgrade and compatibility policy:
docs/upgrade-compatibility-policy.md - Engineering documentation (architecture, operations internals, specs):
docs/README.md— the entry point for people building and running Marula, kept out of this site on purpose - Operator runbooks: canonical scaffold lives at
deploy/runbooks/(deploy/runbooks/README.md), while authored runbook content lives in the site under reference/ (see the coverage audit) - Docs coverage audit and IA plan:
DOCS-COVERAGE.md - Public waitlist and marketing site: the separate site package, which lives outside this repository. Product positioning is quoted there and here from
MANIFESTO.mdverbatim, never re-synthesized.