Personal site, blog and portfolio
marcoscoelho.pt
This site is the portfolio of portfolios — it's the project that documents all the other projects. The design constraint was deliberate: no templates, no UI kit, everything built from primitives. The goal was a site that feels like a senior engineer's environment — editorial, precise, technically credible. The content engine is Sanity v5 with a custom schema for posts, categories, and SEO metadata. Content editors (just me, for now) write in the Sanity Studio, hit Publish, and the page is live on the edge within 3 seconds thanks to Vercel's on-demand ISR triggered by a Sanity webhook.
<3s
Publish to Edge
via on-demand ISR + webhook
100
Lighthouse
performance score
Sanity v5
CMS
with real-time preview
Content Pipeline
The pipeline is: write in Sanity Studio → hit Publish → Sanity fires a webhook → Next.js revalidates the affected path → Vercel serves the fresh page from the edge. No full rebuild, no waiting. The revalidation is path-scoped, so publishing one post only re-renders that post's page — not the entire site.
// src/app/api/revalidate/route.ts
export async function POST(req: Request) {
const { slug, type } = await req.json()
if (type === 'post') {
revalidatePath(`/blog/${slug}`)
revalidatePath('/blog')
revalidatePath('/')
}
return Response.json({ revalidated: true, slug })
}Design Philosophy
The design is intentionally counter-trend — no hero gradients, no floating blobs, no SaaS marketing patterns. The aesthetic is closer to a technical editorial magazine: large type, long reading lines, generous whitespace, and a dark palette with almost no colour. The only colour used purposefully is a single blue for interactive elements and a muted gold for emphasis.

Sanity Studio content editor for marcoscoelho.pt