ZinTrust: structure without the ceremony (and without decorators)
If you’ve built TypeScript APIs for a while, you’ve probably felt the pull in two directions:
- Super flexible stacks where structure can drift over time.
- Highly opinionated frameworks where decorators/DI patterns can feel heavy (depending on your team).
I wanted a middle ground—clear structure, explicit wiring, and a minimal core.
So I’ve been building ZinTrust: a production-grade TypeScript backend framework with no Express/Fastify as the core, plus adapters you add when you need them.
What “minimal core” means (in practice)
For me it’s about:
- Explicit wiring you can trace when debugging.
- Composability (add what you need; avoid pulling in the world by default).
- Type-first ergonomics without leaning on magic.
A tiny routing example
Here’s the style of routing / grouping:
import { Router, type IRouter } from '@zintrust/core';
export function registerRoutes(router: IRouter): void {
Router.group(router, '/api/v1', (r) => {
Router.resource(r, '/users', { index, show, store, update, destroy });
});
}
Quickstart
If you want to kick the tires quickly:
npm i -g @zintrust/core
zin new my-app
cd my-app
zin start
The feedback I want (seriously)
This is the phase where docs and onboarding matter more than “features”. If you try it, I’d love blunt feedback on:
- Where do you get stuck in the quickstart?
- Which concepts feel unclear (routing, structure, ORM, config, etc.)?
- What would make you confident this is production-ready?
Reply here, open an issue, or join the community:
- Discord: https://discord.gg/sEU2brHMQd
- Slack: https://join.slack.com/t/zintrustjs/shared_invite/zt-3ljhlzn3n-H7jsI1n1bTXKYRu2FSRGag
If you only look at one thing
If you only have 2 minutes, check the docs and tell me what’s confusing:
Thanks for reading—and if you try it, thank you even more for the critique.
Top comments (0)