← Blog
2026-10-261 min read16 views

Hello World: a personal site with a talent tree, built on Nuxt

Why I built my own blog engine, and how the talent tree is drawn.

#Nuxt#Vue#博客

Why build my own

No off-the-shelf blog felt right: I wanted a talent tree I can light up, multilingual project pages, and a CMS that plugs into my future account center.

Stack

  • Nuxt 4: SSR frontend, CMS and API in one app
  • SQLite via the built-in node:sqlite — one file holds everything
  • GSAP + Lenis for transitions and scrolling
// Talent rule: a prerequisite needs at least 1 point
function canAdd(skill: Skill, ranks: Map<string, number>) {
  return skill.requires.every((k) => (ranks.get(k) ?? 0) > 0)
}

The hardest part of blogging is not the code — it is to keep writing.