SKIP TO MAIN CONTENT
TECHNICALOngoing

Next Portfolio Site

Caspian Almerud portrait
Caspian Almerud
Designer & Developer · Stockholm, Sweden
Published ·Updated

Living portfolio built with Next.js 15, Tailwind, and Contentlayer to showcase work, writing, and experiments.

> cat outcomes.md

Problem

My work was scattered across a GitHub profile, a blog, and a YouTube channel — a recruiter or client couldn't see the whole picture in one place.

Outcome

Shipped caspianalmerud.se: a Next.js 15 App Router site with MongoDB-backed CMS for projects, blog posts, videos, and CV timeline; E-E-A-T-rich JSON-LD, per-page OG images, and automated reading-time metadata. Rebuilds, revalidates, and handles content edits without a redeploy.

Metrics

Blog posts
514
Videos
21
Projects
21
Stack
Next.js 15

Role

Designer & Developer

Category

Personal Brand

Skills

Next.js 15React 19TypeScriptTailwind CSSContentlayerPlaywright

Tools

Project Overview

This repository powers my current portfolio. It extends the base boilerplate with custom layouts, MDX-powered storytelling, and a project taxonomy tailored to my mix of client work, experiments, and coursework.

Tech Stack

  • Next.js App Router with server components, dynamic metadata, and streaming routes
  • Contentlayer for typed MDX content, including projects, blog posts, and timelines
  • Tailwind CSS plus shadcn/ui for component primitives
  • Comprehensive automated tests (Vitest, Playwright, k6) running in CI

Key Work

  • Designed reusable section components that adapt typography and spacing responsively
  • Added data-driven project pages sourced from GitHub metadata and Contentlayer collections
  • Hardened the build pipeline with type checking, linting, and preview deployments per branch

Next Steps

  • Layer in case study templates with richer storytelling and multimedia support
  • Integrate analytics dashboards to surface engagement metrics directly in the site
  • Explore using the Contentlayer structured data to generate PDF portfolios automatically