Morton Digital

2026-04-20 · 6 min read

How to Launch a Developer Portfolio in One Afternoon

Most developer portfolios die in a create-next-app. You spend four days configuring dark mode, fighting hydration errors, and renaming things in tailwind.config.ts — and the actual writing-about-your-projects part never happens.

The fix is to invert the order. Start from a template where the hard design decisions are already made, replace only the content that's about you, and deploy in the same afternoon. This is the literal four-step playbook — no build system, no bundler, no framework knowledge required.

1. Pick a template (10 minutes)

For a portfolio specifically, the selection criteria are narrow:

Forge is the portfolio template we built for exactly this set of constraints. Glass morphism frames on project cards, a contribution graph as visual texture, a fixed navbar that stays readable over hero imagery, and an email-first contact that pre-fills a subject line. $79, one-time.

If you want more sections to remix — say you're positioning for design engineering roles where the portfolio itself is part of the audition — Orbit has more visual range at $199.

2. Customize three sections (2 hours)

The temptation is to rewrite everything. Resist it. Three changes move 80% of the needle:

Hero copy

Replace the placeholder hero text with a single specific sentence: who you are, what you build, and for whom. Not "Full-stack developer passionate about clean code." Instead: "I build distributed systems for fintech teams that outgrew monoliths. Last three roles: Stripe, Plaid, Ramp."

The specificity is load-bearing. Anyone can claim passion; nobody can fake "Stripe, Plaid, Ramp" without recruiters being able to verify it in under 30 seconds.

Project cards

Pick three — three, not six — projects that reinforce the hero claim. Each card gets:

If the work is NDA'd, write a sanitized version — "Fortune-500 retailer" instead of the client name, preserved metric, changed dollar amounts by ±15% rounded. Recruiters understand the convention.

Work history timeline

Include only the last 3-4 roles. Each gets the company, the title, the date range, and one concrete thing you shipped. Skip the bullet lists of responsibilities — those are resume content, not portfolio content.

3. Deploy to Cloudflare Pages (20 minutes)

Cloudflare Pages is free for static sites and deploys in under a minute per push. Install wrangler once, then:

npm install -g wrangler
npx wrangler login
cd ~/Downloads/forge
npx wrangler pages deploy . --project-name portfolio

You'll get a URL like portfolio.pages.dev immediately. Open it in a real browser (not just a preview) and click through every link — fixing a broken link now is 30 seconds; fixing it after a recruiter emails about it is embarrassing.

4. Custom domain (30 minutes)

A portfolio at yourname.com is read differently from one at yourname.pages.dev. If you don't own the domain yet, buy it at Cloudflare Registrar (no markup, no renewal hikes) or Porkbun.

Add the domain to your Cloudflare account, then in the Pages project → Custom Domains → add yourname.com. Cloudflare creates the CNAME automatically if the domain is on your account; otherwise you'll get a target to paste into your registrar's DNS panel. Cert issues within 2-10 minutes.

Add a www subdomain too — some people type it, others don't; not owning both breaks for the half that do.

The rest

That's the afternoon. The remaining improvements — case-study writeups, blog posts, speaking page, talks embed — all work better once the baseline portfolio is live, because now you have somewhere to link them to.

Common traps to skip:

Ship the portfolio with three real projects, a working contact link, and a clean domain. Iterate in public.

Start with Forge or browse the full template catalog.