Skip to content

Shadow Theme

ninjaportal/shadow-theme is the frontend package for NinjaPortal developer portals.

It provides a production-ready Blade frontend built with Alpine.js, Tailwind CSS v4, and daisyUI. Unlike portal-api, Shadow Theme does not use JWT API authentication for its web flow. It talks directly to the core portal services and uses Laravel's session-based web authentication experience for developers.

What It Provides

AreaIncluded
Landing pageDeveloper portal homepage.
CatalogAPI product listing, search, detail pages, and product spec view.
AuthDeveloper signup, login, logout, password reset request, and reset completion.
DashboardAuthenticated developer dashboard.
ProfileDeveloper profile and password management.
AppsCreate, view, update, delete, approve, and revoke developer apps.
CredentialsCreate, approve, revoke, delete credentials, and manage product access.
MFA UIOptional authenticator app and email OTP flows when portal-mfa is installed.
ComponentsReusable anonymous Blade components under x-shadow::*.

How It Fits

Shadow Theme is useful when you want a ready-made web developer portal.

text
Browser
  -> Shadow Theme Blade routes
  -> Shadow Theme services
  -> Portal service contracts
  -> Portal database and Apigee-backed operations

Use portal-api when you want a REST API contract. Use Shadow Theme when you want a Laravel-rendered developer portal frontend.

Route Mounting

By default, Shadow Theme is mounted at the configured route prefix.

Current package default:

text
/

Common production choice:

dotenv
SHADOW_THEME_ROUTE_PREFIX=portal

Example URLs with SHADOW_THEME_ROUTE_PREFIX=portal:

PageURL
Home/portal
Products/portal/products
Login/portal/login
Register/portal/register
Dashboard/portal/dashboard
Apps/portal/apps
Profile/portal/profile
MFA settings/portal/settings/mfa

Pages In This Section