A Flexible Core Platform for Domain-Specific Applications
Stack9 Core isn't a generic CMS bolted onto your domain. Define your business objects as entities, compose screens and modules in the Console, query with a centralized Query Library, and integrate external systems through Connectors — with TypeScript hooks ready whenever configuration isn't enough. Where teams otherwise assemble a headless CMS, a workflow tool, and a custom backend, Stack9 Core pre-integrates the plumbing so you can focus on what makes your portal, back-office system, or member platform actually different.
Configuration Where It's Routine. Code Where It's Differentiating.
Model your domain once, in JSON
Entities are declarative — define fields, validation, and relationships and Stack9 generates the database schema, REST APIs, and TypeScript models for you. Change the JSON, the whole stack follows.
Compose screens without a frontend build
List views, detail views, dashboards, and full CRUD screens are configured, not coded. Sections, tabs, drawers, and role-based permissions come from the same JSON that defines the data.
One centralized Query Library
Every screen and automation reads through named, parameterized queries — with selects, filters, sorting, pagination, and eager-loaded relationships defined once and reused everywhere.
Connectors for the systems you already run on
REST APIs, PostgreSQL, MongoDB, S3, Azure Blob, SendGrid, GraphQL, Elasticsearch and more — configured centrally with credentials in environment variables, never hardcoded.
TypeScript when configuration isn't enough
Entity hooks and action types give you full TypeScript, with typed access to the entity service, query library, workflows, and storage — for the logic that actually differentiates your application.
Apps and Modules keep it organized as you grow
Apps group your screens into navigable sections with access control. Modules package entities, screens, queries, and automations into versioned, reusable NPM packages across projects.
From Domain Model to Running Application
Define entities
Model Customer, Order, Membership, or whatever your domain needs as JSON entities. Get a database table, CRUD REST endpoints, and generated TypeScript models automatically.
Compose screens and apps
Build list views, detail views, and dashboards in the Console, then group them into Apps with their own navigation and access rules — a portal, a back-office system, or both.
Query with the Query Library
Wire screens to named queries with filters, sorting, and related-entity data. The same query powers a list view, a dashboard widget, or an automation.
Integrate via Connectors
Bring in address lookups, payment gateways, external databases, or cloud storage through configuration-driven Connectors — no bespoke client code per integration.
Extend in TypeScript
Drop into entity hooks or action types when the logic is genuinely domain-specific — sequence numbers, custom validation, calculated fields, or calls into your own services.
See the Platform in the Console
Entities, screens, queries, and integrations — all authored and managed in one place.
Add fields, validation, and relationships without writing migration code.
Every business object in your application, in one browsable catalog.
Compose the UI for every entity from a single, organized screens list.
One data access layer, reused across screens and automations alike.