Expressa
Express middleware that generates REST collection APIs from JSON Schema with a Django-like admin UI; supports MongoDB, PostgreSQL or JSON-file storage.
Expressa is a Node.js/Express middleware that creates data-driven REST collection APIs from JSON Schema and exposes a Django-like admin interface for creating collections and managing permissions. It is designed to be embedded into existing Express apps and supports per-collection storage backends (MongoDB, PostgreSQL, or JSON files). (github.com)
Key Features
- JSON Schema-driven collections: define collection schemas using standard JSON Schema and edit them via the admin UI. (github.com)
- Built-in admin interface: browser-based admin for creating collections, roles/permissions and managing data (admin UI rebuilt with Vue.js in a past release). (npmjs.com)
- Pluggable storage per collection: supports MongoDB and PostgreSQL drivers plus file-backed JSON storage for versionable data. (github.com)
- Standard REST endpoints generated for each collection: list, get by id, create, update (including mongo-style update), delete, plus schema endpoints. (github.com)
- Middleware-first design: installs as Express middleware so it can be mixed with other Express routes and middlewares; supports event listeners/hooks to modify/stop requests and responses. (github.com)
Use Cases
- Rapid CRUD backends: quickly add collection-based REST APIs and an admin UI for internal tools, prototypes, or admin dashboards. (github.com)
- Decoupled frontends: expose JSON-schema-backed endpoints so frontends can reuse schema for forms and validation. (github.com)
- Small CMS or content stores: manage content collections with per-collection storage and role/permission controls for editorial workflows. (github.com)
Limitations and Considerations
- Data types: only standard JSON types are supported natively; dates must be stored as strings (ISO 8601) and there is no built-in advanced date type handling. (github.com)
- Feature gaps noted in project roadmap: automatic GraphQL support, JWT token expiration handling, cookie-based auth, and file-upload features were listed as roadmap items (indicating they may be absent or limited). (npmjs.com)
- Small ecosystem and low npm usage: the project is community/open-source with modest download numbers and community size; consider maintenance and support requirements for production use. (npmjs.com)
Expressa is a pragmatic option when you need a schema-driven REST admin layer that plugs into an existing Express app. It emphasizes simplicity and extensibility (hooks/listeners) while relying on common Node.js stacks (Express, MongoDB, PostgreSQL); evaluate the listed limitations and project activity before picking it for critical production workloads. (github.com)