Build, edit, and publish portfolios through one App Router system.
These docs summarize the current DevFrame workflow: custom Clerk auth, Supabase persistence, demo-mode fallback, Studio live editing, Builder content management, and public `/p/[slug]` rendering.
DevFrame system map
The same App Router shell powers marketing, Studio, Builder, Dashboard, and public portfolio routes.
App
Next.js 16
App Router under `src/app`
Auth
Clerk
Custom UI, server sessions
Data
Supabase
Portfolio persistence and storage
Output
/p/[slug]
Public portfolio route
Start
Getting started
Install dependencies, copy the example environment file, and start the App Router development server.
Environment
Environment variables
DevFrame reads app runtime configuration from `.env.local` and validates it through the environment helper layer.
Auth
Auth setup
Clerk provides sessions, but DevFrame keeps the sign-in, sign-up, OAuth, and callback screens custom.
Persistence
Supabase setup
Supabase stores the published portfolio record, related projects, experience, sections, and managed assets.
Workflow
Creating and editing a portfolio
Studio is the primary live editor, Builder is the structured/mobile editor, and Dashboard is the control center.
Publish
Publishing to `/p/[slug]`
A valid slug publishes to a public portfolio route rendered through the shared `PortfolioRenderer` and template registry.