Commit Graph
12 Commits
Author SHA1 Message Date
adrianbonpin cd72b7a948 refactor: convert to bun workspaces monorepo
- Move web app into apps/web/
- Create packages/shared/ with shared types
- Create plugins/decky-vault/ scaffold
- Root package.json manages workspaces only
2026-06-28 05:20:28 +08:00
adrianbonpin bcf2d540b8 chore: format components, switch to CDN hostname, and improve error handling in game stats
- Format long lines and union types in game page, preset modal, games page, and filter drawer
- Replace **.r2.dev with cdn.deckyvault.xyz in next.config image hostnames
- Replace sql ANY with drizzle inArray for hardware query in game stats
- Add try/catch error handler in game stats route
- Add post.md to .gitignore
2026-05-10 04:15:38 +08:00
adrianbonpin dcf6066b2b feat: sitemap remediation, PWA activation, search refinements, Steam Deck UX
Sitemap:
- Switch from ISR (revalidate=3600) to force-dynamic for per-request generation
- Flatten into single app/sitemap.ts with inlined static entries and DB queries
- NULL-safe syncStatus filter: ne(games.syncStatus, 'failed') OR isNull(games.syncStatus)
- Structured JSON logging for generated URLs and DB errors
- Delete lib/sitemap/* helpers and app/api/revalidate-sitemap route
- Add basic vitest coverage for sitemap exports

PWA & Offline:
- Add @serwist/next service worker (webpack build) with runtime caching
- Cache strategies: stale-while-revalidate for game pages, network-first for listings/API,
  cache-first for Steam CDN images
- Offline fallback page (public/offline.html)
- Manifest icons: 192px maskable + 512px any
- Viewport meta with viewport-fit=cover, user-scalable=no
- Apple mobile web app meta tags

Search / Filter Refinements:
- Multi-genre OR support in listing API (comma-separated genres)
- Device-scoped FPS filter (min/max FPS constrained to selected device)
- Client-side URL state sync via router.replace for shareable filtered views
- Initialize filter state from URL params on mount
- Auto-collapse filter panel on saved-filter load
- Fix multi-genre saved filter parsing (comma-separated)

Steam Deck / Touch / Gamepad UX:
- WCAG 2.1 AA touch targets (44x44px) on all filter controls
- .gamepad-focus CSS focus ring for controller navigation
- useGamepadNavigation hook: D-pad/left-stick roving tabindex, A/B/X/Y actions
- Integrate gamepad hook into games page (X=search, Y=toggle filters)

Chore:
- Bump version to 2026.0.97
2026-05-05 16:20:28 +08:00
adrianbonpin 7f5c0d3f96 fix: update .gitignore to include .superpowers directory 2026-04-26 12:10:27 -05:00
adrianbonpin 327dce2b19 feat(database): add community presets and game comments tables, update games and performance entries schema
- Created new ENUM types for game source, online multiplayer status, frame generation method, and FSR version.
- Added `community_presets` table with relevant fields and constraints.
- Added `game_comments` table to store user comments on games.
- Updated `games` table to allow null steam_app_id and added source and online_multiplayer_status columns.
- Enhanced `performance_entries` table with new fields for FSR version, frame generation method, upvotes, downvotes, and verification details.
- Established foreign key constraints for new tables and updated existing ones.
- Created indexes to optimize queries on comments and performance entries.
2026-04-25 19:13:51 +08:00
adrianbonpin a9cb8a328c feat(db): add lastLoginMethod field to user table for last-login-method plugin 2026-04-25 14:07:45 +08:00
adrianbonpin 7560eac127 chore: add .worktrees to gitignore 2026-04-25 12:52:47 +08:00
adrianbonpin d6a75fce86 chore: add docs/superpowers to gitignore 2026-04-25 12:32:48 +08:00
adrianbonpin ab0fe349a1 fix: remove unused import, ignore drizzle meta files 2026-04-25 12:06:41 +08:00
adrianbonpin 9a87b3c7be feat: make responsive and add .env.example 2026-04-25 02:03:55 +08:00
adrianbonpin 0dd1e86487 feat: add comprehensive SEO (metadata, OG images, sitemap, robots, manifest) and update README 2026-04-25 01:52:28 +08:00
adrianbonpin 04588d04c7 Initial commit from Create Next App 2026-04-24 21:49:07 +08:00