@olonjs/studio. It gives you a live, form-driven editor for every section of your portfolio — no code required. Navigate to /admin on your site and you can update hero text, bio copy, skills, project case studies, blog posts, and more, all from a single interface.
Accessing Studio
Open Studio by visiting the/admin route on your site:
- Locally:
http://localhost:3000/admin - On Vercel:
https://your-portfolio.vercel.app/admin
Save Modes
How Studio persists your changes depends on where you’re running it.Local Mode
When you run the dev server locally without a Save2Repo configuration, Studio writes changes directly to the JSON files insrc/data/. The save is instant and requires no external services. Use this mode when developing or previewing content changes before pushing to production.
Save2Repo Mode
When your site is deployed to Vercel and the Save2Repo integration is enabled, Studio commits the updated JSON files back to your connected GitHub repository. Each save triggers a new Vercel deployment, so your live site reflects the change automatically within seconds.Save2Repo requires the Vercel integration and a properly configured
ADMIN_PUBLIC_KEY environment variable. See the deployment guide for setup instructions.What You Can Edit
Studio gives you full editorial control over every content layer in your portfolio:- Page sections — home hero, bio band, skills stack, work preview, contact block, and more
- Blog posts — title, body (Markdown), tags, date, and cover image
- Projects / case studies — problem, architecture, result, stack, featured flag, and images
- Site config — site name, metadata, and social links
- Navigation menus — labels, links, and order
Asset Uploads
Studio includes a built-in asset uploader accessible from any image field. Upload a file directly from your browser and Studio stores it in your project. In Save2Repo mode, the uploaded file is committed to your GitHub repo alongside the JSON content changes.For best performance, upload WebP images no wider than 1600px, or reference Unsplash URLs with
?w=1600&q=80 query parameters — the approach used by the default content.Admin Access Protection
The/admin route and all mutate API endpoints (/api/save-to-file, /api/upload-asset, /api/list-assets) are guarded by middleware.
- On Vercel: when
VERCEL_ENVis set andADMIN_PUBLIC_KEYis present, the middleware enforces authentication via a session cookie. Only authenticated users can access Studio or call the save/upload APIs. - Locally: the middleware bypasses authentication so you can edit freely during development.
Next Steps
Editing Content
Learn how to edit page sections, blog posts, and project case studies step by step.
Managing Assets
Upload and manage images and media files used across your portfolio sections.