Modules with clear boundaries
Keep each feature together. Register modules explicitly and see exactly how your application fits together.
COMPOSABLE BY DESIGNExetJS is a lightweight modular backend engine and CLI toolkit for Express + TypeScript, developed byWebDigiTech. Just enough structure. All the control.
pnpm add -g @exetjs/cliimport { Router } from 'express';
import type { ExetModule } from '@exetjs/core';
export const hello: ExetModule = {
name: 'hello',
basePath: '/hello',
register: () => {
const router = Router();
router.get('/', (_req, res) => {
res.json({ message: 'Hello, ExetJS.' });
});
return { router };
},
};You know Express. Keep that freedom.
Add the structure your next project deserves.
Keep each feature together. Register modules explicitly and see exactly how your application fits together.
COMPOSABLE BY DESIGNTyped configuration, a clear module contract, and a generated TypeScript project. Confidence built into your workflow.
TYPES THAT GUIDE YOUScaffold a project, start development, add a module, and check your configuration. One small CLI.
FROM TERMINAL TO APIStart small, stay in control, and add structure as your application grows.
Add ExetJS to your development toolkit.
Choose your defaults. Get a clean foundation.
Run your API with a local watch workflow.
Install a module. Keep its code in your project.
Build features around explicit module contracts.
Create your app, register its modules, and start the server. Express stays within reach.
@exetjs/coreA small set of commands for creating, running, checking, and extending your project.
@exetjs/cliOne explicit registry. Predictable routes. Your application, assembled in plain sight.
ExetModuleProject defaults and environment overrides with a clear order of precedence.
exet.config.tsA simple HTTP endpoint to confirm that your application is running and reachable.
/api/v1/healthSeparate configuration, middleware, modules, and shared utilities from the start.
src/modules/Core handles the lifecycle. The CLI handles repetitive setup.
Your application keeps the code and the control.
Create the app, register modules, and start the server with a small explicit runtime.
Initialize, run, inspect, and extend ExetJS projects from one focused command-line tool.
Every generated project starts with a health endpoint and a clear example of the module contract.
Add an editable authentication starting point directly to your application when you need it.
Modules are imported and registered in plain sight, without hidden discovery or framework magic.
Keep ordinary Express routes, middleware, services, and project-specific code fully under your control.
The core is small. Where you take it is up to you.