Case Study: santoshpaudel.me — A Portfolio That Runs Like a Business
Most developer portfolios are digital brochures. Mine has a CRM, lead management, AI content agents, and a full admin panel. Here is what I built and why.
Table of contents
The standard developer portfolio has the same five sections. Projects. Skills. About. Contact. Resume download. It is the same page, reskinned 10,000 times.
The problem is not aesthetics. The problem is that a portfolio that only displays work cannot do work for you. It cannot capture leads while you sleep. It cannot manage client relationships. It cannot publish content. It is a brochure — and brochures do not close deals.
I built santoshpaudel.me differently.
What I Built Instead
The site has two distinct surfaces. The public portfolio — blog, services, case studies, about — which visitors see. And the admin panel, which I use daily to run the business side of my work.
The admin panel includes:
Dashboard — Live counts of blog posts, clients in pipeline, newsletter subscribers, and pending agent tasks. Everything I need to see in 10 seconds each morning.
CMS — Create, edit, and publish blog posts directly from the admin. Full markdown editor, tag management, category system, meta description fields.
CRM — Client pipeline with stages: lead → prospect → proposal → active → won/lost/paused. Each client has a detail page with tasks, interaction history, and CSV export.
Lead management — Every contact form submission lands here, tagged by source. I can see which service page drove the inquiry and move it into the CRM pipeline with one click.
AI Agents — Three autonomous agents (Content Manager, CMO, CTO) that run on a weekday schedule, propose actions, and wait for my approval before anything goes live.
API Vault — Centralized management of API keys across Groq, DeepSeek, Anthropic, and OpenRouter. One place to rotate keys without touching code.
The Tech Stack
Everything runs on Next.js 15 with the App Router, Supabase for the database, and Vercel for deployment. The admin panel is protected by Supabase Auth — there is no other authentication layer.
Key design decision: no intermediate API layer for reads. Public pages fetch directly in server components. Admin pages fetch client-side via the same Supabase singleton. This keeps the codebase small and the mental model simple.
The Content Side
The blog system is connected to Supabase, which means posts are queryable, filterable, and searchable from day one. The AI agents can propose new posts, which go into a pending queue — I approve or reject before anything publishes.
The programmatic SEO layer generates pages for services, industries, and local targeting without manual page creation per city or vertical. One template, populated from structured data.
What This Changes
The shift from static portfolio to active platform changes what a portfolio can do:
- —Leads are captured, not emailed and forgotten
- —Clients have a pipeline stage, not just a name in a spreadsheet
- —Content publishes on a system, not on a mood
- —Agents propose, I approve — the site keeps working when I am not
The Honest Tradeoffs
Building and maintaining a full admin panel takes time that a simple static site does not. The upfront build was roughly five days out of the 25-day sprint. The ongoing maintenance is low, but it is not zero.
For a developer who actively freelances or consults, this pays off quickly. For someone who just wants to display projects while job hunting, a simpler site probably makes more sense.
What Is Next
The next layer is automation — connecting the lead capture to Telegram notifications, wiring the newsletter subscriber list to an email sequence, and letting the agents run more autonomously as I calibrate what they get right.
The goal is a site that generates qualified inquiries without active effort, leaving more time for the work itself.
Resources
- —Supabase Auth quickstart — the simplest way to add authentication to a Next.js admin panel
- —Next.js App Router — server components and
generateMetadatapower the public portfolio side - —Vercel environment variables — how to manage secrets across dev and production without leaking them
Related Posts
- —How I Structure a Supabase + Vercel Admin Panel From Scratch — the exact modules, schema, and auth setup I used for this portfolio's admin panel
- —Building a Lead and CRM System Into Your Portfolio Site — how the lead inbox and client pipeline were built
- —I Built My Own AI Content Team: Content Manager, CMO, and CTO Agents — the three agents that run on this site and what they do
Want a portfolio that works this hard for you? I build custom full-stack platforms with admin panels, CRM, and AI content systems. See my services or get in touch to talk about yours.
Get the free AI Prompt Pack + weekly frameworks
30+ tested prompts for images, captions, scripts & keywords, delivered instantly. Plus real insights on AI + marketing — no generic tips.
Want to implement this with guidance?
Santosh helps founders turn insights like this into real systems.
External Resources
Further Reading & Tools
Content Marketing Institute
Annual content marketing benchmarks — budgets, channels, and outcomes
HubSpot Marketing Blog
Data-driven marketing research, inbound strategy, and content guides
Semrush Blog
SEO, content, and digital marketing research and strategy guides
Marketing Week
UK's leading marketing news, strategy insight, and industry research