ZuploZuplo
LoginStart for Free
  • Documentation
  • API Reference
Introduction
Getting Started
    Develop using the Portal
      1 - Setup Your Gateway2 - Rate Limiting3 - API Key Auth4 - Deploy5 - Dynamic Rate LimitingMCP - Quick start
    Develop Locally
      1 - Setup Your Gateway2 - Rate Limiting3 - API Key Auth
Concepts
Development
Policies
Handlers
API Keys
MCP Server
MCP Gateway
AI Gateway
Developer Portal
    IntroductionLocal DevelopmentUpdating VersionsNode Modules & Customization
    Configuration
    Writing
    OpenAPI
    Authentication
    Integrations
    Guides
      Static FilesEnvironment VariablesCustom pagesMermaid DiagramsMultiple APIsNavigation RulesRedirectsTransforming Operation ExamplesSchema ProcessorsCustom API IdentitiesCreate API Key on AuthDocumenting MCP ServersExample: Rick and Morty API
    Extending
    Components
Monetization
Deploying & Source Control
Observability
Networking & Infrastructure
Account Management
Programming API
Build with AI
Zuplo CLI
Migration Guides
Platform LimitsSecuritySupportTrust & ComplianceChangelog
powered by Zudoku
Guides

Custom pages

If you want to include pages in your documentation that have greater flexibility than MDX pages, it is possible to include custom pages of your own.

These pages are typically built using standard React markup and can borrow from a set of prebuilt components that Dev Portal already has such as buttons, links and headers.

Start by creating the page you want to add.

Setup a custom page

Each custom page is a page component of its own and lives in a src directory at the root of your project. Let's create the <MyCustomPage /> component as an example.

From the root of your project run this command:

TerminalCode
touch src/MyCustomPage.tsx

You can now open /src/MyCustomPage.tsx in the editor of your choice. It will be empty.

Copy and paste this code to implement the page:

Code
import { Button, Head, Link } from "zudoku/components"; export const MyCustomPage = () => { return ( <section className=""> <Head> <title>My Custom Page</title> </Head> <div> <p>Welcome to MyCustomPage</p> </div> </section> ); };

Configuration

In the Dev Portal Configuration you will need to do the following:

Change Your Config Extension

In order to embed jsx/tsx components into your Dev Portal config, you will need to change your file extension from ts to tsx (or js to jsx if not using TypeScript).

Code
zudoku.config.ts -> zudoku.config.tsx

Import Your Module

Import the <MyCustomPage /> component that you created.

Code
import { MyCustomPage } from "./src/MyCustomPage";

Add a navigation entry

Add a custom-page item to the navigation configuration. Each page you want to add to the site must be its own object.

The path key can be set to whatever you like. This will appear as part of the URL in the address bar of the browser.

The element key references the name of the custom page component that you want to load.

Code
{ // ... navigation: [ { type: "custom-page", path: "/a-custom-page", element: <MyCustomPage />, }, ] // ... }

This configuration will allow Dev Portal to load the contents of the <MyCustomPage /> component when a user clicks on a link that points to /a-custom-page.

Troubleshooting

Updating Your tsconfig.json

Your include property in tsconfig.json should automatically be updated to reflect the new custom pages, but in case it isn't, it should look like this:

Code
{ ... "include": ["src", "zudoku.config.tsx", "src/MyCustomPage.tsx"] }
Edit this page
Last modified on May 29, 2026
Environment VariablesMermaid Diagrams
On this page
  • Setup a custom page
  • Configuration
    • Change Your Config Extension
    • Import Your Module
    • Add a navigation entry
  • Troubleshooting
    • Updating Your tsconfig.json
React
TypeScript
TypeScript
JSON