Changelog

  • Analytics and cookie consent

    2026/06

    • New cookie consent banner (GDPR) with options to accept all, reject or configure by category
    • Necessary cookies (language, session, theme) are told apart from analytics cookies, which are not loaded until you accept them
    • Google Analytics 4 integration with Consent Mode v2 (denied by default), subject to consent and excluded in development and for administrators
    • You can review or withdraw your consent at any time from the footer or the privacy policy
    • Privacy and cookie policy updated with the actual list of cookies, their purpose, duration and legal basis

  • First-time experience (MVP)

    2026/06

    • Redesigned home page: a short explanation of the catalog, filters and planning, with calls to action to the fish catalog and to create a planned aquarium
    • Aquarium list with status, calculated litres, number of inhabitants and the main compatibility warning
    • Fish profile with visible actions to add to favourites and to a planned aquarium (with a suggested quantity and an empty state that invites you to create the aquarium)
    • Texts reviewed to avoid mixing Spanish and English in profiles and in the messages of the add-species flow
    • Mobile usability improvements: fish profile, aquarium page, planned aquarium form and compatibility warnings

  • Planned compatibility

    2026/06

    • New compatibility summary calculated from the aquarium's target parameters (without relying on measurements)
    • Warnings per species and an overall summary with a recommendation: recommended, recommended with warnings or not recommended
    • Temperature, pH, GH, water type, size/litres and behaviour (aggression, schooling, territoriality) are checked, as well as compatibility between species
    • Severity per warning (informative, warning or critical) with easy-to-understand texts
    • It is a warning calculated in real time, separate from saved notifications, and it doesn't block any action

  • Planned aquarium

    2026/06

    • Aquariums are now created as "planned": design them before setting them up
    • Editable target parameters (temperature, pH, GH and KH) and water type, with range validation
    • Visible status (Planned / Active) in the list and on the aquarium page
    • Button to activate the aquarium once you set it up, keeping its species and target parameters
    • New calls to action to plan an aquarium from the home page and from species profiles

  • Favourites

    2026/06

    • Mark fish, plants and invertebrates as favourites from their profile and from the lists
    • New "Favourites" page with filters by type and name to review and remove your saved items
    • Visitors who aren't signed in see the favourite button and are taken to sign in, then brought back to the page they were on

  • Transitions and animations

    2026/06

    • Smooth fade transition when navigating between pages (0.2 s, respects prefers-reduced-motion)
    • Hover with scale and shadow on main buttons; :active with 0.97 scale for tactile feedback
    • Header icon buttons (theme, language, units) scale to 1.08 on hover
    • Staggered entrance animation (fadeSlideUp, 50 ms between cards) in the fish, plant and invertebrate catalogs
    • Skeleton loaders with an animated shimmer in catalogs while data loads
    • Save buttons show a spinner while saving and a success checkmark for 1 second

  • Images: security, performance and UX

    2026/06

    • Image validation by magic bytes (JPEG, PNG, WebP) to reject malicious files disguised as images
    • Per-user storage limit (500 MB) with tracking of bytes used
    • Upload rate limiting: at most 20 images per hour per user
    • Storage abstraction with LocalStorageProvider (ready for S3/Azure Blob)
    • Daily automatic clean-up of orphaned images with no reference in the database
    • Native lazy loading with loading="lazy/eager" on every image element
    • Upload progress indicator (X/total counter), per-image errors and a button disabled while processing

  • Security

    2026/06

    • Removed logging of OAuth tokens (AccessToken/RefreshToken) in Google sign-in
    • Stronger password policy: at least 12 characters, with a digit, an uppercase letter and a special character required
    • Lockout increased to 30 minutes after 3 failed attempts
    • Rate limiting: at most 10 requests/min on Identity pages and 20 image uploads/hour
    • HTTP security headers: X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy and Content-Security-Policy
    • Authentication cookies set to HttpOnly, SecurePolicy Always, SameSite Strict and a 31-day sliding expiry
    • AllowedHosts restricted to the real domains; validation with Url.IsLocalUrl() when changing language

  • Aquarium equipment: maintenance and power use

    2026/06

    • Configurable maintenance interval per piece of equipment with a visual badge (overdue / due soon / date)
    • "Log maintenance" button that updates the date and clears the reminder notification
    • Automatic Warning notification when maintenance is overdue
    • Watts (W) field per device and a summary of total power use, monthly estimate in kWh and cost if you have set your price per kWh
    • New "Price per kWh" field in the user profile

  • Global search

    2026/06

    • Search box always visible in the header, showing fish, plant, invertebrate, habitat and blog results in a dropdown grouped by category
    • 300 ms debounce, closes with Escape or a click outside, expandable on mobile
    • The fish, plant and invertebrate search pages also return results by taxonomic family name
    • The "View all" links in the dropdown take you to the search page with the filter already applied

  • Sponsored Amazon products

    2026/06

    • Amazon product suggestions on fish, plant and invertebrate profiles, prioritised in context by species, family and section
    • Block of relevant products on aquarium pages and blog posts
    • Full management from the admin panel at /admin/sponsored

  • Aquarium management

    2026/06

    • Aquarium deletion with a 7-day grace period and the option to cancel
    • Clone your own aquarium or a public one as a starting point
    • Inhabitant history: record of additions and removals with the reason for removal

  • Technical SEO

    2026/06

    • Section-specific Open Graph image (fish, plants, invertebrates, habitats, algae)
    • Lazy loading on the main image of blog posts
    • Audit and verification of canonical, breadcrumbs, h1 and metadata on every public page

  • Compatibility

    2025/09

    • Added compatibility between fish
    • Added compatibility between invertebrates
    • Added compatibility between fish and invertebrates

  • Various changes, version 2

    2025/08

    • Added habitats to fish, plants and invertebrates
    • Geographic map of where the fish live
    • Option to search by region or country
    • Recommended minimum aquarium dimensions for fish
    • Small display improvements in Water parameters and Minimum tank size

  • First changelog entries

    2025/03

    • Added light requirements, light spectrum, CO2 requirements, natural growth, soil requirements and maximum size fields to plants