A tiny, fully-typed Node.js HTTP framework for everyday APIs. No magic. No runtime bloat. Just clean types and composable handlers.
npm install arcara
import { Arcara, Router, HttpError } from 'arcara';
const app = new Arcara();
// middleware
app.use((req, _res, next) => {
console.log(req.method, req.url);
next();
});
// typed path params — inferred from the route string
app.get('/users/:id', (req, res) => {
res.json({ id: req.params.id });
});
// error handling
app.onError((err, _req, res) => {
res.status(err.status).json({ error: err.message });
});
app.listen(3000);
Path parameters are inferred from route strings at compile time.
req.params.id is typed — no casting, no guessing.
Built on node:http only. No hidden packages, no
version conflicts, no supply-chain risk.
use, get, post,
Router, HttpError,
serveStatic. Everything you need, nothing you don't.
Global, prefix-scoped, or route-scoped. Write middleware as
factory functions — pass options, return a
Middleware.