~/updates / 2026 / 06 / update-v0-9-8
● Website 2026.06.03

Main Site Complete Overhaul — Quartz Design System, D1 Migration, Admin Editor (v0.9.8)

The largest overhaul of the main site since its initial launch. Migrated from Keystatic CMS to D1 backend, introduced the Quartz design language, and built a complete three-column Admin editor.

顏榕嶙 · Bernie
posted 2026.06.03

Main Site Complete Overhaul — v0.9.8

This is the largest update to the main site since launch, covering a full redesign and restructure across data architecture, visual design, and content management.

Architecture Migration: Keystatic to D1

The main site's content management has been fully migrated from Keystatic (file-based CMS) to Cloudflare D1.

  • Added 5 new D1 tables: projects, links, updates, singletons, cards

  • Built a unified API layer (api.ts) — all pages now fetch data through the Content API Worker

  • Main site has its own isolated R2 storage bucket (eternity-root-assets), separate from the docs site

  • Removed all Keystatic-related code and static content files

Quartz Design Language

The entire site has been redesigned with the Quartz design language — JetBrains Mono monospace paired with Playfair Display serif, navy/coral/ink color system, minimal borders, paper-like texture.

  • Homepage: Large-type hero section + fact sheet card + stats bar + selected work + update log

  • Projects: Dual-dimension cross-filtering (Status x Tag), cover image fallback

  • About: Full Bio / Skills / Experience / Currently dynamic panel

  • Links: Category grouping + JUMP TO navigation + status visual effects (deprecated / unmaintained)

  • Contact: TipTap rich text input + success dialog animation

Interactive Components

  • Draggable cards: unconstrained dragging, inertia, spring bounce-back, double-click reset

  • Theme toggle diagonal cut animation

  • Console Easter Egg: CRT x Quartz fusion terminal design

  • Global search (Cmd+K) with Quartz-styled interface

Admin Editor

Built a dedicated three-column admin editor for the main site from scratch.

  • Three-column layout: Entry list (left) | TipTap editor (center) | Inspector (right)

  • 8 editor pages: Page text, About, Projects, Updates, Links, Contact, Media Library, Widgets

  • Media Library: R2 asset management with grid browsing, search, upload, drag-and-drop, delete

  • JWT authentication: Skip login in dev mode, httpOnly cookie in production

Widget System

Sidebar widget management system with 8 configurable widgets: Daily Quote, Latest Update, Music Player, Portal, Quick Stats, Status, U.E.P, Visitor Counter.

Sync Tool Unification

Sync tools for both sites (main + docs) have been unified:

  • Shared auth module: only one password prompt for syncing both sites

  • Unified behavior: auth failure handling, time format, R2 delete propagation, interactive confirmation

  • Main site R2 delete tracking: added root_deleted_assets table

Performance Optimization

  • React Island strategy: 8 components persist across page navigations (transition:persist)

  • API 60-second TTL in-memory cache: warm-cache SSR response dropped from ~160ms to ~50ms

  • Navigation prefetch: preload next page HTML on hover

  • Non-blocking Google Fonts loading

Code Cleanup

  • Removed 16 dead files (Keystatic-related + unused alternative design system)

  • Dark mode fix: replaced TipTap hardcoded RGB values with CSS variables

  • Fixed apiFetch cache leak, GlobalSearch hydration error, and other bugs

← older
First Update (Website Deployed)
newer →
(You are reading the latest entry)