Quick Start
Create a new Hono project for Netlify:Installation
Add Hono to your existing Netlify project:Basic Usage
Create your API in thenetlify/functions directory:
netlify/functions/api.ts
The
handle adapter converts your Hono app into a Netlify Function handler.Catch-All Routes
Handle all routes in a single function using catch-all:netlify/functions/[[route]].ts
Accessing Netlify Context
Access the Netlify context in your handlers:netlify/functions/api.ts
Connection Info
Get connection information:Environment Variables
Access environment variables:netlify/functions/api.ts
- Go to Site settings → Environment variables
- Add your variables
- Redeploy your site
Configuration
Create anetlify.toml configuration file:
netlify.toml
Middleware
CORS
netlify/functions/api.ts
Logger
netlify/functions/api.ts
Deployment
1
Install Netlify CLI
2
Login to Netlify
3
Initialize your site
4
Deploy
Deploy via Git
Connect your Git repository to Netlify:- Push your code to GitHub, GitLab, or Bitbucket
- Go to Netlify Dashboard
- Click “Add new site” → “Import an existing project”
- Select your repository
- Configure build settings:
- Build command:
npm run build - Publish directory:
dist - Functions directory:
netlify/functions
- Build command:
- Deploy
Project Structure
Typical Netlify + Hono project structure:Edge Functions
Use Netlify Edge Functions for globally distributed compute:netlify/edge-functions/api.ts
Edge Functions run on Deno at the edge, closer to your users.
Database Integration
Netlify Blobs
netlify/functions/storage.ts
External Databases
Connect to external databases like Supabase, PlanetScale, or MongoDB:netlify/functions/api.ts
Forms Integration
Handle Netlify Forms:netlify/functions/form-handler.ts
Best Practices
Use catch-all routes
Use catch-all routes
Use
[[route]].ts to handle all routes in a single function for better organization.Leverage Edge Functions
Leverage Edge Functions
Use Edge Functions for globally distributed, low-latency APIs.
Configure redirects
Configure redirects
Use
netlify.toml to configure redirects and rewrites.Use environment variables
Use environment variables
Store secrets in Netlify’s environment variables, not in code.
Development
Run locally with Netlify Dev:http://localhost:8888 with hot reload and simulates the production environment.
Performance Tips
- Use Edge Functions for global distribution
- Implement caching with Netlify Blobs
- Optimize function bundle size
- Use background functions for long-running tasks
- Enable HTTP/2 Server Push
Resources
Netlify Documentation
Official Netlify documentation
Netlify Functions
Learn about Netlify Functions