CMS for Developer Portfolios
Self-hosted CMS, $39 once, polished out of the box
Most developer portfolios live in one of two places: a static site generator the developer maintains forever, or a SaaS CMS they pay $9–$25/month for forever. Both have a problem. The static site eats weekends every time you ship something new. The SaaS bill compounds for a portfolio you barely update.
This page covers what UnfoldCMS does for developer portfolios specifically: a self-hosted CMS, $39 once for a single domain, with Aurora's section builder so you can edit the homepage hero, project list, and about section without writing Markdown.
TL;DR: UnfoldCMS Core is $39 one-time for a single-domain portfolio. You get an admin panel, posts (for blog or case studies), pages (for /about, /work, /contact), a section builder for the homepage, and SEO records per page. No recurring bill, no member-count caps, no API metering. Run it on $5/month shared hosting that already powers your other side projects.
What a Developer Portfolio Actually Needs
Strip out the marketing-site features built for SaaS companies, and a developer portfolio needs about six things:
- A homepage with a hero, a "what I do" section, a project list, recent posts, and a contact link
- An /about page with a real story, photo, and current role
- A /work or /projects page listing case studies or featured projects
- A /blog for technical posts and notes
- A contact form that doesn't get spammed
- SEO basics — title, description, sitemap, schema markup, fast page load
That's it. Everything else (membership tiers, paywalls, e-commerce, multi-language, real-time collaboration) is overhead. UnfoldCMS Core ships exactly this list, and nothing you'll need to disable.
Quick Facts
| Question | Answer |
|---|---|
| Price for a single-domain portfolio | $39 one-time (Core tier) |
| Hosting | Self-hosted on any PHP host ($5/mo shared hosting works) |
| Editor | Block-based section builder + WYSIWYG post editor |
| Themes | Aurora (active default) + Default theme + 3 color themes |
| SEO out of the box | Per-post title/description, sitemap.xml, Article JSON-LD, FAQPage schema |
| Contact forms | Built-in, with submissions in admin |
| Recurring fees | $0 |
| Member-count caps | None |
| API call limits | None (it's your database) |
| Source code | Source-available, modify freely |
What Ships Today for a Portfolio
Honest inventory of what UnfoldCMS gives you for a portfolio site, verified against the codebase:
Pages and posts:
- Static pages with custom URLs (about, work, contact, uses, now)
- Blog posts with a WYSIWYG editor, code blocks, embeds
- Categories and tags for organizing technical posts
- Per-post SEO records (custom title and description)
Homepage section builder: The Aurora theme ships 29 sections out of the box, including the ones you actually need for a portfolio:
- Hero — name, tagline, headshot, primary CTA
- About — short bio with image
- Features — three or four "what I do" blocks (e.g. "I build Laravel APIs", "I ship frontend with React")
- Latest Posts — auto-pulls your most recent blog entries
- CTA — call-to-action block (book a call, email me, view resume)
- Testimonials — quotes from past clients or colleagues
- Stats — years experience, projects shipped, repos starred (if you want)
- Brands — clients you've worked with (with logos)
- Contact-info + Contact-form sections
You can add, remove, and reorder these sections from the admin without touching code. The whole homepage is built from blocks, not a fixed template.
Frontend stack:
- Laravel 12 + React 19 + Inertia 2
- Tailwind CSS v4 + shadcn/ui — fork the components, ship a fully custom design
- Three color themes (Default blue, Purple, Unfold soft-purple) via CSS variables
Developer ergonomics:
- The CMS is itself a Laravel project — you can extend it like any other Laravel app
- All admin pages are React + Inertia — fork them, add custom views, add a CV section type
- REST + GraphQL endpoints if you want to use UnfoldCMS as a backend for a separately-hosted Astro/Next portfolio frontend
We covered the broader Laravel + React + shadcn/ui stack story for the technical context.
What UnfoldCMS Does NOT Ship Today
Honest about gaps. None of these matter for a portfolio, but worth noting:
- No paid memberships or Stripe paywalls (the "Subscribe to my premium content" model)
- No multi-language content (no i18n)
- No visual drag-drop builder (it's block-based, not free-form)
- No real-time / WebSocket updates
- No federated GraphQL across multiple sources
- No public REST + GraphQL endpoints for posts yet (you write a small Laravel route to expose JSON if you want headless)
For a developer portfolio, none of these are dealbreakers. If you're trying to build a paid newsletter business or a multi-language docs site, see vs Ghost or vs Hygraph instead.
Compared to Common Portfolio Stacks
How UnfoldCMS compares to the four most common ways developers run their portfolio:
| Stack | Setup time | Updates | Recurring cost | When to pick it |
|---|---|---|---|---|
| Static (Next.js / Astro / Hugo) | 1–2 days | Edit Markdown, redeploy | $0 (Vercel/Netlify free) | You enjoy maintaining it; you redeploy weekly |
| WordPress | 30 min | Plugin sprawl, security patches | $5–$30/mo hosting + plugins | You want the largest theme ecosystem |
| Ghost (self-hosted) | 1–2 hours | ghost update |
$5–$25/mo VPS | You're newsletter-first |
| UnfoldCMS Core | 30 min | git pull + composer install |
$39 once + $5/mo hosting | You want a CMS, not a SaaS subscription |
The honest take: a static site is cheaper if you're already a static-site person and you'll keep at it. UnfoldCMS is faster to maintain — you log into the admin and update the bio without recompiling. WordPress is more flexible for plugins; UnfoldCMS is faster to ship a polished portfolio without fighting plugin conflicts.
For more detail on the static vs CMS trade-off, see why developers leave WordPress and self-hosted CMS vs SaaS CMS.
A Realistic Portfolio Setup Walkthrough
Step-by-step for a developer building their portfolio on UnfoldCMS Core:
- Buy the Core tier license ($39, one-time) on /pricing
- Install on any PHP 8.3 host —
composer install, run the installer, point a domain. ~5 minutes on a Hetzner VPS or a $5/month cPanel host - Pick the Aurora theme (default — looks polished out of the box). Optionally switch the color theme to Purple or Unfold soft-purple in settings
- Edit the homepage sections — replace the demo Hero with your name and tagline, swap the Features section for your "what I do" blocks, point the Latest Posts section at your blog
- Create three pages:
/about,/work,/contact. The /work page lists your case studies as posts (or as a custom section) - Write your first three posts — a build-in-public update, a tutorial, a "year in review." All in the WYSIWYG editor with code blocks
- Set SEO records for each page — write a real title (not the default), a real description (not the default), and the schema renders automatically
- Add a contact form — drop the contact-form section onto the /contact page. Submissions land in the admin with email notifications
- Submit to Google Search Console — sitemap.xml is at
/sitemap.xmlautomatically. Submit it, set up GSC, watch indexing - Done. Total time: 2–4 hours for someone comfortable with PHP hosting, longer if it's your first time
After this, weekly maintenance is logging in, writing a post, hitting publish. No redeployment. No plugin updates. No SaaS bill.
Three Real Portfolio Patterns
1. The classic developer portfolio
Hero with name + tagline, "what I do" features section, list of recent posts, contact link. Aurora's hero, features, latest-posts, and contact-info sections cover this without code.
2. The freelancer portfolio with case studies
Same as above plus a /work page listing client projects with logos, descriptions, and outcomes. Use the brands section for the homepage logo strip and a custom posts category called "Case Studies" for full project writeups.
3. The build-in-public technical blog
Portfolio is secondary; the blog is the main attraction. Use the Aurora blog template, set up categories ("Laravel", "React", "DevOps"), enable comments. The latest-posts section on the homepage becomes the entry point. The /about page is a one-pager.
If you're migrating from WordPress, the same WordPress import handles a portfolio site as well as a corporate site.
Trust Block
Who this is for: Developers building or rebuilding their personal portfolio who want a CMS instead of a static site, and don't want to pay $9–$25/month forever for it.
What it replaces: Ghost ($9/mo Pro), WordPress + premium themes (~$100–$300/year), Webflow ($14–$23/mo per site), or the Markdown-redeploy treadmill of a static site.
What it costs: UnfoldCMS Core license — $39 one-time. Single domain, full source, lifetime updates.
What happens after you buy:
- Download the installer and run
composer install— live in under 5 minutes on any PHP 8.3 host - Pick the Aurora theme, edit the homepage sections to match your voice
- Write your first three posts and ship — total time, an afternoon
If you outgrow Core, the Pro tier ($99 one-time, same domain) adds the AI Content Generator, Newsletter signup, Ad Zones, GA4 Dashboard, Auto Backups, Social Login, and Code Snippets — useful for portfolios that turn into real audiences.
FAQ
Is UnfoldCMS overkill for a single-developer portfolio? For some developers, yes. If you're happy editing Markdown and redeploying, a static site (Astro, Next.js, Hugo) is cheaper and faster. UnfoldCMS makes sense when you want to log in and edit the homepage hero, swap a project, or write a post without touching the codebase. The trade-off is $39 once versus zero, in exchange for an admin panel.
Can I use UnfoldCMS as a headless backend for an Astro / Next.js portfolio?
You can, with a small caveat. UnfoldCMS doesn't ship a public REST or GraphQL endpoint for posts out of the box yet. The honest workaround: write a small Laravel route in routes/web.php that returns posts as JSON, then fetch from your Astro/Next frontend. This is a few lines of code. We're shipping a proper headless mode in the future — see the vs Astro framework page for the latest.
What about hosting? Is self-hosting hard? Not for a developer. UnfoldCMS runs on any PHP 8.3 host — including the $5/month cPanel hosting that runs WordPress. Hetzner, DigitalOcean, AWS Lightsail, even shared hosting all work. If you can deploy a Laravel project, you can host UnfoldCMS.
What's the difference between Core ($39) and Pro ($99) for a portfolio? Core covers everything a basic portfolio needs: posts, pages, sections, SEO, contact forms, themes. Pro adds AI Content Generator, Newsletter signup, Ad Zones, GA4 Dashboard, Support Tickets, Auto Backups, Social Login, and Code Snippets. For most portfolios, Core is enough. If you're building an audience and want newsletter signups + GA4 dashboards in the admin, jump to Pro.
Can I use my own design or do I have to use Aurora? You can fork Aurora completely. The frontend is Tailwind v4 + shadcn/ui — standard React components with CSS variables for theming. We covered the why shadcn/ui matters argument — fork the components, ship your own design, the CMS doesn't care.
Does UnfoldCMS work for non-developer portfolios (designer, writer, photographer)? Mostly yes. The Aurora theme is generic enough for any creative portfolio. Photographers may want a gallery section that's more curated than what ships today; writers may prefer Ghost for the editor. For developers and developer-adjacent roles (DevRel, technical writers, indie hackers), it's a good fit.
What about the blog comments — do I need to moderate them? Comments ship with an approval workflow. Default behavior: comments stay in moderation until you approve. You can disable comments per-post or globally. For a portfolio with low engagement, set it to require approval and check weekly.
Will my portfolio rank on Google with UnfoldCMS? Same as any CMS — it depends on your content, not the platform. UnfoldCMS handles the SEO basics out of the box (sitemap, schema, per-page meta), so you start at the same line as WordPress or Ghost. After that, ranking is about backlinks, content quality, and search intent — none of which a CMS can do for you.
Methodology
UnfoldCMS pricing data is from /pricing as of May 8, 2026. Tier features are from config/pricing.php in the codebase. Aurora section list is from cms/resources/views/templates/aurora/sections/. Comparison stack costs reference public pricing pages of Ghost (ghost.org/pricing), WordPress hosting averages, and Webflow (webflow.com/pricing) as of May 2026.
Try UnfoldCMS for Your Portfolio
If UnfoldCMS sounds like a fit, the live demo takes about 90 seconds — log into the admin, edit a post, swap themes without installing anything. Pricing is one-time and the Core tier ($39) covers a single-domain portfolio.
If a static site or WordPress is the right answer for your specific portfolio workflow, that's a fine call too. The pricing math is the easy part of this decision; the workflow fit is harder.
Looking at how UnfoldCMS compares to specific platforms? See vs WordPress, vs Ghost, vs Webflow, or read the self-hosted vs SaaS CMS breakdown.