March 2026 delivers a **completely redesigned analytics experience**, a **new
Log Viewer** modeled after best-in-class observability tools, and a massive
**Dev Portal performance upgrade** that cuts bundle sizes by over 50%.

This month also saw the public beta launch of
**[API Monetization](/changelog/2026/03/26/api-monetization-beta)**: a fully
integrated system for pricing, billing, and metering your APIs directly from the
gateway. Read the
[full announcement](/changelog/2026/03/26/api-monetization-beta) for details.

## Highlights

### Analytics v2

The Zuplo Portal analytics experience has been completely redesigned with richer
visualizations, better interactivity, and deeper visibility into your API
traffic. The new analytics surface gives you the tools to understand exactly how
your APIs are performing and where issues arise.

**Key improvements:**

- **Per-origin mini dashboards**: Expand any origin row to see a two-column
  dashboard with a Request Volume area chart alongside a Latency Over Time chart
- **Full tunnel visibility**: Customers using Zuplo secure tunnels now see
  request counts, error rates, latency metrics, and human-readable service names
  directly in the analytics Origins tab
- **Request Lifecycle visualization**: A new distribution-style chart shows DNS,
  TCP, TLS, and Origin phase durations as a stacked horizontal bar with stats
  and a legend table
- **Separate error columns**: Origin tables now split errors into distinct
  "Client (4xx)" and "Server (5xx)" columns, making it easier to pinpoint the
  source of issues

Other improvements include sticky table headers, smart filter toggling, consumer
search, chart type toggles, flexible plan-based access with fractional-day
increments, and an interactive demo mode (`?demo=true`).

![Analytics v2 overview with summary cards and request volume chart](../public/media/changelog/2026-04/analytics-v2-overview.png)

![Analytics v2 latency, error, and instance charts](../public/media/changelog/2026-04/analytics-v2-detail.png)

---

### Log Viewer v2

The Zuplo Portal now features a completely redesigned log viewer modeled after
best-in-class observability tools. Debugging production issues is now
significantly faster and more intuitive.

**Key capabilities:**

- **Three-panel layout**: Filter sidebar, request table, and request detail
  panel — all resizable to fit your workflow
- **Timeline histogram**: Visualize request volume over time with drag-to-zoom
  for investigating specific time windows
- **Faceted filtering**: Filter by severity, HTTP method, status code, and route
- **Cursor-based infinite scroll**: Smoothly load large volumes of log data
- **Shareable filtered views**: Filter state is persisted in the URL, so you can
  share a link to a specific filtered view with teammates
- **Keyboard shortcuts**: Press `/` to search, `P` to toggle live mode
- **Plan-gated time ranges**: Free tier sees 24 hours of history, Builder sees 7
  days, Enterprise sees 30 days

![Log Viewer v2 with timeline histogram and filtered request table](../public/media/changelog/2026-04/log-viewer-v2.png)

---

### Dev Portal: 50%+ Bundle Size Reduction

The Dev Portal received a major architectural overhaul that dramatically
improves performance for every API consumer visiting your documentation. The
initial JavaScript bundle dropped from approximately 1,375 KB to 673 KB (from
434 KB to 215 KB gzipped) — a reduction of over 50%.

This was achieved by lazy-loading heavy components (Playground, Syntax
Highlighting, Mermaid, Markdown), loading the Clerk authentication SDK from CDN
instead of bundling it, enabling async syntax highlighter loading, and removing
Zod from the client bundle. The npm package itself shrank from 18.2 MB to 1.5
MB.

**No action required** — customers get faster portals automatically on upgrade.

See the
[Dev Portal documentation](https://zuplo.com/docs/dev-portal/introduction) for
more information.

---

## Dev Portal Updates

### Header Navigation with Configurable Menus and Dropdowns

The Dev Portal now supports rich header navigation through the `header` config
property. Add links, dropdown menus, and category groups directly to the portal
header, with placement options for left, center, or right alignment.

```typescript
// zudoku.config.ts
const config: ZudokuConfig = {
  header: {
    navigation: [
      {
        label: "Products",
        children: [
          { label: "API Gateway", href: "/api" },
          { label: "AI Gateway", href: "/ai" },
        ],
      },
      { label: "Pricing", href: "/pricing" },
    ],
  },
};
```

See the
[Navigation configuration documentation](https://zuplo.com/docs/dev-portal/zudoku/configuration/navigation)
for all options.

### Supabase Auth: Custom Component UI

The Dev Portal's Supabase authentication integration now uses custom UI
components that match the styling of other auth providers (like Firebase),
replacing the third-party `@supabase/auth-ui-react` library. This delivers a
consistent look and feel across all authentication providers, with improved
error messages and full support for email/password, OAuth, password reset, and
email verification flows.

### Firebase Email Link (Passwordless) Login

Customers using Firebase authentication can now enable passwordless sign-in via
email magic links. When configured, users receive a link in their email that
completes authentication with a single click.

```typescript
// zudoku.config.ts
const config: ZudokuConfig = {
  authentication: {
    type: "firebase",
    // Firebase config...
    providers: ["emailLink"],
  },
};
```

See the
[Firebase Authentication documentation](https://zuplo.com/docs/dev-portal/zudoku/configuration/authentication-firebase)
for setup instructions.

### Hide AI Assistant Menu Items

Customers can now hide the "Use in Claude" and "Use in ChatGPT" items from the
schema download menu, useful when the API schema requires authentication.

```typescript
// zudoku.config.ts
const config: ZudokuConfig = {
  schemaDownload: {
    useInClaude: false,
    useInChatGPT: false,
  },
};
```

Also released this month:

- **API Information Overview Page**: The Dev Portal now generates a landing page
  from your OpenAPI `info` field with description, version, contact, and license
  details
- **Opaque Access Token Detection**: Auth providers like Auth0 configured
  without an `audience` parameter now surface a clear error page instead of
  silently failing
- **Improved Deprecated Field Visibility**: Deprecated fields are collapsed by
  default behind a toggle, with browser search still finding hidden fields
- **Logo `reloadDocument` Option**: Control whether clicking the header logo
  triggers a full page reload or SPA navigation
  ([docs](https://zuplo.com/docs/dev-portal/zudoku/configuration/site))
- **Array Parameter Support in API Playground**: Properly handles array-type
  query and path parameters (e.g., `?status=active&status=pending`)
- **MCP Server Documentation**: Fixed endpoint URL handling at custom paths and
  added a guide for the `x-mcp-server` OpenAPI extension
  ([docs](https://zuplo.com/docs/handlers/mcp-server))

---

## Portal & CLI Updates

### Feature Previews

A new "Feature Previews" page in account settings lets you opt into beta
features and express interest in features still in the concept phase. Toggle
switches enable beta features immediately, while "I'm Interested" buttons signal
demand for upcoming capabilities.

![Feature Previews page with beta toggles and interest buttons](../public/media/changelog/2026-04/feature-previews.png)

### Deep-Linking to Code Editor Lines

You can now share links that point to a specific line or range of lines in the
Portal code editor using a `?line=` URL parameter. For example,
`?path=/config/routes.json&line=42` opens the file with line 42 highlighted, and
`&line=5-15` highlights a range. This makes it much easier to collaborate with
teammates or reference exact locations when working with support.

### Deprecated Toggle in OpenAPI Editor

You can now mark individual API operations as deprecated directly from the
visual OpenAPI editor. Previously, this required manually editing the OpenAPI
spec. This is useful for managing API lifecycle and communicating deprecations
to your API consumers through the Dev Portal.

Also released this month:

- **Redesigned Project Overview**: Visual refresh with larger rounded corners,
  cleaner borders, and hover shadow effects
- **Auto-Formatting for Code Edits**: Code edits now auto-format automatically
- **Consumers Pagination**: The API keys list now supports pagination for
  customers with large numbers of consumers
- **Policy Catalog Fix**: The "Apply Policy" button now works correctly for
  policies not in the catalog (such as `monetization-inbound`)

---

## Documentation Updates

- [AI Coding Agents Setup Guide](https://zuplo.com/docs/articles/ai-agents) —
  New guide explaining how to configure a Zuplo project for AI coding agents,
  including bundled docs, official skills, and the optional MCP server
- [Monetization Documentation](https://zuplo.com/docs/articles/monetization) —
  Comprehensive documentation for the API Monetization beta, including meters,
  features, plans, and subscription lifecycle
- [MCP Server Handler](https://zuplo.com/docs/handlers/mcp-server) — Updated
  documentation for the MCP Server handler, including new guide for documenting
  MCP servers using the `x-mcp-server` OpenAPI extension
- [Navigation Configuration](https://zuplo.com/docs/dev-portal/zudoku/configuration/navigation)
  — Significantly improved documentation for navigation types including
  `separator`, `section`, and `filter` items, plus common patterns and recipes
- Documentation sidebar received lucide icons across all 17 top-level categories
  for improved visual navigation