---
title: Advanced Usage · Cloudflare Pages docs
description: If you need to run code before or after your Next.js application, create your own Worker entrypoint and forward requests to your Next.js application.
source_url:
  html: https://angela-ssl-tls-updates.preview.developers.cloudflare.com/pages/framework-guides/nextjs/ssr/advanced/index.md
  md: https://angela-ssl-tls-updates.preview.developers.cloudflare.com/pages/framework-guides/nextjs/ssr/advanced/
---

## Custom Worker Entrypoint

If you need to run code before or after your Next.js application, create your own Worker entrypoint and forward requests to your Next.js application.

This can help you intercept logs from your app, catch and handle uncaught exceptions, or add additional context to incoming requests or outgoing responses.

1. Create a new file in your Next.js project, with a [`fetch()` handler](https://developers.cloudflare.com/workers/runtime-apis/handlers/fetch/), that looks like this:

```ts
import nextOnPagesHandler from "@cloudflare/next-on-pages/fetch-handler";


export default {
  async fetch(request, env, ctx) {
    // do something before running the next-on-pages handler


    const response = await nextOnPagesHandler.fetch(request, env, ctx);


    // do something after running the next-on-pages handler


    return response;
  },
} as ExportedHandler<{ ASSETS: Fetcher }>;
```

This looks like a Worker — but it does not need its own Wrangler file. You can think of it purely as code that `@cloudflare/next-on-pages` will then use to wrap the output of the build that is deployed to your Cloudflare Pages project.

1. Pass the entrypoint argument to the next-on-pages CLI with the path to your handler.

```sh
npx @cloudflare/next-on-pages --custom-entrypoint=./custom-entrypoint.ts
```
