/Knowledge/sources/honojs__hono/llms-full/best-practices-building-a-larger-application--57984b63299e.md
Best Practices: Building a larger application - hono-docs
Best Practices: Building a larger application Source evidence: /Sources/honojs hono/provenance.md Canonical citation: https://hono.dev/llms full.txt building...
Best Practices: Building a larger application
Source evidence: /Sources/honojs__hono/provenance.md Canonical citation: https://hono.dev/llms-full.txt#building-a-larger-application
Summary
Use app.route() to build a larger application without creating "Ruby on Rails-like Controllers". If your application has /authors and /books endpoints and you wish to separate files from index.ts, create authors.ts and `books.t...
Content
Use app.route() to build a larger application without creating "Ruby on Rails-like Controllers".
If your application has /authors and /books endpoints and you wish to separate files from index.ts, create authors.ts and books.ts.
// authors.ts
import { Hono } from 'hono'
const app = new Hono()
app.get('/', (c) => c.json('list authors'))
app.post('/', (c) => c.json('create an author', 201))
app.get('/:id', (c) => c.json(`get ${c.req.param('id')}`))
export default app
// books.ts
import { Hono } from 'hono'
const app = new Hono()
app.get('/', (c) => c.json('list books'))
app.post('/', (c) => c.json('create a book', 201))
app.get('/:id', (c) => c.json(`get ${c.req.param('id')}`))
export default app
Then, import them and mount on the paths /authors and /books with app.route().
Metadata
{
"chunk_index": 0,
"citation": "https://hono.dev/llms-full.txt#building-a-larger-application",
"coverage_role": "overview",
"qualified_title": "Hono / llms-full / Best Practices > Building a larger application (1)",
"retrieved_at": "2026-07-02T05:51:01Z",
"section_index": 78,
"source_id": "/honojs/hono",
"source_type": "llms_full",
"target_label": "llms-full",
"title": "Best Practices: Building a larger application",
"upstream_url": "https://hono.dev/llms-full.txt",
"version": "2026"
}