Skip to content

Migrate blog from Jekyll to VitePress 2 + Tailwind v4#31

Merged
kelsos merged 1 commit into
rotki:masterfrom
kelsos:vitepress-migration
Jun 5, 2026
Merged

Migrate blog from Jekyll to VitePress 2 + Tailwind v4#31
kelsos merged 1 commit into
rotki:masterfrom
kelsos:vitepress-migration

Conversation

@kelsos
Copy link
Copy Markdown
Member

@kelsos kelsos commented Jun 5, 2026

Re-platforms Robin's Blog (blog.rotki.com) from Jekyll (Hyde/Poole) to a custom VitePress 2 + Tailwind v4 theme. A faithful re-platform: every URL, the Atom feed and the overall layout are preserved byte-for-byte; SEO, social cards and modern analytics are added on top.

Preserved (verified 1:1 against production)

  • All 16 article URLs /YYYY/MM/DD/slug/ (incl. the sanitized open-source slug), /about/, /archive/, /, /page2..6/, /404.html, /atom.xml
  • /public/postN/... image paths, CNAME, favicon

Added

  • Theme: collapsible overlay nav on mobile, full-content paginated home, per-post h2 TOC, light/dark toggle, reading time, tag labels, prev/next + related posts
  • Feeds: kept /atom.xml, added RSS 2.0 /rss.xml (autodiscovery + feed image)
  • SEO: sitemap (+lastmod), robots, OpenGraph/Twitter, JSON-LD (BlogPosting, BreadcrumbList, WebSite, Blog), canonical, article published/modified time
  • Per-post 1200×630 OG share cards generated at build (satori + resvg-js)
  • Analytics: self-hosted Umami (replaces the retired Universal Analytics)
  • Code: Shiki github-*-high-contrast (AA); self-hosted Inter
  • Tooling: pnpm 11 with supply-chain hardening (release cooldown, exact pins, no-downgrade trust policy, strict dep builds), Node 24, Renovate, hardened GitHub Actions Pages deploy; pnpm new scaffolds posts

Lighthouse 100 / 100 / 100 (a11y, best-practices, SEO) across mobile + desktop, light + dark.

Posts are attributed to "The rotki team" (per-post author: override available).


⚠️ Required before this goes live

  1. Switch GitHub Pages to Actions — Settings → Pages → Build and deploymentSource: GitHub Actions (currently "Deploy from branch"). Without this the new workflow won't publish and Jekyll keeps building.
  2. Merge to master triggers .github/workflows/deploy.yml (build → upload-pages-artifact → deploy-pages). The github-pages environment is created automatically on first run.
  3. After first deploy, spot-check the live site: a couple of post URLs, /atom.xml, /rss.xml, /sitemap.xml, and an OG card (/public/og/<date>-<slug>.png).

Local preview

pnpm install && pnpm docs:build && pnpm docs:preview

Comment thread about.md Outdated
Comment thread about.md Outdated
Comment thread package.json Outdated
@kelsos kelsos force-pushed the vitepress-migration branch from a15e823 to ea7c2e3 Compare June 5, 2026 16:01
Re-platform Robin's Blog (blog.rotki.com) from Jekyll (Hyde/Poole) to a custom
VitePress 2 + Tailwind v4 theme. Every URL, the Atom feed and the overall layout
are preserved; SEO, social cards and modern analytics are added.

- URL parity: posts keep /YYYY/MM/DD/slug/ via rewrites; /about/, /archive/,
  /page2..6/, /404.html and /atom.xml all preserved.
- Custom theme: collapsible overlay nav on mobile, full-content paginated home,
  per-post h2 TOC, light/dark toggle, reading time, tag labels, prev/next and
  related posts. Centered reading column, 18px/1.7 left-aligned long-form.
- Feeds: /atom.xml (kept) + new RSS 2.0 /rss.xml, autodiscovery + feed image.
- SEO: sitemap (+lastmod), robots, OpenGraph/Twitter, JSON-LD (BlogPosting,
  BreadcrumbList, WebSite, Blog), canonical, article published/modified time.
- Per-post 1200x630 OG share cards generated at build (satori + resvg-js).
- Analytics: self-hosted Umami, replacing the retired Universal Analytics.
- Shiki github-*-high-contrast code themes (AA). Self-hosted Inter (Fontsource).
- Tooling: pnpm 11 with supply-chain hardening (release cooldown, exact pins,
  no-downgrade trust policy, strict dep builds), Node 24, Renovate, hardened
  GitHub Actions deploy + a CI build check on every PR. `pnpm new` scaffolds posts.
- Lighthouse 100/100/100 (a11y, best-practices, SEO) across mobile/desktop,
  light/dark.

Posts are attributed to "The rotki team" (per-post `author:` override available).
@kelsos kelsos force-pushed the vitepress-migration branch from ea7c2e3 to 75c2083 Compare June 5, 2026 16:06
@kelsos kelsos merged commit 1f238ea into rotki:master Jun 5, 2026
2 checks passed
@kelsos kelsos deleted the vitepress-migration branch June 5, 2026 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants