HotCRM
June 4, 2026 ยท View on GitHub
HotCRM
AI-Native CRM for the ObjectStack marketplace. The reference implementation every future marketplace app forks from.
HotCRM is a complete, opinionated CRM built as the first official application on the ObjectStack marketplace. Install it into any ObjectStack environment in one click and get a working CRM in 30 seconds โ or fork it as the canonical example of how to build your own marketplace app.
Try it in your browser (no install): click the StackBlitz badge above. It boots HotCRM in a WebContainer using
@objectstack/driver-sqlite-wasm(sql.js) instead ofbetter-sqlite3, which can't compile inside the WebContainer sandbox..stackblitzrcsetsOS_DATABASE_DRIVER=sqlite-wasmso the runtime picks the WASM driver automatically. First load takes ~60s while pnpm installs.
๐ธ Screenshots
| Sales pipeline (kanban) | All opportunities (table) |
|---|---|
![]() | ![]() |
| Accounts (cards) | Service cases (kanban) |
|---|---|
![]() | ![]() |
| Executive dashboard |
|---|
![]() |
Screenshots show HotCRM running in zh-CN with seeded data. Bundled translations: en, zh-CN, es-ES, ja-JP.
โจ What you get
15 business objects spanning the full Lead-to-Cash cycle:
| Sales | Service | Marketing | Revenue |
|---|---|---|---|
crm_lead | crm_case | crm_campaign | crm_contract |
crm_account | crm_knowledge_article | crm_campaign_member | crm_quote |
crm_contact | crm_task | crm_quote_line_item | |
crm_opportunity | |||
crm_opportunity_line_item | |||
crm_product | |||
crm_forecast |
Plus 2 AI agents (sales-copilot, service-copilot), 4 dashboards, 10 flows, 10 actions, 6 AI skills, 4 language bundles (en, zh-CN, es-ES, ja-JP), 10 roles, and 5 sharing rules.
๐ Install from the marketplace (recommended)
- Sign in at cloud.objectos.app.
- Open Marketplace โ HotCRM and click Install into your environment.
- Open your environment URL โ HotCRM is wired into the Studio shell. Done.
First-time on ObjectStack? Create an environment from the Starter template first, then install HotCRM on top.
๐ Run locally (development / fork it)
git clone https://github.com/objectstack-ai/hotcrm.git
cd hotcrm
pnpm install
pnpm dev # ObjectStack runtime starts at http://localhost:4001
pnpm typecheck # strict TypeScript
pnpm build # produces dist/objectstack.json (the publishable artifact)
The compiled dist/objectstack.json is the package โ that's what gets uploaded to the marketplace.
๐ฆ Publish a fork to the marketplace
After you've forked, customized, and renamed the package:
# 1. Authenticate once (writes ~/.objectstack/cloud.json)
objectstack cloud login
# 2. Build the artifact
pnpm build
# 3. Publish a new version
objectstack package publish dist/objectstack.json \
--manifest-id app.acme.crm \
--version 1.0.0 \
--display-name "Acme CRM" \
--category crm \
--visibility marketplace \
--note "Initial release"
The CLI is idempotent: re-running with the same --manifest-id updates the package; new --version values create immutable versioned snapshots.
See docs: Publishing your first marketplace app for the full walkthrough.
๐ Repository layout
hotcrm/
โโโ objectstack.config.ts # manifest + defineStack() โ single source of truth
โโโ src/
โ โโโ objects/ # *.object.ts โ data model (15 objects)
โ โโโ actions/ # *.action.ts โ server actions + AI tools (10)
โ โโโ flows/ # *.flow.ts โ visual flows (10): screen, record-change & scheduled
โ โโโ hooks/ # hook registry barrel
โ โโโ agents/ # *.agent.ts โ AI copilots (2)
โ โโโ skills/ # *.skill.ts โ AI skills (6)
โ โโโ cubes/ # *.cube.ts โ analytics cubes
โ โโโ dashboards/, reports/ # analytics UI
โ โโโ pages/, views/, apps/ # UI definitions
โ โโโ profiles/, sharing/ # security
โ โโโ translations/ # en / zh-CN / es-ES / ja-JP
โ โโโ data/ # seed data
โโโ apps/docs/ # Fumadocs app
โโโ content/docs/ # Documentation content
Every file follows the <entity>.<kind>.ts convention. The crm_ prefix on object names is explicit in source โ no runtime magic. Both rules are required for marketplace acceptance.
๐ Documentation
- Live docs: start
pnpm --filter @hotcrm/docs dev -- -p 3001, then open http://localhost:3001/docs - For business users: Sales, Service, Marketing, Revenue, AI Copilot guides
- For developers: Architecture, Customization, API reference, Testing & CI
- For publishers: Marketplace publishing guide
๐ค Why fork HotCRM?
Because it's the reference for every ObjectStack convention you'll encounter:
- โ
crm_namespace prefix on every object (explicit, grep-able, marketplace-safe) - โ
Strict
*.object.ts/*.hook.ts/*.action.tsseparation of concerns - โ
All metadata validated against
@objectstack/specschemas - โ ObjectQL only โ no raw SQL anywhere
- โ
AI-Native โ every entity has an
*.action.tsthat's also an AI tool - โ Four-language i18n out of the box
- โ Production-shaped sharing rules, profiles, and role hierarchy
If you want to ship an HR app, a project tracker, a help-desk โ start by reading HotCRM's structure, then change names.
๐ License
Apache-2.0. See LICENSE.




