💡 Check the full documentation
👉 Visit expresso-macchiato docs for the full API reference and guides.
🧘 Relax. Let expresso-macchiato handle it.
Writing a fully operational backend server—with routes, a database, and documentation—shouldn’t feel like crafting a rocket 🚀. With expresso-macchiato, the setup is minimal, the structure is clean, and the flexibility is in your hands.
No more boilerplate. No more endless wiring.
🧩 What is expresso-macchiato?
expresso-macchiato is a lightweight but powerful Node.js framework built on top of Express and TypeORM. It simplifies the process of:
- Creating and exposing RESTful routes from entity definitions.
- Generating and serving a Swagger schema out of the box.
- Bootstrapping your entire app (routes, database, sockets, etc.) with a single class.
It's designed for developers who want to go from zero to production-ready server in minutes.
Writing this:
export const noteRoutes = new RouterWrapper({
tag:'note',
basePath:'/api/note',
dbRouting:
{
entity: Note,
secure: { user_id: { tokenKey: 'id', methods: "*" } },
getParameters: [{ in: 'query', like:true, name:'content' }],
bodyParameters: Swagger.createSchema({ content: { type: 'string', } }),
}
});
and mounting it to the Starter, you will:
- Create dynamic routes for your entity.
- Secure them with a token, with eventually some logics to query the db with the decrypted payload
- Create the swagger documentation you can access right after.
🏁 Quick Start
The fastest way to get started with expresso-macchiato is using the official project scaffolding:
npx create-expresso-macchiato
This command sets up a complete and ready-to-use template, optimized for working with expresso-macchiato.
Why this is the recommended way:
- Preconfigured build system using TSUP.
- Includes jwe-token-based authentication and pre-exposed API routes.
- Built-in MinIO utility for handling image storage from Docker.
- Comes with a Dockerfile and docker-compose setup out of the box.
- Includes prefilled .env files and a .gitignore tailored for Node/TypeScript projects.
You just need to:
npm install
npm run dev
And you're good to go! 🎉
This will:
- Connect to the database
- Expose some demo routes
- Serve auto-generated Swagger docs at /swagger-ui
🛠️ Manual Installation
Prefer starting from scratch? You can install expresso-macchiato directly into your own project:
npm install expresso-macchiato
💡 Read more
👉 For all the methods and correct use, check the expresso-macchiato docs for all the reference you need
🚀 Next Version
If you like expresso-macchiato, I'm open to contributors and motivated to keep improving the project.
Planned for v1.0.0:
- ✨ A clean and robust socket implementation (currently in the
develop branch)
- 🔐 Support for multiple authentication strategies in dynamic DB routing (currently only JWE is supported)
- 💡 Fresh ideas and contributions from the community!
Feel free to open an issue, fork the repo, or start a discussion — let's make expresso-macchiato even better together!