- Fix typo in lint:fix script
- Current:
"link:fix"(typo - should belint:fix) - Fix to:
"lint:fix": "bun run eslint . --ext .ts,.js --fix"
- Current:
- Add import sorting rules
- Missing:
eslint-plugin-simple-import-sort(not installed) - Add import ordering rules (like clean-hono and clean-elysia)
- Add
eslint-plugin-importfor duplicate detection
- Missing:
- Reorganize utilities structure
- Current:
libs/utils/toolkit/,libs/utils/fastify/,libs/utils/security/ - Flatten: Move
toolkit/files (date.ts, number.ts, string.ts) toutils/root - Update
utils/index.tsto flat export style (matching clean-hono)
- Current:
- Improve OpenAPI schema definitions
- Add descriptions and examples to Zod schemas
- Add
.openapi()metadata for all request/response schemas - Improve error response schemas with validation examples
- Reference clean-hono's
commonResponsepattern
-
Add performance monitoring middleware
- No performance logging middleware exists
- Add request duration logging (like clean-hono's
performanceMiddleware) - Warn on slow requests (>1s threshold)
-
Add body size limit configuration
- No explicit body size limit configured
- Add Fastify body limit via
bodyLimitoption in server configuration
- Add service interfaces
- Current: Services are plain objects without interfaces
- Add TypeScript interfaces for all services (like clean-hono's
service.interface.ts) - Benefits: Better type safety, documentation, and testability
- Standardize module file naming
- Current: Routes in
routes/directory, services inservices/directory (separated) - Consider: Co-locate routes, schemas, services per module (like clean-hono)
- Each module folder:
routes.ts,schema.ts,service.interface.ts,service.ts
- Current: Routes in
- Add more error types
- Missing:
ServiceUnavailableError(503),RateLimitError(429) - Align with clean-hono's comprehensive error class set
- Add error codes constants (like clean-hono's
error-codes.constant.ts)
- Missing:
- Enhance README.md
- Add architecture diagrams
- Document API authentication flow
- Add examples for common use cases
- Document DI pattern with tsyringe
- Add troubleshooting section
- Add test infrastructure
- No tests currently exist
- Add testing framework (Bun test or Vitest)
- Add unit tests for services
- Add integration tests for API endpoints
- Add E2E tests for critical flows
- Add Makefile (like clean-hono)
- Provide convenient shortcuts for common tasks
- Example:
make dev-all,make fresh,make reset
- Enhance .env.example
- Add more detailed comments for each variable
- Document which variables are required vs optional
- Match clean-hono's detailed env structure
- Add database seed scripts to package.json
- No
db:seedscript in package.json - Add:
db:generate,db:migrate,db:push,db:studio,db:drop,db:seed - Add ClickHouse migration scripts
- No
- Enhance logging configuration
- Add log correlation IDs
- Ensure sensitive data redaction is consistent
- Add structured logging improvements
- Consolidate configuration exports
- Add a single config index with all configs
- Ensure consistent naming across config files
What clean-hono does better:
- ✅ Better organized module structure (co-located files)
- ✅ Service interfaces for all services
- ✅ Import sorting in ESLint
- ✅ Performance monitoring middleware
- ✅ More comprehensive error types
- ✅ OpenAPI schema descriptions and examples
- ✅ Makefile for common tasks
- ✅ Database seed/migration scripts in package.json
What clean-fastify does better:
- ✅ Full DI with tsyringe (decorator-based, more powerful)
- ✅ Separate server/worker build targets with concurrently
- ✅ Auto-loading routes with @fastify/autoload
- ✅ ClickHouse analytics integration
- ✅ Comprehensive health check endpoint
-
Phase 1 (Quick wins):
- Fix lint:fix typo
- Add import sorting to ESLint
- Flatten utils structure
- Add database scripts to package.json
-
Phase 2 (API improvements):
- Add OpenAPI descriptions/examples to schemas
- Add performance monitoring middleware
- Add missing error types
-
Phase 3 (Architecture):
- Add service interfaces
- Consider module co-location
- Enhance configuration management
-
Phase 4 (Quality):
- Add testing infrastructure
- Enhance documentation
- Add Makefile