BUILT FOR HVAC · PLUMBING · ELECTRICAL · MULTI-CREW COMPANIES
One system that runs
the whole company.
Meridian Ops replaces the CRM, the dispatch board, the quote tool, the invoicing app, the stock spreadsheet and the customer portal — with one database, one workflow, and one audit trail. This page is the product: every number below is live, and the booking form at the bottom creates a real job in the system.
Demo only. All companies, people, prices and payments on this site are fictional. No real card is ever charged.
Today at Meridian — live from the database
Pipeline right now
Keyboard: in the app, press D dashboard, C CRM, J jobs, Q quotes, I invoices, / search.
1 · Lead in
A contact lands in the CRM with source, type and lifetime value. The same record drives deals, jobs, quotes and invoices — nobody re-types anything.
2 · Quote → job → invoice
Build a quote with line items and tax. Approve it and a job appears. Complete the job and a draft invoice appears. Pay it and revenue updates everywhere, instantly.
3 · Parts actually come out of stock
Use a part on a job and inventory decrements, with a low-stock guard: the server refuses if you don't have enough on hand, and logs exactly what was used where.
4 · Everyone sees their slice
Admins see everything. Dispatchers run the board. Technicians work their jobs. Viewers can look but the server rejects their writes — try it.
5 · Customers help themselves
The portal lets a customer approve a quote, pay an invoice (simulated), track a job and message the office — against the same live data.
6 · Settings that actually do something
Change the company name or the tax rate in Admin and new quotes/invoices use it immediately — tax is calculated on the server, not in the browser.
How it stacks up
| Spreadsheet + 4 apps | Typical template website | Meridian Ops (this demo) | |
|---|---|---|---|
| CRM + pipeline | Separate tool | Contact form only | ✅ Built in, drag-and-drop |
| Dispatch calendar | Whiteboard | ❌ | ✅ Board + week calendar |
| Quotes → jobs → invoices | Manual re-entry | ❌ | ✅ Automated, with audit trail |
| Inventory tied to jobs | Spreadsheet | ❌ | ✅ Parts decrement stock |
| Customer portal | Phone calls | ❌ | ✅ Approve / pay / message |
| Role-based access | Shared password | ❌ | ✅ Server-enforced roles |
| Public API | Exports by email | ❌ | ✅ Documented JSON endpoints |
ROI calculator — drag your own numbers
Estimate only, using a conservative assumption: one connected system saves ~30% of admin time and recovers ~3% of revenue that leaks through unbilled or forgotten jobs. Your mileage will vary — that's why it's a calculator, not a promise.
Book a service job — this feeds the live system
Submit this and a new contact + scheduled job are created in the same database the office app uses. Then open the app → Jobs, and find it. (Demo: use a fake email like you@example.com.)
FAQ
Is any of this real?
The software is real and the data persists in a real database. The companies, people, prices and payments are fictional demo data, and "paying" an invoice is a simulation — no card is charged.
What is it built on?
Cloudflare Pages for hosting, Pages Functions for the API, and D1 (SQLite) for the database — one deploy, no separate server. The front end is hand-written HTML/CSS/JS with no framework and no template.
Could this run a real company?
It demonstrates the architecture and workflows a real version needs. A production version would add real user accounts and authentication, real payment processing, email/SMS, file uploads, automated tests and backups — see the honest list in the app under Reports.
Can I reset it after clicking around?
Yes — in the app, Admin → Danger zone → Reset demo data (click twice). Everything returns to the original demo state, including settings.