Skip to Content

Last Updated: 3/9/2026


Fastly Compute

Fastly Compute  is an advanced edge computing system that runs your code, in your favorite language, on Fastly’s global edge network. Hono also works on Fastly Compute.

You can develop the application locally and publish it with a few commands using Fastly CLI , which is installed locally automatically as part of the template.

1. Setup

A starter for Fastly Compute is available. Start your project with “create-hono” command. Select fastly template for this example.

::: code-group

npm create hono@latest my-app
yarn create hono my-app
pnpm create hono my-app
bun create hono@latest my-app
deno init --npm hono my-app

:::

Move to my-app and install the dependencies.

::: code-group

cd my-app npm i
cd my-app yarn
cd my-app pnpm i
cd my-app bun i

:::

2. Hello World

Edit src/index.ts:

// src/index.ts import { Hono } from 'hono' import { fire } from '@fastly/hono-fastly-compute' const app = new Hono() app.get('/', (c) => c.text('Hello Fastly!')) fire(app)

[!NOTE] When using fire (or buildFire()) from @fastly/hono-fastly-compute' at the top level of your application, it is suitable to use Hono from 'hono' rather than 'hono/quick', because fire causes its router to build its internal data during the application initialization phase.

3. Run

Run the development server locally. Then, access http://localhost:7676 in your Web browser.

::: code-group

npm run start
yarn start
pnpm run start
bun run start

:::

4. Deploy

To build and deploy your application to your Fastly account, type the following command. The first time you deploy the application, you will be prompted to create a new service in your account.

If you don’t have an account yet, you must create your Fastly account .

::: code-group

npm run deploy
yarn deploy
pnpm run deploy
bun run deploy

:::

Bindings

In Fastly Compute, you can bind Fastly platform resources, such as KV Stores, Config Stores, Secret Stores, Backends, Access Control Lists, Named Log Streams, and Environment Variables. You can access them through c.env, and will have their individual SDK types.

To use these bindings, import buildFire instead of fire from @fastly/hono-fastly-compute. Define your bindings  and pass them to buildFire() to obtain fire. Then use fire.Bindings to define your Env type as you construct Hono.

// src/index.ts import { buildFire } from '@fastly/hono-fastly-compute' const fire = buildFire({ siteData: 'KVStore:site-data', // I have a KV Store named "site-data" }) const app = new Hono<{ Bindings: typeof fire.Bindings }>() app.put('/upload/:key', async (c, next) => { // e.g., Access the KV Store const key = c.req.param('key') await c.env.siteData.put(key, c.req.body) return c.text(`Put ${key} successfully!`) }) fire(app)