Release Notes - v1.8.0
Overview
This release introduces a major overhaul to the user profile, settings, and theming systems, along with codebase-wide optimizations for type safety, performance, and user experience. A total of 41 files were modified to modularize components, enhance the UI, and harden the application's stability.
Features & Enhancements
1. Unified Profile System
- Profile Page (
/profile): Replaced the fragmented stats and archive pages with a single, cohesive user profile dashboard. - Component Modularization: Abstracted the complex profile logic into distinct
StatsViewandArchiveViewcomponents, significantly reducing boilerplate and improving code maintainability. - Header Update: Replaced the generic settings icon with a
UserCircleicon pointing to/profile, clarifying the navigation hierarchy.
2. Dedicated Settings & Preferences
- Settings Page (
/settings): Created a centralized hub for account management and preferences. - Safe Data Management: Migrated the "Danger Zone" (Sign Out and Clear Local Data) out of the Profile page and into Settings, complete with protective confirmation modals to prevent accidental data loss.
- Account Details: Added read-only display of the authenticated user's email address.
3. Advanced Theme Store
- Expanded Theme Engine: Defined an extensible
themes.tsmetadata file containing 10 distinct, highly-curated themes (e.g., Cyberpunk, Synthwave, Nord, Dracula, Ocean). - Theme Store UI (
/settings/themes): Built a dedicated marketplace-style page allowing users to browse and preview themes. The UI features dynamic CSS gradients, backdrop blurs, and hover animations, built entirely with strict design tokens (zero hardcoded Tailwind arbitrary values). - Favorites System: Upgraded
ThemeProviderto sync a user's favorite themes withlocalStorage. - Quick Switch: Replaced the old Light/Dark header toggle with a "Quick Favorites" switcher directly embedded inside the Settings page for rapid personalization.
4. Codebase Hardening & Optimizations
- Strict Type Safety: Conducted a repository-wide TypeScript audit. Eliminated dangerous
anycast operations infirebase.tsandstorage.tsby augmenting the globalWindowinterface and correctly typing catch-block errors. The build now passestsc --noEmitwith zero errors. - Firebase Initialization Fix: Resolved a critical Fast Refresh bug causing
ReCaptchaEnterpriseProviderto crash during local development by attaching a singleton initialization flag directly to the window object. - Sitemap Updates: Updated
public/sitemap.xmlto correctly index all new public routes including/settings,/profile,/leaderboard, and/faq. - Database Optimizations: Audited Firestore queries to ensure that reads are strictly limited (e.g., 100 documents max on Leaderboard) and properly cached globally using Next.js Incremental Static Regeneration (ISR) with a 300-second revalidation window to minimize API costs.
Full Changelog: v1.7.1...v1.8.0