Skip to content

mimi.jsNode.js framework built for speed

Express-compatible · works with JavaScript & TypeScript · batteries included

mimi.js

Quick Start

bash
npm install mimi.js
ts
import mimi, { json, cors } from 'mimi.js';

const app = mimi();

app.use(json());
app.use(cors());

app.get('/hello', (req, res) => {
  res.json({ message: 'Hello from mimi.js!' });
});

app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});
bash
node server.ts

Auto Route Loading

The biggest time-saver in mimi.js. Create a routes/ folder and drop in route files — they are automatically discovered and mounted at startup.

my-app/
├── server.ts
└── routes/
    ├── users.ts     ← loaded automatically
    ├── posts.ts     ← loaded automatically
    └── auth.ts      ← loaded automatically
ts
// routes/users.ts
import type { MimiApp } from 'mimi.js';

export default function (app: MimiApp) {
  app.get('/users', (req, res) => res.json({ users: [] }));
  app.post('/users', (req, res) => res.status(201).json(req.body));
}
ts
// server.ts — nothing to import, routes load themselves
import mimi, { json } from 'mimi.js';

const app = mimi();
app.use(json());
app.listen(3000);

Learn more about Route Loading →


Performance

Benchmarked: single Node.js process · 100 concurrent connections · 10s (autocannon)

FrameworkSimple route50-route appMemory
Express 420,414 req/s19,704 req/s136 MB
Fastify 594,060 req/s94,275 req/s93 MB
mimi.js v289,504 req/s88,305 req/s96 MB

Released under the ISC License.