Hej Världen

4 januari 2026

Hej Världen

Det första inlägget på den här bloggen, en snabb titt på stacken, vad jag planerar att skriva om och varför jag till slut bestämde mig.

engineering

Varför en blogg nu?

Jag har byggt saker i sju år utan att skriva särskilt mycket om det. Det var ett misstag. Inte av de vanliga "bygg ditt varumärke"-skälen. Jag märker helt enkelt att skrivandet tvingar mig att förstå saker ordentligt. Om jag inte kan förklara det tydligt har jag inte förstått det än.

Vad den här sidan är byggd på

Portfolion är en Next.js 15-app deployad på Vercel. Bloggen har inget CMS, bara .mdx-filer i src/content/blog/. Varje fil börjar med ett frontmatter-block:

---
title: Hello World
date: 2026-01-04
tags: [engineering]
published: true
---

Your content here...

next-mdx-remote renderar dem server-side i React Server Components, och sugar-high hanterar syntaxmarkering utan konfiguration.

Routingen är en Next.js App Router slug-route på src/app/[lang]/blog/[slug]/page.tsx. När du besöker /en/blog/hello-world extraherar Next.js slug:en och skickar den till sidkomponenten. generateStaticParams körs vid byggtid, läser alla publicerade inlägg och talar om för Next.js vilka slug:ar som ska förrenderas:

export async function generateStaticParams() {
  const posts = getPosts();
  return posts.map((p) => ({ slug: p.slug }));
}

Sedan tar sidkomponenten vid:

export default async function BlogPostPage({ params }) {
  const { slug } = await params;
  const post = getPost(slug);
  return <MDXRemote source={post.content} components={mdxComponents} />;
}

getPost läser .mdx-filen från disk, tar bort frontmattern och returnerar den råa innehållssträngen. MDXRemote kompilerar och renderar den på servern med en anpassad komponentmapp, så att element som code, h2 och a renderas med rätt stilar istället för webbläsarens standardvärden:

export const mdxComponents = {
  h2: createHeading(2),
  a: CustomLink,
  pre: Pre,
  code: Code,
};

Vad som kommer härnäst

  • Förberedelse inför system design-intervjuer med animationer: consistent hashing, ledarval, replikeringsfördröjning, den typ av innehåll där ett statiskt diagram inte räcker
  • Slumpmässiga saker som rumsplanering och estetik, varför inte
  • Separation of concerns, inte bara i mjukvara utan i livet och inredningsdesign
  • Teknisk SEO ur ett ingenjörsperspektiv
  • Idéer från böcker jag läser, inga sammanfattningar, bara den enda saken som fastnade