Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/supersoniko/hono-api-starter

Modern DX friendly starter for Node.js/Hono APIs with the focus on simplicity and robustness.
https://github.com/supersoniko/hono-api-starter

boilerplate honojs monorepo nodejs starter-kit starter-template typescript

Last synced: about 2 months ago
JSON representation

Modern DX friendly starter for Node.js/Hono APIs with the focus on simplicity and robustness.

Awesome Lists containing this project

README

        

# Hono API Starter

πŸš€ Modern DX friendly starter for Node.js/[Hono](https://github.com/honojs/hono) APIs with the focus on simplicity and robustness.

## Features

- ✨ Node 20
- πŸ”Ή TypeScript 5
- ❀️ Monorepo setup with Turbo and npm workspaces
- πŸ”₯ Auto reloading support for monorepo setup
- πŸš€ Turbo pipeline to run tasks
- βœ… Type and runtime safe environment variables
- πŸ”’ Secure headers by default for APIs
- πŸ›‘οΈCORS
- πŸ“š Robust logger (credits to Practica)
- πŸ†” Unique request ID (credits to Practica)
- 🚫 Strict linting and type checking rules
- 🐢 Husky for Git Hooks
- πŸ“” Lint git commit with Commitlint
- 🦺 Unit Testing with native Node.js test runner
- πŸ“¦ Optimized esbuild production artifact
- 🐳 Production ready Dockerfile for deployment

## General setup

Manage your Node.js version automatically with [Volta](https://volta.sh)

### Clone the repository

```bash
git clone https://github.com/supersoniko/hono-api-starter.git
```

### Install dependencies

```bash
npm i
```

### Cat Topia Application

#### Development Server

```
npm run turbo:start:dev:cat-topia
```

```bash
open http://localhost:8000
```

#### Production simulation

```bash
# Only build JavaScript output
npm run turbo:build:app:cat-topia
# Build and run JavaScript output
npm run turbo:start:app:cat-topia
```

```bash
open http://localhost:8000
```

#### Production deploy to Fly

This will require [Fly.io CLI](https://fly.io/docs/hands-on/install-flyctl/) to be installed.

```bash
flyctl launch
```

```bash
flyctl deploy
```

### API Specification

The API specification is written in [RapidAPI/Paw](https://paw.cloud/).

The specification can be be found in the root folder `hono-starter-api-spec.paw`.

### Debugging with VS Code

#### Start any application in `debug` mode

```
npm run turbo:start:debug:cat-topia
```

#### Attach debugger in VS Code

Go to the Command Pallete (⇧+⌘+P on macOS), and search for the action "Debug: Attach to Node process".

Choose the node process that looks like this: `node --inspect -r ts-node/register -r tsconfig-paths/register ./src/entry-points/api/server.ts`.

View the [VS Code Debug Actions documentation](https://code.visualstudio.com/Docs/editor/debugging#_debug-actions) for more information regarding the use of their debugger.