A Hono starter boilerplate for TypeScript with minimal dependencies and a clean architecture. All dependencies are
initiated at the start of the application and passed to the controllers and services. A swagger API doc is attached in
the static folder: openapi.yaml
.


- Authentication: JWT
- Validation: Zod
- Worker: BullMQ
- Logging: Pino
- ORM: Drizzle
- Queue: Redis
- DB: MySQL
- Runtime: NodeJS
- Framework: Hono
- Formatter: Biome
- API Doc: Swagger
- Language: TypeScript
- Package Manager: PNPM
pnpm install
pnpm install -g typescript
pnpm install -g pino-pretty
Create a new file .env
in the root folder and copy contents from the .env.template
file.
docker compose up -d
pnpm run db:generate
pnpm run db:migrate
pnpm run dev
open http://localhost:3000/doc
The OpenAPI YAML doc is in the static
folder.
If you need the JSON file, it can be generated with the help of yq
.
https://github.com/mikefarah/yq
yq eval -o=json static/openapi.yaml > static/openapi.json
And the JSON doc will be generated.
pnpm drizzle-kit studio
open https://local.drizzle.studio/