Company-Namespaced Route Shell with Theme — v0.1.16
Company-Namespaced Route Shell with Theme
Released in v0.1.16
Starting in v0.1.16, myProp serves all authenticated content under a company-specific URL namespace. This root shell is responsible for fetching company configuration, applying a branded theme, enforcing authentication, and rendering a responsive navigation layout for all child pages.
How It Works
1. Company-Namespaced Routes
All routes in myProp now live under a dynamic /:company path segment:
https://<portal-domain>/:company/*
The :company segment identifies the letting or estate agency whose portal the user is accessing. This makes every agency's portal independently addressable and isolates data across tenants.
2. Company Verification
When a user navigates to /:company, the shell immediately performs a company lookup against the AgentOS API. If the company identifier is not found or is inactive, the user is redirected before any further content is loaded. This prevents unauthenticated or invalid agency data from ever being rendered.
3. Dynamic Theming
Once the company is verified, the shell fetches the agency's design configuration and applies it at runtime using Tailwind CSS and shadcn/ui design tokens. This means:
- Brand colours, fonts, and component styles are resolved per agency.
- No theme changes require a rebuild or redeployment.
- Each agency's portal looks and feels like their own branded product.
4. Company URL Loading
The shell also loads agency-specific URLs (e.g. terms pages, support links, external resources). These are made available to all child routes within the shell, so navigation items and embedded links can be driven by live company configuration rather than hardcoded values.
5. Auth-Gated Shell
Authentication is enforced at the shell level. Any attempt to access a route under /:company/* without a valid session is intercepted and redirected to the sign-in flow. Child routes do not need to implement their own auth guards — the shell handles this uniformly.
6. Responsive Navigation
The shell renders a responsive navigation component that adapts to the user's viewport:
- Mobile: Collapsible menu with touch-friendly controls.
- Desktop: Persistent sidebar or top navigation, depending on the agency theme.
All navigation items are rendered within the themed shell, ensuring consistent branding across breakpoints.
Architecture Summary
/:company (Shell)
│
├── Verifies company exists via AgentOS API
├── Applies company theme (Tailwind/shadcn tokens)
├── Loads company URLs
├── Enforces authentication
├── Renders responsive navigation
│
└── /* (Child routes — all protected, all themed)
Benefits for Agencies
| Benefit | Description |
|---|---|
| White-label branding | Each agency gets a portal that matches their brand identity |
| Secure by default | Auth enforcement at the shell means no child route is ever exposed unauthenticated |
| Configuration-driven | Theme and URLs are loaded from live agency config, not hardcoded |
| Scalable multi-tenancy | Clean URL namespace isolation per agency from the root route |