Expressa

cmsdeveloper tools

Node.js CMS and API framework that generates REST endpoints automatically from JSON Schema content type definitions. Define your data model in JSON, get a working API and admin panel with permission management included

#cms#nodejs#api#json-schema#rest#self-hosted

Quick Start

git clone https://github.com/thomas4019/expressa && cd expressa && npm install && node server.js

Overview

Expressa is a Node.js framework that turns JSON Schema definitions into REST APIs. You define a content type — describe its fields, types, and constraints in a JSON Schema file — and Expressa generates the CRUD endpoints, wires up permission checks, and provides a basic admin panel. The idea is to skip the repetitive work of writing the same create/read/update/delete routes for every content type in a data-driven application.

The approach is developer-oriented. There is no visual schema builder or drag-and-drop interface. You write JSON, run the server, and get endpoints. For developers who are comfortable with JSON Schema and want to scaffold an API backend quickly without building it from scratch, the workflow is fast. For non-developers or teams that need a polished admin UI, it is not the right fit.

Permission management is included in the core. Role-based access control applies at the collection and operation level — you configure which roles can create, read, update, or delete records in each collection. This is a meaningful feature for internal tools where different users need different access without building custom auth middleware.

The honest limitation is project health. Expressa has 448 GitHub stars and has seen very few commits in recent years. The documentation covers the basics but leaves edge cases unaddressed. For prototyping or internal tools where you control the environment and can absorb maintenance risk, this is manageable. For production applications that will need ongoing updates, bug fixes, or security patches, the low activity level is a meaningful concern. Directus and Strapi both solve a similar problem with active maintenance and larger communities.

Use Cases

Specific ways to use Expressa for your workflow.

01
Scaffold a REST API for a data-driven application by defining JSON schemas rather than writing CRUD routes manually
02
Build an admin panel backed by a database without coding a custom backend from scratch
03
Prototype a content model quickly using JSON Schema definitions and iterate without writing migrations

Deployment Strategy

Recommended ways to host Expressa in your own environment.

self-hosted