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.
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 WorkerMain site has its own isolated R2 storage bucket (
eternity-root-assets), separate from the docs siteRemoved 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_assetstable
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