npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

honotan

v0.7.0

Published

CLI toolkit for generating Hexagonal & Vertical Slice architecture in turbo monorepo

Downloads

76

Readme

Honotan CLI

Scaffold production-ready monorepos with hexagonal architecture – opinionated, Bun-native, TypeScript-first.

Features

  • Monorepo generator – complete apps/ + packages/ workspace with Turborepo
  • Hexagonal API scaffolding – domain, application, and adapter layers with dependency injection
  • Full-stack optional – TanStack Router + React web app with shadcn components
  • Infra packages à la carte – pick only what you need
  • Polyglot – TypeScript (Hono) and Go (Chi) API support

Installation

bun add -g honotan

Quick Start

# Generate a full monorepo
honotan generate monorepo

# Add a hexagonal API resource inside your project
honotan generate api

# Generate a standalone client app
honotan generate client

Monorepo Generator

honotan generate monorepo

Interactive prompts let you choose:

  • API framework – Hono (default) or Go
  • Client – TanStack Router (React)
  • Infrastructure packages – any combination of the packages below

Always generated

| Path | Purpose | | ------ | ------- | | packages/config | Shared TypeScript base config | | packages/env | Validated env vars (@t3-oss/env-core + Zod) | | apps/server | API server with a hello example resource |

Optional infrastructure packages

| Flag | Package | Stack | | ---- | ------- | ----- | | db | packages/db | PostgreSQL via Bun.sql | | db-turso | packages/db | SQLite/Turso via Drizzle + @libsql/client | | cache | packages/cache | Redis via Bun.redis | | event-driven | packages/event-driven | RabbitMQ via amqplib | | auth | packages/auth | better-auth (drizzle adapter when db-turso, native pg otherwise) | | s3 | packages/s3 | S3-compatible object storage via aws4fetch (Cloudflare R2, AWS S3, MinIO) | | pwa | – | vite-plugin-pwa support in the web app |

Client app (apps/web)

Generated when TanStack Router is selected:

  • Vite + React + TypeScript
  • TailwindCSS v4 (@tailwindcss/vite – no config files needed)
  • TanStack Router ^1.141.1
  • shadcn components (button, dropdown, skeleton, sonner)
  • Theme toggle (light / dark)
  • Auth-aware header + user menu when auth is enabled

Hexagonal API Generator

honotan generate api

Generates a self-contained resource module inside apps/server/src/<name>/:

src/product/
├── domain/
│   ├── entities/           # Business models
│   └── ports/
│       ├── in/             # Use case interfaces
│       └── out/            # Repository interfaces
├── application/
│   └── use-cases/          # Business logic + tests
├── adapters/
│   ├── in/http/            # Routes, controllers, validation
│   └── out/persistence/    # Repository implementations
└── index.ts                # Composition root

Supported frameworks: Hono, Go (Chi) Inbound adapters: HTTP, WebSocket Outbound adapters: In-Memory, Database, Cache

Client Generator

honotan generate client

Generates a standalone TanStack Router + React app (outside the monorepo structure).

Environment Variables

Each generated project includes .env.example. Variables added per package:

| Package | Variables | | ------- | --------- | | db | DATABASE_URL | | db-turso | DATABASE_URL, DATABASE_AUTH_TOKEN | | cache | REDIS_URL | | event-driven | RABBITMQ_URL | | auth | BETTER_AUTH_SECRET, BETTER_AUTH_URL | | s3 | S3_ENDPOINT, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_BUCKET |

Local Development

git clone https://github.com/rifkyputra/honotan-cli.git
cd honotan-cli
bun install

# Run tests (generate projects into .generated/ and assert on output files)
bun test

# Type check
bun run check-types

# Build
bun run build

# Link globally for manual testing
bun link

Roadmap

  • [x] TypeScript + Hono hexagonal templates
  • [x] Go + Chi hexagonal templates
  • [x] Monorepo structure generation
  • [x] TanStack Router client generation
  • [x] DB (Postgres), DB-Turso, Cache, Event-Driven, Auth, S3 packages
  • [x] Turborepo integration
  • [ ] GraphQL adapter
  • [ ] Kafka support
  • [ ] Express & Fastify support
  • [ ] Rust support

License

MIT