
Inside the business
The Chair Room
+ 2 more stages
Business room
Barbershop
Keep every regular, service note, and return visit within reach.
Keep client history, booking requests, service notes, and rebooking cadence in one branded workspace.
Business systems showroom
The showroom is a guided look at the platform through businesses you understand. Open a room to see the customer records, work board, booking flow, website, follow-up, and ownership setup shaped around that business.
Each room uses sample data and real workflow stages from the same connected platform.
Swipe through featured rooms
The platform behind every room
CRM means customer relationship management. It gives you one place for customer records, inquiries, bookings, jobs, quotes, and follow-up from the first call through the next sale.
Run it for one business, or brand the platform for your agency and manage client workspaces from one owner view.
Everything below is sample data from a demo install.
Each view below is a surface the CRM actually has to run: the workspace split, the customer record, the board, the public intake paths, the money records, the client-facing pages, and the owner's view of all of it.
Sample data only. These are interface mockups drawn from the real screens, not screenshots of a live customer install. No customer counts, ratings, revenue results, or deployment claims appear anywhere on this page.
Your brand, your domain, your Stripe account. The agency layer is where you add sub-accounts, review billing readiness, and check platform health.
| Workspace | Contacts | Deals | Forms | State |
|---|---|---|---|---|
Northside Dental Generic pack | 48 | 6 | 2 | Live |
Miller Heating & Air HVAC pack | 126 | 14 | 3 | Live |
Oakline Lawn Co. Lawn Care pack | 91 | 9 | 2 | Live |
Copper Pool Service Pool Service pack | 0 | 0 | 1 | Draft |
What this proves · One install can run your own CRM or a book of client sub-accounts. Records belong to a workspace, so a client's contacts, deals, and forms stay in that client's workspace.
Commercial cleaning lead
Quote request from the public commercial cleaning form
Matched on email, so no duplicate record was made
New stage · $1,850 estimate
Call back before 2 PM
Prefers a Friday walkthrough
What this proves · Nothing about a lead lives in an inbox. The submission, the deal it opened, the task it created, and every note stay attached to one customer record.
Deactivating a form is the kill switch — an inactive slug stops accepting submissions immediately.
What this proves · A public form submit is an ingest path, not a notification. One guarded endpoint writes the contact, the deal, and the activity — and the response never waits on email delivery.
New · Contacted · Qualified · Proposal · Won · Lost — renamed per vertical pack.
What this proves · Stages are seeded on install and belong to a pipeline. A deal is constrained by a composite foreign key on (stage_id, pipeline_id), so a UI mistake cannot park a deal in another pipeline's stage.
45 minutes · Thursday, June 12
Struck-through slots are already taken. Slot rules come from the booking record, not a third-party calendar tool.
What this proves · A booking page is a public slug with slot rules and intake questions. The booking lands in the CRM as a record, so scheduling and follow-up are not in two different tools.
| Item | Qty | Amount |
|---|---|---|
| Deep clean — initial visit | 1 × $650 | $650.00 |
| Weekly maintenance | 4 × $240 | $960.00 |
| Floor treatment (add-on) | 1 × $240 | $240.00 |
What this proves · Catalog items build quote and invoice records with discounts, tax, payment terms, and status. Collection runs through your own Stripe account — the CRM tracks the record, it is not a merchant of record.
Draft and live states are set from the dashboard.
Outbound clicks pass through /go/[linkId] so the count is recorded.
What this proves · Client-facing pages live inside the package you host. The site record connects to a CRM form, and link clicks route through a tracked redirect instead of a third-party link tool.
These are the states you configure during setup. The CRM shows them so you can tell what is still unfinished.
What this proves · Reporting reads the same database the CRM writes to — contacts, open pipeline, won revenue, task queue, site status, and link clicks. Platform admin is where the owner checks license setup, health, and support.
Four groups of working surfaces. Nothing here describes a roadmap item — if it is listed, it exists in the codebase you receive.
The daily workspace: know who the customer is, what stage the deal is in, and what should happen next.
Store names, emails, phone numbers, custom fields, and workspace-scoped customer context.
Lead submissions, notes, deal changes, booking events, and follow-up history stay attached to the record.
Default stages are seeded on setup, and won/lost movement closes deals cleanly.
Run one team CRM or operate multiple sub-accounts from the platform layer.
Forms and bookings are not side tools. They are public entrypoints wired straight into the CRM.
Each form has a public URL, field schema, active status, and one ingest path into contacts, deals, and activities.
Publish scheduling pages with slot rules, meeting URLs, intake questions, and CRM capture.
Owners and admins can receive escaped Resend email alerts without blocking the public submit response.
Email dedupe keeps repeat submissions from making a messy customer pile.
Give each business useful public pages without sending them to another hosted website or link-in-bio tool.
Create draft/live client website records with connected CRM forms and Google Maps links.
Publish branded link pages, route outbound clicks through tracking, and keep the page inside the CRM package.
Catalog service, physical, or digital items with prices, descriptions, and package context.
Build quote and invoice records from products, payment terms, discounts, and tax.
The owner view for running the stack, supporting clients, and keeping day-to-day work visible.
Track today, overdue, upcoming, and done work with calendar visibility.
Watch pipeline, deal, and revenue movement from the dashboard instead of living in exports.
Manage license setup, billing readiness, client workspaces, health, and support surfaces.
Built-in help explains contacts, forms, bookings, products, quotes, websites, reports, and setup.
Each business room is generated from the same pack that seeds its CRM language, lifecycle, fields, forms, activities, and operating defaults. The showroom is a window into the product, not a separate set of landing-page promises.
Browse the business showroomPack to room
NEXT_PUBLIC_CRM_STACK_VERTICALEvery value below is read from the actual vertical pack in the codebase — the same definitions the install seeds on first run. Nothing here is a marketing approximation.
Pack 1 of 10 selected. On a keyboard, the arrow keys move between packs.
Solo operators and small teams without a specific industry tilt.
NEXT_PUBLIC_CRM_STACK_VERTICAL=genericWhen you don't need niche workflow, you need a clean inbox, a pipeline, and forms.
None beyond name, email, phone, and source. The generic pack stays deliberately plain so you can add your own.
The package runs on infrastructure you control. That is a real advantage and a real responsibility — self-hosting does not make software secure by itself, and we do not claim any certification we have not earned.
Read the ownership & security detailA SQLite database file under your hosting path, in WAL mode, with a backup script and restore steps in the docs.
App name, accent color, client-facing pages, offer, and pricing are yours to change. Buyers see your CRM, not ours.
Stripe, Resend, Cloudflare, DNS, and hosting are all registered in your name. No reseller sits between you and them.
You hold the source. Claude, Codex, or a developer can extend it. Nothing needs our permission to ship.
Hosting it yourself means patching, backups, access policy, and key rotation are your job. The docs cover the path; running it is on the buyer. If that is not a trade you want, a hosted CRM is the honest answer.
Technically comfortable buyers can follow the written guides start to finish. Buyers who would rather not learn DNS, webhooks, and payment keys on a deadline can add Launch Setup and go through it with Corey.
We do not publish a setup time estimate. How long this takes depends on your hosting, your DNS provider, and how quickly Stripe and your email domain verify.
Pick a license and complete checkout. The purchase is recorded through Stripe, and the success page is the handoff point.
The buyer setup guide and the outside-services guide walk through every account, key, and DNS record you will need.
Deploy the package to your own VPS, server, or cloud account with the included Docker Compose and environment reference.
Point DNS at your install, add your Stripe keys and Resend sender, set the app name and accent, and pick the vertical pack.
Publish a form, submit a live test, and confirm the contact, deal, and activity were written. Then invite your team and start customizing with Claude, Codex, or a developer.
This compares recurring hosted-CRM rent against a one-time CRM Stack license plus your estimated operating cost. Enter what you actually pay — the tool does not assume any competitor's pricing.
Every figure here is an estimate. Hosting, migration effort, support, payment processing fees, and future customization all vary by buyer and are not modeled.
Over 3 years, owning is estimated to cost $8,895 less than renting, using your inputs. The one-time license is estimated to pay for itself in about 4 months, based on a monthly difference of $272.
This compares the two models, not specific companies. Hosted CRMs are a reasonable choice for plenty of businesses — the question is which set of trade-offs you want to live with.
Several of these are reasonable customization lanes once you own the code. None of them are shipping features today, and this page will not imply otherwise.
Handled inside the package.
Covers part of the job, not all of it.
You still need to bring this.
CRM Stack is early. Rather than fill this section with invented customers, quotes, ratings, or results, the slots are marked and left empty until there is verified material to put in them.
How an agency deployed the package, which vertical pack they run, and what they changed.
The messy state before, and the operating state after, described by the operator who lived it.
Attributed quotes from named buyers who agreed to be named.
Screenshots of real installs running under the buyer's own brand and domain.
Until then, the proof on this page is the product itself: the interface demonstrations above, the buyer setup guide, and a plain account of what the package does and does not include.
No monthly software fee is required to own the CRM. You host it. You keep it.
The license and Launch Setup are one-time purchases.
If you are not strong with APIs, payment keys, email, and domain connections, add the recommended $250 setup consultation. You start from a guided, worry-free setup instead of piecing it together alone.
Perfect for solo builders and smaller agencies.
Best for growing agencies and teams.
Recommended if you want the API, Stripe, email, and domain setup handled with you.
Keep it maintained and fully supported.
The practical questions buyers ask before they own and host the CRM themselves.
Yes. That is the point. You can use your logo, brand name, domain, colors, pricing, and client offer. Your buyers and clients see your CRM brand, not a CRM Stack landlord sitting between you and the customer.
The CRM license is a one-time purchase. There is no monthly software fee required to own it. The optional Care Plan is monthly only if you want ongoing maintenance and support.
Basic server and API knowledge helps. The buyer guide walks through Stripe, email, domains, webhooks, and hosting. If you are not comfortable connecting those services, the $250 Launch Setup is the easier path.
GoHighLevel is hosted software you rent. CRM Stack is a self-hosted CRM package you own. You control the code, data, branding, hosting, and direction.
HubSpot is a large hosted CRM platform with its own pricing and ecosystem. CRM Stack is a focused ownership product for agencies and operators who want a CRM foundation they can host, brand, and customize.
Each client workspace can hold contacts, pipeline records, tasks, forms, bookings, products, quotes, website records, and reports. The platform admin sits above those records for owner control.
CRM Stack includes client website records, draft and live states, connected CRM forms, Google Maps links, and white-label public pages. It is meant to give each client a simple web presence tied to the CRM.
Yes, but the current clean path is a structured import during setup. The CRM already dedupes contacts by email, and the setup call is the best place to map old contact data into the right fields.
Email notifications use Resend when configured. SMS and voice are not included as live dashboard tools in the current launch package.
You can track leads through CRM forms, source fields, activities, and pipeline movement today. Full ad-pixel reporting is a good customization lane once your domain, forms, and traffic sources are settled.
Stripe confirms the purchase, then the success page gives you the setup guide, outside-services guide, fulfillment instructions, and Corey's contact path. If you add Launch Setup, Corey walks through the technical pieces with you so you are not guessing through keys, domains, checkout, and email alone.
Yes. The codebase is meant to be extended. The built-in CRM Assistant can use OpenRouter when configured, and buyers can use Claude, Codex, or another coding assistant to tailor the stack.
Run the CRM under your own hosting, brand, buyer accounts, and operating process.