SmellsLikeCodfish

[ system.report ][ system.about ][ system.pipeline ]
[ < BACK_TO_DIRECTORY ]
CHANGE_LOG.txt
[V1.7][12.04.2026]
> WEB MANIFESTseofeature

Added a PWA web manifest with theme colours matching the terminal aesthetic, enabling installability and providing proper metadata for mobile home-screen shortcuts and share cards.

> STUDIO INDEX PAGESseofeature

New /studio/[slug] pages listing every game by each developer. Studio names on game detail pages now link directly to the studio index, creating crawlable topic clusters around Portuguese developers.

> CANONICALS & HREFLANGseoi18n

Configured metadataBase and per-page canonical URLs to avoid duplicate-content penalties. Declared hreflang alternates for English and pt-PT so each language version is indexable. OpenGraph images now include width, height, and descriptive alt text.

SmellsLikeCodfish_2026
> COMMS LINK :contact@smellslikecodfish.com
> STRUCTURED DATAseo

Added JSON-LD structured data across the site: VideoGame schema on detail pages with developer, publisher, genre, platforms, release year and trailer; BreadcrumbList for rich navigation snippets; and CollectionPage/ItemList on the homepage to surface the catalogue to search engines.

> SITEMAP & ROBOTSseo

Added a dynamic sitemap.xml that lists every game page and studio index alongside the static routes, plus a robots.txt pointing search engines at the sitemap. Each URL includes last-modified timestamps pulled from the database.

[V1.8][12-04-2026]
> Studio index pagesnavigationseo

Each studio now has a dedicated page at /studio/[slug] listing all of its catalogued games. Studio names on the game detail page link to these indexes.

> URL-based localesseoi18nrouting

Language is now reflected in the URL (/en/... and /pt/...) instead of a cookie. Middleware auto-detects locale from Accept-Language on first visit, and the language toggle swaps the URL segment while preserving the current path. Enables proper hreflang alternates and per-locale canonical URLs for search engines.

> Expanded structured data and sitemapseostructured-data

Added VideoGame and BreadcrumbList JSON-LD to game pages and CollectionPage JSON-LD to the index. The sitemap now emits both locales per route with hreflang alternates, and each page exposes locale-aware canonical URLs.

> Studio index pagesnavigationseo

Each studio now has a dedicated page at /studio/[slug] listing all of its catalogued games. Studio names on the game detail page link to these indexes.

> URL-based localesseoi18nrouting

Language is now reflected in the URL (/en/... and /pt/...) instead of a cookie. Middleware auto-detects locale from Accept-Language on first visit, and the language toggle swaps the URL segment while preserving the current path. Enables proper hreflang alternates and per-locale canonical URLs for search engines.

> Expanded structured data and sitemapseostructured-data

Added VideoGame and BreadcrumbList JSON-LD to game pages and CollectionPage JSON-LD to the index. The sitemap now emits both locales per route with hreflang alternates, and each page exposes locale-aware canonical URLs.

[V1.6][12.04.2026]
> VISUAL POLISH & COLOR CONSISTENCYvisual

Restricted the amber/yellow accent color to buttons only. Non-button labels that were previously amber — the latest additions modal title, the About page verification headings, and the updates page version headers — are now green to match the rest of the interface. Removed the terminal prompt (admin@codfish:~/games/portugal$) that preceded the search bar, leaving just the search label for a cleaner look.

> GAME PAGE VERIFICATION TAGSfeature

Each game detail page now displays two prominent status tags above the metadata: DATA_COMPLETE / DATA_INCOMPLETE and DEV_VERIFIED / DEV_UNVERIFIED. Tags use the same logic as the catalogue indicators — green for complete/verified, red for missing data or unverified entries.

> LATEST ADDITIONS MODALfeature

Added a new LATEST_ADDITIONS button next to the search bar that opens a modal listing every game added on the most recent import day, with their studio and release year. Each entry links directly to the game's detail page. The modal closes on Escape, overlay click, or the close button.

> LAYOUT & TYPOGRAPHY REFINEMENTSvisual

Enlarged the main site title across all breakpoints. Tightened the spacing between the search bar and the game list, and moved the LATEST_ADDITIONS button to its own row between the navigation and the search input for better visual hierarchy.

> GAME LIST MOBILE CARD LAYOUTfeatureresponsive

Replaced the horizontal scrolling table on mobile with a four-row card layout per game. Each field is labelled (DEV, PUB, GENRE, PLAT, YEAR, DATA, VER) so every value is identifiable without the column header, eliminating the need to drag the screen sideways.

> MOBILE NAVIGATION DROPDOWNfeatureresponsive

Navigation links now collapse into a [ MENU ▼ ] dropdown on mobile devices and touch screens. Detection combines viewport width, pointer type, and user-agent checks so the menu also triggers on tablets. The return-to-directory link stays outside the dropdown for quick access.

[V1.5.2][11.04.2026]
> HISTORICAL GAMES IMPORTdatabasecontent

Bulk-imported 118 Portuguese video games spanning from 1982 to 2024, covering the ZX Spectrum pioneers (Bala, 4D Maze, O Globo da Luz), the 1990s CD-ROM era, 2000s educational and online games, 2010s mobile hits from Miniclip and Biodroid, and the modern indie and AA titles from studios like Camel 101, Nerd Monkeys, Saber Porto, and Whales And Games.

> DATA COMPLETENESS & VERIFICATION INDICATORSfeaturedatabase

Added two new columns to the catalogue table: DATA and VERIFIED. The DATA indicator automatically checks if all ten game fields (publisher, year, genre, engine, platforms, both descriptions, image, trailer, store link) are filled in — showing [x] in green for complete entries and [ ] in red for incomplete ones. Empty strings and "N/A" values are both treated as missing. The VERIFIED indicator reads from a new database column and shows whether the game's information has been reviewed and confirmed by the developers themselves. Also expanded the About page with a new DATA VERIFICATION section explaining both indicators.

[V1.5.1][11.04.2026]
> MOBILE RESPONSIVENESS OVERHAULresponsivefixvisual

Added a new 480px breakpoint for small mobile screens alongside the existing 768px breakpoint. Reduced body font size, padding, and title sizes at each breakpoint. Added 44px minimum touch targets on all interactive elements (search input, nav links, language toggle, buttons). Fixed game detail page layout to stack vertically on mobile. Replaced hardcoded footer label width with flexible sizing. Reduced loader overlay padding and chart font sizes on small screens. Fixed stats page charts and dashboard cards overflowing screen bounds by adding overflow protection and flexible bar widths.

> UNIFIED ROADMAP LAYOUTfeaturevisual

Merged completed milestones and future initiatives into a single unified list on the roadmap page. Items are now sorted by status (completed → in progress → queued) with visual differentiation: amber borders for in-progress items, dimmed styling for queued entries, and status-colored badges. Removed the separate milestone/future sections.

[V1.5][10.04.2026]
> DATABASE-DRIVEN CONTENTfeaturedatabase

Moved roadmap milestones and future initiatives from hardcoded dictionary files to the database. Added a new updates/changelog page. Both can now be managed directly from the Supabase dashboard without redeploying.

> LOCALIZATION FIXESi18nfix

Fixed 8 hardcoded strings that were never translated to Portuguese: search results messages, sort button labels, language toggle tooltip, trailer modal title, fallback descriptions, and roadmap progress labels.

> SEO & METADATAseo

Added comprehensive OpenGraph and Twitter Card metadata to all pages. Game detail pages now generate dynamic metadata with per-game titles, descriptions, and images. Added robots configuration for search engine indexing.

> PERFORMANCE OPTIMIZATIONSperformance

Switched to next/font for self-hosted VT323 font loading. Moved search filtering and sorting to the database (server-side). Converted TableRow and TerminalFooter to server components. Optimized game detail page queries from 3 full-table fetches to 3 single-row fetches. Replaced raw CSS background-image with next/image.

> SECURITY & CODE QUALITY OVERHAULsecurityrefactor

Major refactor: added TypeScript interfaces across the codebase, extracted shared locale utility, added URL validation for database-sourced links, security headers (HSTS, X-Frame-Options), and cookie hardening with SameSite/Secure flags. Removed all "any" types.

[V1.4.2][09.04.2026]
> TRAILER OVERLAY FIXfix

Fixed a bug where text content would render in front of the YouTube trailer modal overlay.

[V1.4.1][07.04.2026]
> VISUAL IMPROVEMENTSvisualfix

Updated stats page visuals and color scheme. Game detail pages now display a blurred background image from the game art. Fixed various coloring and loading issues across the interface.

[V1.4][06.04.2026]
> GAME PAGE NAVIGATIONfeature

Added previous/next game navigation buttons on game detail pages, allowing direct browsing between entries without returning to the catalogue.

> LOADING SCREENfeature

Terminal-style loading animation with typing effect that masks page transitions. Shows context-aware messages based on the target page.

> NAVIGATION TERMINAL & FOOTERfeature

Standardized navigation bar across all pages with language toggle and section links. Added terminal-styled footer with contact information.

[V1.3][05.04.2026]
> PROJECT ROADMAPfeature

New roadmap page showing completed milestones with progress bars and future planned initiatives in a grid layout.

[V1.2][05.04.2026]
> ADVANCED SORTING OPTIONSfeature

Extended sorting to support title, developer, year, genre, and date added. Sort field cycling and ascending/descending toggle.

> ABOUT PAGE & PROJECT METADATAfeature

Added the About page with the project mission statement and curation criteria. Improved overall readability across the interface.

[V1.1][03.04.2026]
> SYSTEM REPORT DASHBOARDfeature

New statistics page with ASCII bar charts showing games by genre, engine, release year, and platform. Added summary cards for archive size, unique developers, and unique genres.

[V1.0][03.04.2026]
> MOBILE RESPONSIVE LAYOUTfeatureresponsive

Full mobile support with responsive CSS, flex-wrap layouts, and table overflow handling for small screens.

> PORTUGUESE DESCRIPTIONSi18n

Added localized game descriptions with per-language fields (description_en and description_pt) for each game record.

> SEARCH & SORTINGfeature

Implemented a search bar for filtering games by title or developer. Added sorting by date added.

> GAME DETAIL PAGESfeature

Individual game pages with full metadata display: developer, publisher, release year, genre, engine, and platforms. Added embedded YouTube trailer player and store links.

> LOCALIZATION SYSTEMfeaturei18n

Implemented full bilingual support with English and Portuguese (pt-PT) via cookie-based locale switching and JSON dictionary files.

> PROJECT LAUNCH & CORE FOUNDATIONfeaturelaunch

Initial release of SmellsLikeCodfish. Built the retro terminal interface with VT323 font, CRT scanlines, and phosphor green aesthetic. Connected to Supabase for the game catalogue database.