---
title: "Dev Portal Release v0.48.0"
description: ""
canonicalUrl: "https://zuplo.com/changelog/2025/06/12/zudoku-release-v0.48.0"
pageType: "changelog"
date: "2025-06-12"
tags: "dev-portal"
---
This release brings significant improvements to the Zuplo Developer Portal,
including enhanced theme customization, improved authentication support, and a
major navigation system overhaul. The highlight is the new unified navigation
configuration that provides more flexibility for customizing your developer
portal experience.

## Key Highlights

- **Breaking Change**: Completely redesigned navigation system with a unified
  configuration approach
- **Enhanced Theme Support**: Advanced theme customization with shadcn registry
  integration
- **Azure B2C Authentication**: Full support for Azure B2C as an authentication
  provider
- **Improved Mobile Experience**: Better navigation rendering on mobile devices
- **Security Enhancements**: New warnings to prevent accidental secrets exposure
- **Better Defaults**: Static error pages now enabled by default for optimal
  hosting

## Breaking Changes 🛠

### Navigation Configuration Restructure [#1174](https://github.com/zuplo/zudoku/pull/1174)

The Dev Portal navigation system has been completely redesigned to provide a
more flexible and consistent configuration experience. The previous separate
properties for `topNavigation`, `sidebar`, and `customPages` have been unified
into a single `navigation` array structure.

**Migration Required**: If you have customized navigation in your Dev Portal,
you'll need to update your configuration. See the
[migration guide](https://zudoku.dev/docs/guides/navigation-migration) for
detailed instructions.

## New Features 🎉

### Enhanced Theme Support with shadcn Registry [#1160](https://github.com/zuplo/zudoku/pull/1160)

The Dev Portal now offers more granular theme customization options, including
automatic shadcn registry style imports and Google Fonts auto-import capability.
A new theme playground helps you test and preview your design changes with live
theme invalidation. Learn more about
[customizing your Dev Portal theme](/docs/articles/dev-portal-theme).

### Google Tag Manager Integration Example [#1161](https://github.com/zuplo/zudoku/pull/1161)

Added comprehensive documentation and examples for integrating Google Tag
Manager with your Dev Portal, making it easier to implement analytics tracking
for your API documentation.

## Bug Fixes 🐛

### Azure B2C Authentication Support [#1159](https://github.com/zuplo/zudoku/pull/1159)

Fixed an issue where Azure B2C was not recognized as a valid authentication
provider. The configuration validation schema now properly includes Azure
B2C-specific fields (`clientId`, `tenantName`, `policyName`, `issuer`), enabling
seamless authentication with Azure B2C. See our
[authentication setup guide](/docs/articles/dev-portal-auth) for configuration
details.

### Mobile Navigation Rendering [#1165](https://github.com/zuplo/zudoku/pull/1165)

Resolved an issue where the `top-navigation-side` slot wasn't rendering on
mobile devices, ensuring a consistent navigation experience across all device
sizes.

### OAuth Callback Route History [#1172](https://github.com/zuplo/zudoku/pull/1172)

Fixed the OAuth callback flow to prevent the `/oauth/callback` route from
remaining in browser history, providing a cleaner user experience by using React
Router's `replace` navigation.

## Security & Documentation 📚

### Security Warnings for Configuration [#1169](https://github.com/zuplo/zudoku/pull/1169)

Added important security warnings to prevent accidental exposure of secrets in
Dev Portal configurations. The documentation now clearly states that only
environment variables prefixed with `ZUDOKU_PUBLIC_` are exposed to the client.

### Documentation Improvements [#1117](https://github.com/zuplo/zudoku/pull/1117)

Comprehensive documentation updates including grammar corrections, fixed
component names (e.g., `ZudokContext` → `ZudokuContext`), and improved code
snippet accuracy across all Dev Portal guides.

## Other Improvements 🔄

### Default Expiration for Rolling Keys [#1142](https://github.com/zuplo/zudoku/pull/1142)

Simplified API key management by removing the explicit `expiresOn` field when
rolling keys. The system now automatically uses server-side default expiration
policies, reducing complexity in key management workflows.

### Static Error Pages Enabled by Default [#1143](https://github.com/zuplo/zudoku/pull/1143)

Static HTML error pages for HTTP status codes (404, 500, etc.) are now enabled
by default, providing a better out-of-the-box experience for hosting on
platforms like Vercel, Netlify, and Zuplo. The `enableStatusPages` configuration
now defaults to `true`.

## Dependency Updates 📦

This release includes various dependency updates to ensure compatibility and
security:

- Updated React types (`@types/react` to 19.1.8, `@types/react-dom` to 19.1.6)
- Upgraded development tools (lint-staged to 16.1.0, vitest to 3.2.2, postcss to
  8.5.4)
- Updated core dependencies (yaml to 2.8.0, zustand to 5.0.5, piscina to 5.0.0)
- GraphQL tooling updates (`@graphql-codegen/cli` to 5.0.7)