Enable language support with next-intl, localized metadata, automatic sitemap generation
Integrated Storybook stories with Vitest using @storybook/addon-vitest for unified component testing in browser environment
Designed and implemented timeline for the project, inspired by monolith from 2001: A Space Odyssey
Fixed viewer crashes during rapid navigation by implementing per-route isolation, separated effects, and async guards
Migrated from source-based imports to proper package builds with full TypeScript validation in CI
Discovered bundler ecosystem gap with React Server Components directives, migrated UI package into web app
Integrated automated TypeScript type generation from Swagger/OpenAPI specs
Redesigned header as state-driven multi-role component: landing page, navigation bar, and transition mask in one
Reduced HTML from 319 KB to 257 KB (19% reduction) and separated markdown parsing so detail sections are parsed individually using Next.js parallel & intercepting route pattern
Redefined portfolio as playground, and migrated system from file-based dynamic routes to static routes with centralized configuration, following `cesium-utils` page's architectural pattern
Migrated the blog system and routes of this project from file-based to database-driven having custom content management system.
Integrated Prisma ORM with Neon PostgreSQL for serverless architecture, eliminating traditional backend framework
Migrated from Jest to Vitest for unit tests, added Playwright for E2E testing
Complete refactoring for portability, high cohesion, and separation of concerns using private folders and route-scoped context
Removed Resium wrapper library (-1MB), implemented direct Cesium integration with custom React wrapper
Implemented Next.js multi-zone architecture, then removed it after discovering 77% performance degradation
Reduced Docker image from 526MB to 346MB (34% reduction) with 99% layer efficiency
Achieved 66-72% bundle size reduction through strategic lazy loading and dependency analysis
Migrated from Yarn Berry PnP to PNPM due to Next.js standalone and Vercel monorepo incompatibility
Restructured from single Next.js app to monorepo with shared packages
Initial commit with standard single Next.js application, including various development tools and Yarn Berry PnP.