Pattterns Logo

Pattterns

Changelog

All notable changes to the Pattterns application.

1.24.0- 2025-09-22

Fixed

  • Persistent Footer Hydration Error: Finally resolved the long-standing React hydration error in the footer by rewriting the component from scratch. It now correctly defers rendering of the dynamic copyright year and version number until after client-side hydration, guaranteeing a match between the server and client initial render. This resolves a major point of instability.

Added

  • Footer Technical Documentation: Created a new Footer.md file to serve as technical documentation, detailing the cause of the hydration errors and the robust useState/useEffect pattern used to solve it. This will prevent future regressions.

1.22.0- 2025-09-14

Added

  • Centralized Configuration: Created a new src/config/site.ts file to centralize global constants like feed limits, page sizes, and user cooldown periods, improving maintainability.
  • Reserved Usernames: Implemented a comprehensive list of reserved usernames in src/config/reserved-usernames.ts to prevent the registration of sensitive or brand-related names.
  • Quick Edit for Presets: Added an "Edit" icon to the Generation Form, linking directly to the profile page for easier management of preset phrases.

Fixed

  • Legal Page Hydration Errors: Corrected invalid HTML structure (e.g., <ul> inside <p>) on all legal pages to resolve React hydration errors.
  • Legal Page Styling: Applied custom, targeted typography styles to all legal pages (/legal/*) for improved readability and a professional appearance, resolving issues with overriding CSS classes.
  • Changelog Hydration Error: Replaced dangerouslySetInnerHTML with a safe parsing component on the changelog page to resolve a React hydration mismatch.

1.21.0- 2025-08-30

Changed

  • Public by Default: All newly generated patterns are now public by default to encourage immediate community sharing and discovery. Users retain full control to make them private at any time.

1.20.0- 2025-08-26

Added

  • Username Change Policy: Users can now only change their username once every 90 days to promote account stability.
  • Dynamic Changelog Page: The static changelog.html has been replaced with a dynamic Next.js page at /changelog for a more integrated site experience.

Changed

  • Username Length: The maximum character limit for usernames has been increased from 20 to 30 characters.

Fixed

  • Profile Page Crash: Fixed a critical runtime error (form.enable is not a function) on the profile page that occurred when checking username change eligibility.

1.19.0- 2025-08-18

Added

  • Gated Routes: Secured the core application pages (/app, /history, /profile) to ensure they are only accessible to logged-in users, displaying a clear sign-in prompt for guests.

Changed

  • Admin Security: The /admin dashboard is now properly gated on the server-side, preventing any page content from flashing for unauthorized users and redirecting them immediately.

Fixed

  • Build Failure: Corrected a syntax error (DMCA PolicyPage) in the DMCA policy page that was causing the production build to fail.
  • Build Warning: Removed an invalid missingSuspenseWithCSRBailout key from next.config.ts.
  • Runtime Crash: Resolved a critical runtime error on the /gallery page by correctly wrapping it with the PatternWeaverProvider, ensuring its components have access to the necessary context.

1.18.0- 2025-08-18

Added

  • Dynamic & Interactive Hero: The landing page now features a visually engaging hero section where the main brand name, "Pattterns," has its background dynamically synced with a carousel of featured user creations.
  • Customizable Brand Name: Styled the hero brand name with a bold font, an inset clipped background, and a custom red brushstroke underline for a unique look.

Changed

  • Branding Update: The official brand name has been updated from "Pattern Weaver" to "Pattterns" across the entire application and all documentation.
  • Official Logo: Replaced the previous placeholder icon with the official ttt-logo.png across all headers, footers, and sidebars.
  • Domain Update: The authentication domain has been set to the official pattterns.ca to ensure correct sign-in functionality with a custom domain.
  • Font Update: The primary headline font has been changed to "Inter" for a more modern and clean aesthetic.
  • UI Polish: The monthly/yearly pricing toggle has been updated to a sleek, pill-shaped design for better usability.

Fixed

  • Critical Bug Fix: Resolved a ReferenceError: React is not defined error in the HeroCarousel component that was preventing the landing page from rendering.

1.17.0- 2025-08-18

Added

  • Quick High-Res Downloads: Logged-in users can now download the high-resolution (2048px) version of a pattern directly from a convenient button on the pattern cards in the gallery and history pages.

Changed

  • Dynamic Header Navigation: The main landing page header is now smarter. It shows a "My Patterns" link to logged-in users instead of the generic "Pricing" link, providing a more personalized experience.

Fixed

  • Mobile History Page Layout: Resolved a critical UI bug on the /history page where the list view would overflow on mobile screens. All actions are now neatly consolidated into a space-saving dropdown menu for a clean, touch-friendly experience.
  • Build Error: Fixed a React build error in HistoryPageContent.tsx caused by an improperly scoped component definition (DeleteConfirmationDialog).
  • CSS Bug: Corrected a CSS positioning issue where the "public" globe icon was not properly contained within its parent element on the history page, causing it to render in the wrong location.

1.16.0- 2025-08-16

Added

  • Pricing Section: Added a new, clear pricing section to the landing page with "Hobbyist" (free) and "Professional" (paid) tiers.
  • Pricing Link in Header: Added a "Pricing" link to the main landing page header that smoothly scrolls to the new section.

1.15.0- 2025-08-06

Added

  • Featured Creator Restoration: The "Featured Creator" card has been restored to the community gallery page, highlighting a special member of the community.
  • Robust Feed Service: Created a new, dedicated feed.service.ts to handle all public-facing data queries, including fetching the community feed and the featured creator.

Fixed

  • History Page Bug: Fixed a critical bug where a typo in a collection name (patterns instead of patterns) caused the "My Patterns" history page to appear empty.
  • Build Failures: Resolved multiple "Module not found" errors in actions.ts caused by incorrect import paths after a previous rollback.
  • Landing Page Crash: Fixed a bug where the landing page was trying to import a non-existent server action, causing the application to fail to build.

1.14.0- 2025-08-06

Added

  • Architecture Refactor: Broke down the monolithic pattern-service.ts into smaller, single-responsibility services for patterns, users, feed, and admin functions to improve maintainability and scalability.
  • Scalable Public Feed: Implemented a dedicated top-level public_feed collection in Firestore. This denormalizes data for a highly efficient, single-query feed, replacing the previous, less scalable approach.

Fixed

  • Bug Fix: Corrected a critical bug where making a pattern "public" or "private" was not working due to issues in the database service layer after previous refactors.
  • Bug Fix: Resolved a Firestore query issue that caused public user profile pages to crash when fetching patterns. The query logic was updated to avoid needing a manual composite index.

1.0.13- 2025-08-05

Added

  • Featured Creator Card: A new, wide-format FeaturedMemberCard now highlights the community's single featured creator for special recognition.
  • Admin "Featured" Toggle: Admins can now set exactly one user as "Featured" from the admin dashboard. The UI enforces that only one user can be featured at a time.
  • "Top Creators" Page: A new leaderboard page at /top showcases the most-loved creators, sorted by their "love" count.
  • Community CTA Card: A new reusable component (CommunityCtaCard) prompts users to join the community or make their patterns public. It's used on the gallery and leaderboard pages.
  • Gallery Page: A new page at /gallery that displays the latest public patterns from all users in the community.
  • Pattern Card: A new component to display a pattern's thumbnail and its owner's information, used on the gallery page.
  • Public Profile Page Crash Fix: Fixed a critical bug where user profile pages would crash if a composite index was not present in Firestore. The query logic was updated to be more resilient.

Changed

  • UI/UX: Updated the main navigation to include links to the new "Community" (gallery) and "Top" (leaderboard) pages.

1.0.12- 2025-08-04

Added

  • Admin Dashboard: A new, secure page at /admin for administrators.
  • Admin Stats: The dashboard displays key application statistics, such as the total number of registered users.
  • Admin User List: Admins can now view a complete, sortable list of all registered users, including their display name, email, username, love count, and public pattern count.
  • Love/Unlove Profile: Users can now "love" a creator's profile. The love count is displayed publicly. The action is transactional to ensure data consistency.
  • Public User Profiles: User profiles are now public at /u/<username>. They display the user's information and a gallery of their public patterns.
  • Showcase Best Pattern: Users can now select one of their saved patterns as their "Best Pattern," which is featured prominently on their public profile page.

Changed

  • Refactor: The getPublicUsers service was updated to correctly sort users by loveCount.
  • UI: Added a User icon to the "Total Users" card in the admin dashboard for better visual clarity.