honotan 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +347 -93
- package/dist/index.mjs +2719 -3053
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,38 +1,100 @@
|
|
|
1
1
|
# Honotan CLI
|
|
2
2
|
|
|
3
|
-
A CLI
|
|
3
|
+
**A modern CLI for scaffolding monorepo APIs with hexagonal architecture** – Embrace clean architecture, domain-driven design, and polyglot development in a monorepo structure.
|
|
4
|
+
|
|
5
|
+
## Philosophy
|
|
6
|
+
|
|
7
|
+
Honotan CLI is built on the belief that **monorepos** and **hexagonal architecture** are the foundation of scalable, maintainable backend systems. This CLI helps you:
|
|
8
|
+
|
|
9
|
+
- 🏗️ **Build monorepos from day one** – Start with proper structure, not technical debt
|
|
10
|
+
- 🎯 **Focus on domain logic** – Hexagonal architecture keeps your business logic pure and testable
|
|
11
|
+
- 🔌 **Swap implementations freely** – Ports & adapters let you change databases, frameworks, or protocols without touching core logic
|
|
12
|
+
- 🌐 **Polyglot-ready** – Generate APIs in multiple languages (TypeScript, Go) with consistent architecture
|
|
13
|
+
- 📦 **Organized by domain** – Each API module is self-contained with clear boundaries
|
|
4
14
|
|
|
5
15
|
## Features
|
|
6
16
|
|
|
7
|
-
###
|
|
17
|
+
### Monorepo Structure
|
|
18
|
+
|
|
19
|
+
Generate a complete monorepo with:
|
|
20
|
+
|
|
21
|
+
- `apps/` – Your API services
|
|
22
|
+
- `packages/` – Shared libraries and utilities
|
|
23
|
+
- Workspace management (bun, yarn, npm)
|
|
24
|
+
- Consistent tooling across all packages
|
|
25
|
+
|
|
26
|
+
### Hexagonal Architecture (Primary Pattern)
|
|
8
27
|
|
|
9
|
-
|
|
10
|
-
- Hexagonal (Ports & Adapters)
|
|
11
|
-
- Vertical Slice
|
|
28
|
+
Every generated API follows clean hexagonal principles:
|
|
12
29
|
|
|
13
|
-
- **
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
30
|
+
- **Domain Layer** – Pure business entities and logic
|
|
31
|
+
- **Application Layer** – Use cases and port interfaces
|
|
32
|
+
- **Adapters Layer**
|
|
33
|
+
- **Inbound**: HTTP, WebSocket, CLI, GraphQL
|
|
34
|
+
- **Outbound**: Databases, Cache, Message Queues, External APIs
|
|
35
|
+
- **Dependency Injection** – Composition roots wire everything together
|
|
17
36
|
|
|
18
|
-
-
|
|
19
|
-
- **Inbound**: HTTP, WebSocket
|
|
20
|
-
- **Outbound**: In-Memory Repository, Database, Cache
|
|
37
|
+
### Multi-Language Support
|
|
21
38
|
|
|
22
|
-
|
|
39
|
+
Generate production-ready APIs in:
|
|
23
40
|
|
|
24
|
-
- **
|
|
25
|
-
- **
|
|
26
|
-
-
|
|
41
|
+
- **TypeScript/Node.js** – Hono, Express, Fastify
|
|
42
|
+
- **Go** – Chi router with modern Go practices
|
|
43
|
+
- _More languages coming soon_
|
|
44
|
+
|
|
45
|
+
### Full-Stack Ready
|
|
46
|
+
|
|
47
|
+
Optional client generation with:
|
|
48
|
+
|
|
49
|
+
- **TanStack Router** – File-based routing for React
|
|
50
|
+
- **TanStack Query** – Server state management
|
|
51
|
+
- **TanStack Store** – Client state management
|
|
52
|
+
- **Tailwind CSS** – Modern styling
|
|
27
53
|
|
|
28
54
|
## Installation
|
|
29
55
|
|
|
56
|
+
Install globally with your preferred package manager:
|
|
57
|
+
|
|
30
58
|
```bash
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
59
|
+
# Using npm
|
|
60
|
+
npm install -g honotan
|
|
61
|
+
|
|
62
|
+
# Using bun (recommended for monorepos)
|
|
63
|
+
bun add -g honotan
|
|
64
|
+
|
|
65
|
+
# Using bun
|
|
66
|
+
bun add -g honotan
|
|
67
|
+
|
|
68
|
+
# Using yarn
|
|
69
|
+
yarn global add honotan
|
|
34
70
|
```
|
|
35
71
|
|
|
72
|
+
## Quick Start
|
|
73
|
+
|
|
74
|
+
**Create your first monorepo API in 2 minutes:**
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# 1. Generate a monorepo
|
|
78
|
+
honotan generate monorepo
|
|
79
|
+
|
|
80
|
+
# 2. Navigate to your project
|
|
81
|
+
cd my-api-platform
|
|
82
|
+
|
|
83
|
+
# 3. Generate your first API
|
|
84
|
+
honotan generate api
|
|
85
|
+
|
|
86
|
+
# 4. Install dependencies
|
|
87
|
+
bun install
|
|
88
|
+
|
|
89
|
+
# 5. Run tests
|
|
90
|
+
bun test
|
|
91
|
+
|
|
92
|
+
# 6. Start development server
|
|
93
|
+
bun dev
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**That's it!** You now have a production-ready monorepo with hexagonal architecture.
|
|
97
|
+
|
|
36
98
|
## Local Development
|
|
37
99
|
|
|
38
100
|
To install and work on this project locally:
|
|
@@ -41,7 +103,7 @@ To install and work on this project locally:
|
|
|
41
103
|
|
|
42
104
|
```bash
|
|
43
105
|
git clone https://github.com/rifkyputra/honotan-cli.git
|
|
44
|
-
cd honotan
|
|
106
|
+
cd honotan
|
|
45
107
|
```
|
|
46
108
|
|
|
47
109
|
### 2. Install Dependencies
|
|
@@ -104,24 +166,54 @@ bun test
|
|
|
104
166
|
npm test
|
|
105
167
|
```
|
|
106
168
|
|
|
107
|
-
|
|
169
|
+
Complete Monorepo
|
|
108
170
|
|
|
171
|
+
```bash
|
|
172
|
+
honotan generate monorepo
|
|
109
173
|
```
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
174
|
+
|
|
175
|
+
Creates a production-ready monorepo structure with:
|
|
176
|
+
|
|
177
|
+
- Workspace configuration (bun/yarn/npm)
|
|
178
|
+
- Apps directory for services
|
|
179
|
+
- Packages directory for shared libraries
|
|
180
|
+
- Consistent tooling and scripts
|
|
181
|
+
- ESLint, Prettier, TypeScript config
|
|
182
|
+
- CI/CD templates
|
|
183
|
+
|
|
184
|
+
### Generate an API Resource (Hexagonal)
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
honotan generate api
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Follow the interactive prompts to:
|
|
191
|
+
|
|
192
|
+
1. Choose your programming language (TypeScript, Go)
|
|
193
|
+
2. Select an API framework (Hono, Express, Fastify, Chi)
|
|
194
|
+
3. Enter a resource name (e.g., "product", "user", "order")
|
|
195
|
+
4. Select inbound adapters (HTTP, WebSocket, GraphQL)
|
|
196
|
+
5. Select outbound adapters (In-Memory, Database, Cache, Message Queue)
|
|
197
|
+
6. Specify output directory (default: monorepo structure)
|
|
198
|
+
|
|
199
|
+
**Generated Structure** (Hexagonal):
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
src/product/
|
|
203
|
+
├── domain/
|
|
204
|
+
│ └── entities/ # Pure domain models
|
|
205
|
+
├── application/
|
|
206
|
+
│ ├── ports/
|
|
207
|
+
│ │ ├── in/ # Use case interfaces
|
|
208
|
+
│ │ └── out/ # Repository interfaces
|
|
209
|
+
│ └── use-cases/ # Business logic implementation
|
|
210
|
+
├── adapters/
|
|
211
|
+
│ ├── in/
|
|
212
|
+
│ │ └── http/ # HTTP handlers & routes
|
|
213
|
+
│ └── out/
|
|
214
|
+
│ ├── persistence/ # Database implementations
|
|
215
|
+
│ └── cache/ # Caching implementations
|
|
216
|
+
└── composition/ # Dependency injection
|
|
125
217
|
```
|
|
126
218
|
|
|
127
219
|
## Usage
|
|
@@ -134,11 +226,10 @@ honotan generate api
|
|
|
134
226
|
|
|
135
227
|
Follow the interactive prompts to:
|
|
136
228
|
|
|
137
|
-
1.
|
|
138
|
-
2.
|
|
139
|
-
3.
|
|
140
|
-
4.
|
|
141
|
-
5. Specify output directory
|
|
229
|
+
1. Select an API framework (Hono, Express, Fastify, or Go)
|
|
230
|
+
2. Enter a resource name (e.g., "product", "user")
|
|
231
|
+
3. Select inbound and outbound adapters
|
|
232
|
+
4. Specify output directory
|
|
142
233
|
|
|
143
234
|
### Generate a Client Project
|
|
144
235
|
|
|
@@ -215,27 +306,74 @@ apps/<resource-name>/
|
|
|
215
306
|
- `.gitignore` - Git ignore patterns
|
|
216
307
|
|
|
217
308
|
**Application Code:**
|
|
309
|
+
Create a Full Monorepo
|
|
218
310
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
- `src/lib/query-client.ts` - TanStack Query client configuration
|
|
222
|
-
- `src/lib/counter-store.ts` - Global counter state with TanStack Store
|
|
311
|
+
```bash
|
|
312
|
+
$ honotan generate monorepo
|
|
223
313
|
|
|
224
|
-
|
|
314
|
+
? Project name: my-api-platform
|
|
315
|
+
? Package manager: bun
|
|
316
|
+
? Include example API: Yes
|
|
225
317
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
318
|
+
✅ Monorepo created: my-api-platform/
|
|
319
|
+
├── apps/
|
|
320
|
+
├── packages/
|
|
321
|
+
├── bun-workspace.yaml
|
|
322
|
+
├── package.json
|
|
323
|
+
└── turbo.json
|
|
324
|
+
```
|
|
229
325
|
|
|
230
|
-
###
|
|
326
|
+
### Generate an E-Commerce API (TypeScript + Hono)
|
|
231
327
|
|
|
232
328
|
```bash
|
|
233
|
-
honotan
|
|
329
|
+
$ honotan generate api
|
|
330
|
+
|
|
331
|
+
? Language: TypeScript
|
|
332
|
+
? Architecture pattern: Hexagonal (Ports & Adapters)
|
|
333
|
+
? API Framework: Hono
|
|
334
|
+
? Resource name: product
|
|
335
|
+
? Select inbound adapters: HTTP, WebSocket
|
|
336
|
+
? Select outbound adapters: Database, Cache, In-Memory Repository
|
|
337
|
+
? Output directory: apps/product-api
|
|
338
|
+
|
|
339
|
+
✅ Generated complete hexagonal API with:
|
|
340
|
+
✓ Domain entities (Product)
|
|
341
|
+
✓ Use case ports (in/out)
|
|
342
|
+
✓ Business logic with tests
|
|
343
|
+
✓ HTTP REST endpoints
|
|
344
|
+
✓ WebSocket handlers
|
|
345
|
+
✓ PostgreSQL repository
|
|
346
|
+
✓ Redis cache layer
|
|
347
|
+
✓ In-memory repository for testing
|
|
348
|
+
✓ Request validation (Valibot)
|
|
349
|
+
✓ Comprehensive test suite
|
|
234
350
|
```
|
|
235
351
|
|
|
236
|
-
|
|
352
|
+
### Generate a Microservice (Go + Chi)
|
|
353
|
+
|
|
354
|
+
```bash
|
|
355
|
+
$ honotan generate api
|
|
237
356
|
|
|
238
|
-
|
|
357
|
+
? Language: Go
|
|
358
|
+
? Architecture pattern: Hexagonal (Ports & Adapters)
|
|
359
|
+
? API Framework: Chi
|
|
360
|
+
? Resource name: order
|
|
361
|
+
? Select inbound adapters: HTTP
|
|
362
|
+
? Select outbound adapters: Database, Cache
|
|
363
|
+
? Output directory: apps/order-service
|
|
364
|
+
|
|
365
|
+
✅ Generated production-ready Go service with:
|
|
366
|
+
✓ Domain entities
|
|
367
|
+
✓ Use case interfaces & implementations
|
|
368
|
+
✓ Chi HTTP handlers with middleware
|
|
369
|
+
✓ PostgreSQL repository
|
|
370
|
+
✓ Redis caching
|
|
371
|
+
✓ go-playground/validator
|
|
372
|
+
✓ Comprehensive tests
|
|
373
|
+
✓ Dockerfile & docker-compose
|
|
374
|
+
✓ Makefile for workflows
|
|
375
|
+
✓ Documentation
|
|
376
|
+
```
|
|
239
377
|
|
|
240
378
|
#### clean
|
|
241
379
|
|
|
@@ -269,44 +407,136 @@ This generates a complete product API module with:
|
|
|
269
407
|
- Use case implementation with tests
|
|
270
408
|
- HTTP routes and controllers
|
|
271
409
|
- In-memory and database repositories
|
|
272
|
-
-
|
|
410
|
+
- Validation schemas
|
|
273
411
|
|
|
274
|
-
|
|
412
|
+
## Why Honotan CLI?
|
|
275
413
|
|
|
276
|
-
|
|
277
|
-
$ honotan generate client
|
|
414
|
+
### vs. Manual Setup
|
|
278
415
|
|
|
279
|
-
|
|
416
|
+
| Manual | Honotan CLI |
|
|
417
|
+
|--------|-------------|
|
|
418
|
+
| ⏱️ Hours of boilerplate | ⚡ 2 minutes to production-ready code |
|
|
419
|
+
| 🤷 Inconsistent patterns | 🎯 Best practices built-in |
|
|
420
|
+
| 📚 Read docs for each tool | 🚀 Opinionated, proven setup |
|
|
421
|
+
| 🐛 Common mistakes | ✅ Battle-tested architecture |
|
|
280
422
|
|
|
281
|
-
|
|
423
|
+
### vs. Other Generators
|
|
282
424
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
425
|
+
| Feature | Honotan | Others |
|
|
426
|
+
|---------|---------|--------|
|
|
427
|
+
| Hexagonal Architecture | ✅ Core focus | ❌ Rarely supported |
|
|
428
|
+
| Monorepo-first | ✅ Built-in | ⚠️ Afterthought |
|
|
429
|
+
| Multi-language | ✅ TS, Go, more coming | ❌ Single language |
|
|
430
|
+
| Production-ready | ✅ Tests, Docker, CI/CD | ⚠️ Minimal setup |
|
|
431
|
+
| Swappable adapters | ✅ Ports & adapters | ❌ Tight coupling |
|
|
432
|
+
|
|
433
|
+
### Who Should Use This?
|
|
434
|
+
|
|
435
|
+
**✅ Great fit:**
|
|
436
|
+
|
|
437
|
+
- Teams building multiple microservices
|
|
438
|
+
- Projects requiring long-term maintainability
|
|
439
|
+
- Developers learning clean architecture
|
|
440
|
+
- Companies with polyglot requirements
|
|
441
|
+
- Anyone who values testability
|
|
442
|
+
|
|
443
|
+
**⚠️ Might be overkill for:**
|
|
444
|
+
|
|
445
|
+
- Simple CRUD scripts
|
|
446
|
+
- One-off utilities
|
|
447
|
+
- Projects with < 3 endpoints
|
|
448
|
+
|
|
449
|
+
## Why Monorepos?
|
|
450
|
+
|
|
451
|
+
**Traditional multi-repo challenges:**
|
|
452
|
+
|
|
453
|
+
- ❌ Duplicated boilerplate across services
|
|
454
|
+
- ❌ Version hell with shared dependencies
|
|
455
|
+
- ❌ Difficult to refactor across services
|
|
456
|
+
- ❌ Inconsistent tooling and patterns
|
|
457
|
+
|
|
458
|
+
**Honotan monorepo benefits:**
|
|
459
|
+
|
|
460
|
+
- ✅ **Single source of truth** – One repo for all services
|
|
461
|
+
- ✅ **Shared libraries** – Reuse domain models, utilities, and types
|
|
462
|
+
- ✅ **Atomic changes** – Refactor across multiple services safely
|
|
463
|
+
- ✅ **Consistent tooling** – Same linting, testing, and CI/CD everywhere
|
|
464
|
+
- ✅ **Better discoverability** – See all services and dependencies at once
|
|
465
|
+
- ✅ **Simplified onboarding** – One clone, one install
|
|
466
|
+
|
|
467
|
+
## Why Hexagonal Architecture?
|
|
468
|
+
|
|
469
|
+
**The hexagonal pattern (ports & adapters) ensures:**
|
|
470
|
+
|
|
471
|
+
1. **Domain purity** – Business logic has zero framework dependencies
|
|
472
|
+
2. **Testability** – Test use cases without HTTP servers or databases
|
|
473
|
+
3. **Flexibility** – Swap Redis for Memcached without touching business code
|
|
474
|
+
4. **Framework-agnostic** – Migrate from Hono to Fastify by changing adapters only
|
|
475
|
+
5. **Clear boundaries** – Ports define contracts, adapters implement them
|
|
476
|
+
6. **Long-term maintainability** – Your domain logic outlives any framework
|
|
477
|
+
|
|
478
|
+
**Example**: Change from PostgreSQL to MongoDB? Just replace the adapter. Your domain and use cases remain untouched.
|
|
479
|
+
|
|
480
|
+
## Technologies Used
|
|
481
|
+
|
|
482
|
+
### TypeScript Stack
|
|
483
|
+
|
|
484
|
+
- **Frameworks**: Hono, Express, Fastify
|
|
485
|
+
- **Validation**: Valibot, Zod
|
|
486
|
+
- **Testing**: Vitest, Bun Test
|
|
487
|
+
- **ORM**: Drizzle, Prisma _(coming soon)_
|
|
488
|
+
|
|
489
|
+
### Go Stack
|
|
490
|
+
|
|
491
|
+
- **Framework**: Chi router
|
|
492
|
+
- **Validation**: go-playground/validator
|
|
493
|
+
- **Testing**: testify
|
|
494
|
+
- **Database**: database/sql, GORM _(coming soon)_
|
|
495
|
+
- **Cache**: go-redis
|
|
496
|
+
|
|
497
|
+
### Client Stack
|
|
498
|
+
|
|
499
|
+
- **Router**: TanStack Router
|
|
500
|
+
- **State**: TanStack Query + TanStack Store
|
|
501
|
+
- **UI**: Tailwind CSS + Headless UI
|
|
502
|
+
- **Icons**: Heroicons
|
|
503
|
+
|
|
504
|
+
### Monorepo Tools
|
|
505
|
+
|
|
506
|
+
- **Package Managers**: bun (recommended), yarn, npm
|
|
507
|
+
- **Build**: Turborepo, Nx _(coming soon)_
|
|
508
|
+
- **Versioning**: Changesets _(coming soon)_
|
|
509
|
+
|
|
510
|
+
## Architecture Principles
|
|
511
|
+
|
|
512
|
+
### Hexagonal Architecture (Primary)
|
|
513
|
+
|
|
514
|
+
```
|
|
515
|
+
┌─────────────────────────────────────────┐
|
|
516
|
+
│ Inbound Adapters │
|
|
517
|
+
│ (HTTP, WebSocket, GraphQL, CLI) │
|
|
518
|
+
└──────────────┬──────────────────────────┘
|
|
519
|
+
│
|
|
520
|
+
┌──────────────▼──────────────────────────┐
|
|
521
|
+
│ Application Layer (Ports) │
|
|
522
|
+
│ ┌─────────────────────────────────┐ │
|
|
523
|
+
│ │ Domain Layer (Entities) │ │
|
|
524
|
+
│ └─────────────────────────────────┘ │
|
|
525
|
+
└──────────────┬──────────────────────────┘
|
|
526
|
+
│
|
|
527
|
+
┌──────────────▼──────────────────────────┐
|
|
528
|
+
│ Outbound Adapters │
|
|
529
|
+
│ (Database, Cache, Message Queue) │
|
|
530
|
+
└─────────────────────────────────────────┘
|
|
308
531
|
```
|
|
309
532
|
|
|
533
|
+
**Layers:**
|
|
534
|
+
|
|
535
|
+
- **Domain** – Pure business entities and rules
|
|
536
|
+
- **Application** – Use cases coordinating domain logic
|
|
537
|
+
- **Adapters** – Infrastructure implementations
|
|
538
|
+
- **Composition** – Wiring dependencies together
|
|
539
|
+
|
|
310
540
|
**What you get:**
|
|
311
541
|
|
|
312
542
|
- Complete React + TypeScript + Vite project
|
|
@@ -326,7 +556,7 @@ $ honotan generate client
|
|
|
326
556
|
|
|
327
557
|
## Architecture Patterns
|
|
328
558
|
|
|
329
|
-
### API
|
|
559
|
+
### API Pattern
|
|
330
560
|
|
|
331
561
|
#### Hexagonal (Ports & Adapters)
|
|
332
562
|
|
|
@@ -336,14 +566,6 @@ Clean separation between domain, application, and infrastructure layers:
|
|
|
336
566
|
- **Application**: Use cases implementing business logic
|
|
337
567
|
- **Adapters**: Framework-specific implementations (routes, repositories)
|
|
338
568
|
|
|
339
|
-
#### Vertical Slice
|
|
340
|
-
|
|
341
|
-
Feature-oriented structure where all code for a feature lives together:
|
|
342
|
-
|
|
343
|
-
- Entity, service, routes, and tests in one directory
|
|
344
|
-
- Faster navigation and easier understanding
|
|
345
|
-
- Better encapsulation of feature logic
|
|
346
|
-
|
|
347
569
|
### Client Pattern
|
|
348
570
|
|
|
349
571
|
The client generation follows the **official TanStack Router pattern**:
|
|
@@ -357,6 +579,38 @@ The client generation follows the **official TanStack Router pattern**:
|
|
|
357
579
|
|
|
358
580
|
Contributions are welcome! Please open an issue or submit a pull request.
|
|
359
581
|
|
|
582
|
+
## Use Cases
|
|
583
|
+
|
|
584
|
+
**Perfect for:**
|
|
585
|
+
|
|
586
|
+
- 🏢 **Enterprise microservices** – Build multiple services with shared domain models
|
|
587
|
+
- 🚀 **Startup MVPs** – Start modular, scale without rewrites
|
|
588
|
+
- 📚 **Learning clean architecture** – Production-ready examples in multiple languages
|
|
589
|
+
- 🔄 **Migrating legacy code** – Gradually introduce hexagonal patterns
|
|
590
|
+
- 🎓 **Educational projects** – Teach DDD and clean architecture
|
|
591
|
+
|
|
592
|
+
**Success Stories:**
|
|
593
|
+
|
|
594
|
+
- E-commerce platforms with 10+ microservices in one monorepo
|
|
595
|
+
- SaaS products separating domain logic from infrastructure
|
|
596
|
+
- API-first startups with TypeScript and Go services side-by-side
|
|
597
|
+
|
|
598
|
+
## Roadmap
|
|
599
|
+
|
|
600
|
+
- [x] TypeScript + Hono hexagonal templates
|
|
601
|
+
- [x] Go + Chi hexagonal templates
|
|
602
|
+
- [x] Monorepo structure generation
|
|
603
|
+
- [x] TanStack Router client generation
|
|
604
|
+
- [ ] Database migrations (Drizzle, golang-migrate)
|
|
605
|
+
- [ ] GraphQL adapter
|
|
606
|
+
- [ ] Message queue adapters (RabbitMQ, Kafka)
|
|
607
|
+
- [ ] Rust support
|
|
608
|
+
- [ ] Event sourcing patterns
|
|
609
|
+
- [ ] gRPC support
|
|
610
|
+
- [-] Turborepo integration
|
|
611
|
+
- [ ] Express & Fastify support
|
|
612
|
+
- [ ] Changesets for versioning
|
|
613
|
+
|
|
360
614
|
## Publishing
|
|
361
615
|
|
|
362
616
|
This project uses GitHub Actions to automate publishing to NPM.
|