# poweredBy

**Kind:** Function

**Source:** [`src/middleware/powered-by/index.ts`](https://github.com/honojs/hono/blob/main/src/middleware/powered-by/index.ts#L30)

**Part of:** [Middleware](subsystem-src-middleware)

Powered By Middleware for Hono.

`poweredBy` creates Hono middleware that adds an `X-Powered-By` response header. It runs after downstream middleware and handlers, allowing the header value to be configured with `serverName`.

## Signature

```ts
function poweredBy(options: PoweredByOptions): MiddlewareHandler
```

## Parameters

| Name | Type |
|---|---|
| `options` | `PoweredByOptions` |

**Returns:** `MiddlewareHandler`

## Diagram

```mermaid
graph LR
  A[Incoming request] --> B[poweredBy middleware]
  B --> C[Downstream middleware and route handler]
  C --> D[Set X-Powered-By response header]
  D --> E[Response]
```

## Usage

```ts
import { Hono } from 'hono'
import { poweredBy } from 'hono/powered-by'

const app = new Hono()

app.use('*', poweredBy({ serverName: 'My API' }))

app.get('/', (c) => {
  return c.text('Hello')
})

export default app
```

## AI Coding Instructions

- Register `poweredBy()` with `app.use()` so it applies to the intended routes.
- Pass `serverName` when the default `Hono` header value should be replaced.
- Keep `await next()` in the middleware flow so downstream handlers run before the response header is set.
- Check for other middleware that sets `X-Powered-By`, since later header writes can replace earlier values.
