Skip to content

Release v0.5.1 (#229)#230

Merged
ViktorSvertoka merged 1 commit intodevelopfrom
main
Jan 31, 2026
Merged

Release v0.5.1 (#229)#230
ViktorSvertoka merged 1 commit intodevelopfrom
main

Conversation

@ViktorSvertoka
Copy link
Member

@ViktorSvertoka ViktorSvertoka commented Jan 31, 2026

  • (SP: 1) [Security] Enforce origin posture for shop APIs (admin/checkout same-origin; internal/webhooks non-browser) + docs

  • (SP: 1) [DB] Align stripe_events.order_id FK CASCADE across schema and migrations

  • feat(i18n): localize quiz anti-cheat, header and blog filters (feat(i18n): localize quiz anti-cheat, header and blog filters #175)

  • feat(Blog): Adding last published post to the blog and category page, recommended posts, Changing styles to one unified format, Bug fixes

  • Update leaderboard-style

  • Update leaderboard-style

  • teat(Blog): fix of hover on author, fix of the line

  • (SP: 3) [Observability] Extend structured logging + correlation IDs across all shop routes; purge console.*; enforce explicit error codes

  • (SP: 1) [Admin][Security] Add safe product delete (PRODUCT_IN_USE) + mobile cards UI; tighten env/docs, locale normalization, cache-control, and logging semantics

  • fix: npm installing

  • (SP: 1) [Admin] Align products list in use checks with DB column names (order_items/inventory_moves)

  • fix:Update leaderboard: fixed background

  • fix: remove email from CurrentUser type to prevent PII exposure

  • refactor: align leaderboard UI with brand style (fixed bg, css vars, podium glow)

  • (SP: 1) [Frontend] About Us Page. Fixed game, topics, mobile layout

  • Fixed mobile tabs in FeaturesSection (icon-only on mobile)
  • Fixed game bugs: collision detection, animation, scoring system
  • Added multiple obstacle types with level progression
  • Improved game sizing for mobile while preserving desktop
  • Updated TopicsSection with local SVG icons and hover borders
  • Made DynamicGridBackground static grid opt-in via showStaticGrid prop
  • Limited SponsorsWall to display max 10 sponsors
  • Optimized CommunitySection button layout for mobile
  • refactor: update accent color hover effects to Footer
  • Update Footer links to use --accent-primary on hover
  • Update ThemeToggle icons to use --accent-primary on hover
  • Both components adapt colors to light/dark theme
  • refactor: improve accessibility
  • Add focus-visible styles for keyboard navigation accessibility

  • Implement Groq API with Llama 3.1 70B model
  • Add text selection detection on Q&A page
  • Create floating "Explain" button
  • Build draggable modal with 3-language support (uk/en/pl)
  • Add localStorage caching for instant repeated lookups
  • Implement guest CTA (login/signup)
  • Add rate limiting (10 requests/min)
  • Auth-gated feature (registered users only)

Components:

  • SelectableText: Detects text selection
  • FloatingExplainButton: Appears on selection
  • AIWordHelper: Main modal with explanations
  • (SP: 1) i18n: fix Polish locale and set EN as default

  • Sanity (Sanity #202)

  • feat(Blog):fix for clickable link in post details, fix for author details

  • feat(Blog):refactoring after removing author modal

  • feat(Blog): fix unified date format

  • feat(Blog): Fix for click-outside-to-close search, recommended posts are limited to 3

  • feat(Blog): selectedAuthorData fixed

  • feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added  tags where blog dates renders

  • Sanity (Sanity #203)

  • feat(Blog):fix for clickable link in post details, fix for author details

  • feat(Blog):refactoring after removing author modal

  • feat(Blog): fix unified date format

  • feat(Blog): Fix for click-outside-to-close search, recommended posts are limited to 3

  • feat(Blog): selectedAuthorData fixed

  • feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added  tags where blog dates renders

  • feat(Blog): fix hover social links, fixed duplication not found search

  • (SP: 3) [Frontend] Refactor Header UI and navigation states ((SP: 3) [Frontend] Refactor Header UI and navigation states #201)

  • (SP: 3) [Frontend] Refactor Header UI and navigation states

  • Add icon to the language switcher

  • Add GitHub icon with stars indicator (frontend only)

  • Update logo styles

  • Improve touch interaction styles

  • Verify correct placement and alignment of all header components

  • Make mobile header modal full-screen

  • Disable background scroll when mobile menu is open

  • Highlight active navigation item

  • Update navigation styles:

  • Highlight Shop link when user is on Home pages

  • Highlight Home link when user is on Shop pages

  • Style changes only, no routing or logic changes

  • Refactor QaTabButton to shared CategoryTabButton component
  • Add category accent colors to QuizCard, buttons, progress indicators
  • Standardize colors with CSS variables, traffic light timer
  • Add DynamicGridBackground to quizzes list page
  • Border-only answer feedback, semi-transparent progress styles
  • docs: update .gitignore

  • fix(quiz): align disqualification threshold with warning banner

Changed violationsCount > 3 to >= 3 in QuizResult points block to match the warning banner threshold at line 124.

  • feat(quiz-testing): add quiz unit tests
  • Configure Vitest for quiz module
  • Add test factories and setup utilities
  • Add quiz-crypto tests (13 tests)
  • Add quiz-session tests (12 tests)
  • verify-answer.test.ts: 8 tests for API endpoint

    • Correct/wrong answer verification
    • Validation errors (missing fields, tampered data)
    • Security: rejects modified encrypted answers
  • quiz-anticheat.test.ts: 10 tests for useAntiCheat hook

    • Detects copy, paste, context-menu, tab-switch events
    • Respects isActive flag
    • Reset and cleanup functionality

Total quiz tests: 52 (9 setup + 25 unit + 18 integration)

  • test(quiz): expand test coverage to 90%+ with hooks, API routes, and UI flow

Add 28 new tests covering:

  • useQuizSession hook (6 tests)
  • useQuizGuards hook (8 tests)
  • guest-quiz storage (5 tests)
  • guest-result API route (5 tests)
  • quiz-slug API route (3 tests)
  • QuizContainer UI flow (1 test)

Coverage: 35% -> 90.94% (quiz scope)
Tests: 52 -> 80

  • chore: remove coverage-quiz from git, add to .gitignore

  • chore: add coverage-quiz to .gitignore, fix quiz guards test

  • fix(leaderboard): improve table mobile

  • fix(leaderboard): correct malformed shadow class syntax for avatar glow

  • Feature/leaderboard style update (Feature/leaderboard style update #206)

  • fix:leaderboard update leaderboard-style

  • fix:leaderboard update leaderboard-style on mobile

  • fix: resolve CodeRabbit issues and conflicts

  • fix: move row border to first cell to resolve CodeRabbit issue

  • fix: move row border to first cell to resolve CodeRabbit issue new

  • fix(leaderboard): improve table mobile

  • fix(leaderboard): correct malformed shadow class syntax for avatar glow

  • test(q&a): add comprehensive qa tests and coverage setup ((SP: 2) [QA] Q&A Tests & Coverage #208)

  • test(q&a): add comprehensive qa tests and coverage setup

  • test(q&a): align mocks and reset in qa tests

  • (SP: 1) [Frontend] Remove Contacts References ((SP: 1) [Frontend] Remove Contacts References #211)

  • test(q&a): add comprehensive qa tests and coverage setup

  • test(q&a): align mocks and reset in qa tests

  • chore(nav): remove contacts page references

  • Sanity (Sanity #209)

  • feat(Blog):fix for clickable link in post details, fix for author details

  • feat(Blog):refactoring after removing author modal

  • feat(Blog): fix unified date format

  • feat(Blog): Fix for click-outside-to-close search, recommended posts are limited to 3

  • feat(Blog): selectedAuthorData fixed

  • feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added  tags where blog dates renders

  • feat(Blog): fix hover social links, fixed duplication not found search

  • feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs

  • feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs

  • feat(Blog): Added scroll on the main blog page on filtering by author, fied breadcrumbs category translaion, added category to the recommended cards, fixed search for localisations

  • feat(Blog): Changed image size on the post details page

  • chore(release): update changelog for v0.5.0

  • chore(release): v0.5.0

  • [Refactor] Code Quality Improvements: Accessibility, Mobile Support, … ([Refactor] Code Quality Improvements: Accessibility, Mobile Support, … #213)

  • fix(leaderboard): adjust podium heights for better visibility on desktop

  • Feature/leaderboard style update (Feature/leaderboard style update #214)

  • fix(leaderboard): fix layout centering

  • feat(Blog) (feat(Blog) #216)

  • feat(Blog) (feat(Blog) #218)

  • feat(Blog):fix for clickable link in post details, fix for author details

  • feat(Blog):refactoring after removing author modal

  • feat(Blog): fix unified date format

  • feat(Blog): Fix for click-outside-to-close search, recommended posts are limited to 3

  • feat(Blog): selectedAuthorData fixed

  • feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added  tags where blog dates renders

  • feat(Blog): fix hover social links, fixed duplication not found search

  • feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs

  • feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs

  • feat(Blog): Added scroll on the main blog page on filtering by author, fied breadcrumbs category translaion, added category to the recommended cards, fixed search for localisations

  • feat(Blog): Changed image size on the post details page

  • feat(Blog): added tests

  • feat(Blog): fix for big post on the post page, added tests

  • feat(Blog): resolving comments

  • feat(Blog): fixed hover for social links icins - dark theme

  • (SP: 1) feat(i18n): translate 404 error page ((SP: 1) feat(i18n): translate 404 error page #217)

  • Add 404 translations (uk/en/pl)
  • Implement [Global/Local/Combined] strategy
  • Add helpful navigation links
  • 404 translations (uk/en/pl)
  • Implement Global strategy
  • feat(Blog) (feat(Blog) #222)

  • feat(Blog):fix for clickable link in post details, fix for author details

  • feat(Blog):refactoring after removing author modal

  • feat(Blog): fix unified date format

  • feat(Blog): Fix for click-outside-to-close search, recommended posts are limited to 3

  • feat(Blog): selectedAuthorData fixed

  • feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added  tags where blog dates renders

  • feat(Blog): fix hover social links, fixed duplication not found search

  • feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs

  • feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs

  • feat(Blog): Added scroll on the main blog page on filtering by author, fied breadcrumbs category translaion, added category to the recommended cards, fixed search for localisations

  • feat(Blog): Changed image size on the post details page

  • feat(Blog): added tests

  • feat(Blog): fix for big post on the post page, added tests

  • feat(Blog): resolving comments

  • feat(Blog): fixed hover for social links icins - dark theme

  • feat(Blog): bringing the style on the blog page to a single site style

  • feat(blog): aligning syles

  • feat(blog): resolving comment from CodeRabbit

  • feat(blog):fix comment for deployment

  • Update AI model from 'llama-3.3-70b-versatile' to 'llama3-70b-8192' (Update AI model from 'llama-3.3-70b-versatile' to 'llama3-70b-8192' #223)

  • (SP 2) [Frontend] Update Features section content and improve mobile UX ((SP 2) [Frontend] Update Features section content and improve mobile UX #224)

  • (SP 2) [Frontend] Update Features section content and improve mobile UX

  • Features Section: Refined feature content and visuals.
  • Mobile UX: Improved responsive layout and scaling for feature cards and interactive elements.
  • Visual Enhancements: Added dynamic particle background effects to the Pricing section.
  • fix(review): address accessibility, security, and performance feedback

  • fix(review): resolve accessibility and hydration issues

  • fix(perf): implement frame-rate independent animations

  • fix(review): address accessibility, security, and performance feedback

  • fix(review): enable SSR for features section and support HiDPI canvas

  • fix(review): correct HiDPI logic for particle canvas measurements

  • (SP:3) feat(i18n): add UA and PL translations for shop/admin pages

Add comprehensive i18n support for shop and admin sections in 3 languages (en, uk,
pl).

Translation coverage:

  • Shop pages: main page, products, cart, checkout, orders
  • Admin pages: dashboard, products management, orders management
  • Navigation: header, mobile menu, category links
  • Product components: cards, filters, sort, badges (NEW/SALE)
  • Category names: Apparel, Lifestyle, Collectibles
  • All UI buttons, labels, and actions

Key changes:

  • Added ~250+ translation keys to messages/en.json, messages/uk.json, messages/pl.json
  • Updated 20+ components to use useTranslations() and getTranslations()
  • Implemented color translation in cart and product detail pages
  • Translated hero message
  • Added badge translations
  • fix(i18n): correct translation keys and localization in shop pages

    • Replace confusing error.order with success.orderLabel in checkout success page heading
    • Localize boolean stockRestored display (yes/no instead of true/false) in order details
    • Fix active state detection for shop category links in mobile menu using search params
    • Add missing translation keys (orderLabel, yes, no) to all locales (en, uk, pl)
  • fix(netlify): resolve AI API crash and 404 locale/theme issues

AI fixes:

  • Extract getClientIp to separate file (avoid db import crash)
  • Add missing zod dependency to package.json

404 page fixes:

  • Use NEXT_LOCALE cookie for locale detection on Netlify
  • Add theme detection script in root layout
  • Update styling with hero background and gradient text
  • Update frontend/app/not-found.tsx

  • (SP:3) feat(i18n): translate about page and auth form validation messages

    • Add about page translations (EN, UK, PL)
    • Add auth.fields.validation translations for form errors
  • fix(api): resolve Netlify 503 errors and harden AI explain endpoint

  • Use dynamic import for groq-sdk (Netlify compatibility) - Bypass rate limiting for unknown IPs (serverless safety)
  • Safe JSON parsing with request.text() + empty body check
  • Fix ReferenceError: remove undefined errorMessage variable
  • Remove sensitive debug info from client responses
  • Add i18n keys: pricing.heading, sponsors.ctaAriaLabel
  • feat(api): add GET health check endpoint for ai-explain

  • chore(release): v0.5.1


Description


Related Issue

Issue: #<issue_number>


Changes


Database Changes (if applicable)

  • Schema migration required
  • Seed data updated
  • Breaking changes to existing queries
  • Transaction-safe migration
  • Migration tested locally on Neon

How Has This Been Tested?

  • Tested locally
  • Verified in development environment
  • Checked responsive layout (if UI-related)
  • Tested accessibility (keyboard / screen reader)

Screenshots (if applicable)


Checklist

Before submitting

  • Code has been self-reviewed
  • No TypeScript or console errors
  • Code follows project conventions
  • Scope is limited to this feature/fix
  • No unrelated refactors included
  • English used in code, commits, and docs
  • New dependencies discussed with team
  • Database migration tested locally (if applicable)
  • GitHub Projects card moved to In Review

Reviewers

Summary by CodeRabbit

  • New Features

    • Added comprehensive multi-language support (English, Ukrainian, Polish) across shop, blog, admin, and authentication pages.
    • Introduced AI explain endpoint with rate limiting and health status checks.
    • Enhanced About page with dynamic content, interactive game, and metadata.
    • Added blog search, filtering, and category navigation with featured posts.
    • Implemented theme persistence with instant dark mode initialization.
  • Improvements

    • Expanded animations and particle effects with reduced-motion accessibility support.
    • Enhanced form validation messaging and accessibility across authentication.
    • Improved API error handling and response consistency.
  • Tests

    • Added comprehensive test coverage for blog components and routes.

✏️ Tip: You can customize this high-level summary in your review settings.

* (SP: 1) [Security] Enforce origin posture for shop APIs (admin/checkout same-origin; internal/webhooks non-browser) + docs

* (SP: 1) [DB] Align stripe_events.order_id FK CASCADE across schema and migrations

* feat(i18n): localize quiz anti-cheat, header and blog filters (#175)

* feat(Blog): Adding last published post to the blog and category page, recommended posts, Changing styles to one unified format, Bug fixes

* Update leaderboard-style

* Update leaderboard-style

* teat(Blog): fix of hover on author, fix of the line

* (SP: 3) [Observability] Extend structured logging + correlation IDs across all shop routes; purge console.*; enforce explicit error codes

* (SP: 1) [Admin][Security] Add safe product delete (PRODUCT_IN_USE) + mobile cards UI; tighten env/docs, locale normalization, cache-control, and logging semantics

* fix: npm installing

* (SP: 1) [Admin] Align products list in use checks with DB column names (order_items/inventory_moves)

* fix:Update leaderboard: fixed background

* fix: remove email from CurrentUser type to prevent PII exposure

* refactor: align leaderboard UI with brand style (fixed bg, css vars, podium glow)

* (SP: 1) [Frontend] About Us Page. Fixed game, topics, mobile layout

- Fixed mobile tabs in FeaturesSection (icon-only on mobile)
- Fixed game bugs: collision detection, animation, scoring system
- Added multiple obstacle types with level progression
- Improved game sizing for mobile while preserving desktop
- Updated TopicsSection with local SVG icons and hover borders
- Made DynamicGridBackground static grid opt-in via showStaticGrid prop
- Limited SponsorsWall to display max 10 sponsors
- Optimized CommunitySection button layout for mobile

* refactor: update accent color hover effects to Footer

- Update Footer links to use --accent-primary on hover
- Update ThemeToggle icons to use --accent-primary on hover
- Both components adapt colors to light/dark theme

* refactor: improve accessibility

- Add focus-visible styles for keyboard navigation accessibility

* (SP: 1) [Shop] Fix Stripe checkout success redirect (remove duplicate locale /uk/uk) (#186)

* fix:leaderboard  update leaderboard-style

* fix:leaderboard  update leaderboard-style (#187)

* fix:leaderboard update leaderboard-style on mobile

* fix: resolve CodeRabbit issues and conflicts

* fix:leaderboard update leaderboard-style on mobile (#188)

* fix:leaderboard  update leaderboard-style

* fix:leaderboard update leaderboard-style on mobile

* fix: resolve CodeRabbit issues and conflicts

---------

Co-authored-by: Viktor Svertoka <victor.svertoka@gmail.com>

* (SP: 1) [Frontend] Changing hero headline on shop main page (#190)

* (SP: 1) [Shop] Fix checkout redirect 404 by removing duplicate locale in in-app routes and Stripe return_url

* (SP: 1) [Shop] Fix locale cart page and orderid page

* (SP: 1) [Frontend] Changin hero headline on shop main page

* (SP: 1) [Frontend] Fix styles shop home page, buttons (#191)

* fix: move row border to first cell to resolve CodeRabbit issue

* fix: move row border to first cell to resolve CodeRabbit issue new

* Feature/leaderboard style update (#192)

* (SP: 7) [UI] Quiz UI polish: tabs styling, category accents, color scheme (#181, #193, #194) (#195)

* Sanity (#196)

* feat(Blog):fix for clickable link in post details, fix for author details

* feat(Blog):refactoring after removing author modal

* feat(Blog): fix unified date format

* (SP: 3) [AI] Add AI word helper with Groq integration (#200)

* (SP: 3) [AI] Add AI word helper with Groq integration

- Implement Groq API with Llama 3.1 70B model
- Add text selection detection on Q&A page
- Create floating "Explain" button
- Build draggable modal with 3-language support (uk/en/pl)
- Add localStorage caching for instant repeated lookups
- Implement guest CTA (login/signup)
- Add rate limiting (10 requests/min)
- Auth-gated feature (registered users only)

Components:
- SelectableText: Detects text selection
- FloatingExplainButton: Appears on selection
- AIWordHelper: Main modal with explanations

* (SP: 1) i18n: fix Polish locale and set EN as default

* Sanity (#202)

* feat(Blog):fix for clickable link in post details, fix for author details

* feat(Blog):refactoring after removing author modal

* feat(Blog): fix unified date format

* feat(Blog): Fix for  click-outside-to-close search, recommended posts are limited to 3

* feat(Blog): selectedAuthorData fixed

* feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added <time datetime> tags where blog dates renders

* Sanity (#203)

* feat(Blog):fix for clickable link in post details, fix for author details

* feat(Blog):refactoring after removing author modal

* feat(Blog): fix unified date format

* feat(Blog): Fix for  click-outside-to-close search, recommended posts are limited to 3

* feat(Blog): selectedAuthorData fixed

* feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added <time datetime> tags where blog dates renders

* feat(Blog): fix hover social links, fixed duplication not found search

* (SP: 3) [Frontend] Refactor Header UI and navigation states (#201)

* (SP: 3) [Frontend] Refactor Header UI and navigation states

- Add icon to the language switcher

- Add GitHub icon with stars indicator (frontend only)

- Update logo styles

- Improve touch interaction styles

- Verify correct placement and alignment of all header components

- Make mobile header modal full-screen

- Disable background scroll when mobile menu is open

- Highlight active navigation item

- Update navigation styles:

- Highlight Shop link when user is on Home pages
- Highlight Home link when user is on Shop pages
- Style changes only, no routing or logic changes

* fix CodeRabbit

* update HeaderButton styles

* fix: add accessibility for HeaderButton

* (SP: 3) [Testing] Vitest config + unit + integration tests for quiz module (#204)

* feat(quiz-ui): quiz UI polish - tabs, category accents, color scheme (issues #181, #193, #194)

- Refactor QaTabButton to shared CategoryTabButton component
- Add category accent colors to QuizCard, buttons, progress indicators
- Standardize colors with CSS variables, traffic light timer
- Add DynamicGridBackground to quizzes list page
- Border-only answer feedback, semi-transparent progress styles

* docs: update .gitignore

* fix(quiz): align disqualification threshold with warning banner

Changed violationsCount > 3 to >= 3 in QuizResult points block
to match the warning banner threshold at line 124.

* feat(quiz-testing): add quiz unit tests

- Configure Vitest for quiz module
- Add test factories and setup utilities
- Add quiz-crypto tests (13 tests)
- Add quiz-session tests (12 tests)

* test(quiz): add integration tests for verify-answer API and useAntiCheat hook (#199)

- verify-answer.test.ts: 8 tests for API endpoint
  - Correct/wrong answer verification
  - Validation errors (missing fields, tampered data)
  - Security: rejects modified encrypted answers

- quiz-anticheat.test.ts: 10 tests for useAntiCheat hook
  - Detects copy, paste, context-menu, tab-switch events
  - Respects isActive flag
  - Reset and cleanup functionality

Total quiz tests: 52 (9 setup + 25 unit + 18 integration)

* test(quiz): expand test coverage to 90%+ with hooks, API routes, and UI flow

Add 28 new tests covering:
- useQuizSession hook (6 tests)
- useQuizGuards hook (8 tests)
- guest-quiz storage (5 tests)
- guest-result API route (5 tests)
- quiz-slug API route (3 tests)
- QuizContainer UI flow (1 test)

Coverage: 35% -> 90.94% (quiz scope)
Tests: 52 -> 80

* chore: remove coverage-quiz from git, add to .gitignore

* chore: add coverage-quiz to .gitignore, fix quiz guards test

* fix(leaderboard): improve table mobile

* fix(leaderboard): correct malformed shadow class syntax for avatar glow

* Feature/leaderboard style update (#206)

* fix:leaderboard  update leaderboard-style

* fix:leaderboard update leaderboard-style on mobile

* fix: resolve CodeRabbit issues and conflicts

* fix: move row border to first cell to resolve CodeRabbit issue

* fix: move row border to first cell to resolve CodeRabbit issue new

* fix(leaderboard): improve table mobile

* fix(leaderboard): correct malformed shadow class syntax for avatar glow

* test(q&a): add comprehensive qa tests and coverage setup (#208)

* test(q&a): add comprehensive qa tests and coverage setup

* test(q&a): align mocks and reset in qa tests

* (SP: 1) [Frontend] Remove Contacts References (#211)

* test(q&a): add comprehensive qa tests and coverage setup

* test(q&a): align mocks and reset in qa tests

* chore(nav): remove contacts page references

* Sanity (#209)

* feat(Blog):fix for clickable link in post details, fix for author details

* feat(Blog):refactoring after removing author modal

* feat(Blog): fix unified date format

* feat(Blog): Fix for  click-outside-to-close search, recommended posts are limited to 3

* feat(Blog): selectedAuthorData fixed

* feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added <time datetime> tags where blog dates renders

* feat(Blog): fix hover social links, fixed duplication not found search

* feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs

* feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs

* feat(Blog): Added scroll on the main blog page on filtering by author, fied breadcrumbs category translaion, added category to the recommended cards, fixed search for localisations

* feat(Blog): Changed image size on the post details page

* chore(release): update changelog for v0.5.0

* chore(release): v0.5.0

* [Refactor] Code Quality Improvements: Accessibility, Mobile Support, … (#213)

* fix(leaderboard): adjust podium heights for better visibility on desktop

* Feature/leaderboard style update (#214)

* fix(leaderboard): fix layout centering

* feat(Blog) (#216)

* feat(Blog) (#218)

* feat(Blog):fix for clickable link in post details, fix for author details

* feat(Blog):refactoring after removing author modal

* feat(Blog): fix unified date format

* feat(Blog): Fix for  click-outside-to-close search, recommended posts are limited to 3

* feat(Blog): selectedAuthorData fixed

* feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added <time datetime> tags where blog dates renders

* feat(Blog): fix hover social links, fixed duplication not found search

* feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs

* feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs

* feat(Blog): Added scroll on the main blog page on filtering by author, fied breadcrumbs category translaion, added category to the recommended cards, fixed search for localisations

* feat(Blog): Changed image size on the post details page

* feat(Blog): added tests

* feat(Blog): fix for big post on the post page, added tests

* feat(Blog): resolving comments

* feat(Blog): fixed hover for social links icins - dark theme

* (SP: 1) feat(i18n): translate 404 error page (#217)

- Add 404 translations (uk/en/pl)
- Implement [Global/Local/Combined] strategy
- Add helpful navigation links

* (SP: 2) [Frontend] Refactor Home HeroSection and Footer stylestor/home (#221)

* (SP:1) fix: 404 page layout (#219)

- 404 translations (uk/en/pl)
- Implement Global strategy

* feat(Blog) (#222)

* feat(Blog):fix for clickable link in post details, fix for author details

* feat(Blog):refactoring after removing author modal

* feat(Blog): fix unified date format

* feat(Blog): Fix for  click-outside-to-close search, recommended posts are limited to 3

* feat(Blog): selectedAuthorData fixed

* feat(Blog): Added description for /blog/[slug] metadata, Added Schema.org JSON‑LD for Article (BlogPosting) and BreadcrumbList , Added <time datetime> tags where blog dates renders

* feat(Blog): fix hover social links, fixed duplication not found search

* feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs

* feat(Blog): Added: breadcrumbs to the post details page and updated the BreadcrumbList, logo to the cocial links in User info, Fixed: main container alignment, category navigation in breadcrumbs

* feat(Blog): Added scroll on the main blog page on filtering by author, fied breadcrumbs category translaion, added category to the recommended cards, fixed search for localisations

* feat(Blog): Changed image size on the post details page

* feat(Blog): added tests

* feat(Blog): fix for big post on the post page, added tests

* feat(Blog): resolving comments

* feat(Blog): fixed hover for social links icins - dark theme

* feat(Blog): bringing the style on the blog page to a single site style

* feat(blog): aligning syles

* feat(blog): resolving comment from CodeRabbit

* feat(blog):fix comment for deployment

* Update AI model from 'llama-3.3-70b-versatile' to 'llama3-70b-8192' (#223)

* (SP 2) [Frontend] Update Features section content and improve mobile UX (#224)

* (SP 2) [Frontend] Update Features section content and improve mobile UX

- Features Section: Refined feature content and visuals.
- Mobile UX: Improved responsive layout and scaling for feature cards and interactive elements.
- Visual Enhancements: Added dynamic particle background effects to the Pricing section.

* fix(review): address accessibility, security, and performance feedback

* fix(review): resolve accessibility and hydration issues

* fix(perf): implement frame-rate independent animations

* fix(review): address accessibility, security, and performance feedback

* fix(review): enable SSR for features section and support HiDPI canvas

* fix(review): correct HiDPI logic for particle canvas measurements

* (SP:3) feat(i18n): add UA and PL translations for shop/admin pages

Add comprehensive i18n support for shop and admin sections in 3 languages (en, uk,
  pl).

  Translation coverage:
  - Shop pages: main page, products, cart, checkout, orders
  - Admin pages: dashboard, products management, orders management
  - Navigation: header, mobile menu, category links
  - Product components: cards, filters, sort, badges (NEW/SALE)
  - Category names: Apparel, Lifestyle, Collectibles
  - All UI buttons, labels, and actions

  Key changes:
  - Added ~250+ translation keys to messages/en.json, messages/uk.json,
  messages/pl.json
  - Updated 20+ components to use useTranslations() and getTranslations()
  - Implemented color translation in cart and product detail pages
  - Translated hero message
  - Added badge translations

* fix(i18n): correct translation keys and localization in shop pages

  - Replace confusing error.order with success.orderLabel in checkout success page
  heading
  - Localize boolean stockRestored display (yes/no instead of true/false) in order
  details
  - Fix active state detection for shop category links in mobile menu using search
  params
  - Add missing translation keys (orderLabel, yes, no) to all locales (en, uk, pl)

* fix(netlify): resolve AI API crash and 404 locale/theme issues

AI fixes:
  - Extract getClientIp to separate file (avoid db import crash)
  - Add missing zod dependency to package.json

  404 page fixes:
  - Use NEXT_LOCALE cookie for locale detection on Netlify
  - Add theme detection script in root layout
  - Update styling with hero background and gradient text

* Update frontend/app/not-found.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* (SP:3) feat(i18n): translate about page and auth form validation messages

  - Add about page translations (EN, UK, PL)
  - Add auth.fields.validation translations for form errors

* fix(api): resolve Netlify 503 errors and harden AI explain endpoint

 - Use dynamic import for groq-sdk (Netlify compatibility)                                                    - Bypass rate limiting for unknown IPs (serverless safety)
  - Safe JSON parsing with request.text() + empty body check
  - Fix ReferenceError: remove undefined errorMessage variable
  - Remove sensitive debug info from client responses
  - Add i18n keys: pricing.heading, sponsors.ctaAriaLabel

* feat(api): add GET health check endpoint for ai-explain

* chore(release): v0.5.1

---------

Co-authored-by: liudmylasovetovs <milkaegik@gmail.com>
Co-authored-by: Tetiana Zorii <131365289+TiZorii@users.noreply.github.com>
Co-authored-by: Anna <komrakova.anna@gmail.com>
Co-authored-by: AlinaRyabova <alinavr7@gmail.com>
Co-authored-by: Yevhenii Datsenko <yevheniydatsenko@gmail.com>
Co-authored-by: YNazymko12 <yulychka12@gmail.com>
Co-authored-by: liudmylasovetovs <127711697+liudmylasovetovs@users.noreply.github.com>
Co-authored-by: AlinaRyabova <115992255+AlinaRyabova@users.noreply.github.com>
Co-authored-by: Lesia Soloviova <106915140+LesiaUKR@users.noreply.github.com>
Co-authored-by: Yuliia Nazymko <122815071+YNazymko12@users.noreply.github.com>
Co-authored-by: Yevhenii Datsenko <134847096+yevheniidatsenko@users.noreply.github.com>
Co-authored-by: tetiana zorii <tanyusha.zoriy@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@netlify
Copy link

netlify bot commented Jan 31, 2026

Deploy Preview for devlovers ready!

Name Link
🔨 Latest commit eb46ed1
🔍 Latest deploy log https://app.netlify.com/projects/devlovers/deploys/697dde3ef5cf92000853432d
😎 Deploy Preview https://deploy-preview-230--devlovers.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@ViktorSvertoka ViktorSvertoka merged commit 31f3853 into develop Jan 31, 2026
9 of 11 checks passed
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 31, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

This is a comprehensive internationalization (i18n) and UI refactoring effort affecting 80+ files. Changes include: extensive translation integration across shop, blog, and about pages via next-intl; introduction of new UI components (GradientBadge, ParticleCanvas, SectionHeading, DynamicGridBackground); relocation of HeroSection; blog layout restructuring with new wrapper components; AI explain API route hardening with rate limiting and client IP extraction; animation CSS updates; and multilingual message JSON expansions for English, Ukrainian, and Polish.

Changes

Cohort / File(s) Summary
Changelog & Release Metadata
CHANGELOG.md
Added v0.5.1 release entry with Added, Changed, and Fixed sections.
About Page & Components
frontend/app/[locale]/about/page.tsx, frontend/components/about/*
Added metadata generation for about page; localized CommunitySection, FeaturesSection, HeroSection, InteractiveGame, PricingSection, SponsorsWall, TopicsSection with translation hooks and updated component structure (added GradientBadge, SectionHeading, ParticleCanvas usage).
Blog Pages & Layout
frontend/app/[locale]/blog/page.tsx, frontend/app/[locale]/blog/[slug]/PostDetails.tsx, frontend/app/[locale]/blog/category/[category]/page.tsx
Wrapped blog content with DynamicGridBackground; added searchParams support to blog listing; introduced BlogPageHeader component conditional rendering; changed layout from center to left-aligned; updated breadcrumb navigation.
Blog Components
frontend/components/blog/BlogFilters.tsx, frontend/components/blog/BlogPageHeader.tsx, frontend/components/blog/FeaturedPostCtaButton.tsx
Added author URL synchronization in filters; introduced new BlogPageHeader and FeaturedPostCtaButton components; updated featured post layout with absolute positioning.
Shop Admin Pages & Components
frontend/app/[locale]/shop/admin/orders/page.tsx, frontend/app/[locale]/shop/admin/orders/[id]/RefundButton.tsx, frontend/app/[locale]/shop/admin/products/page.tsx, frontend/app/[locale]/shop/admin/page.tsx
Comprehensively localized all admin UI strings via getTranslations; added translation lookups for titles, labels, table headers, status messages.
Shop Pages
frontend/app/[locale]/shop/page.tsx, frontend/app/[locale]/shop/products/page.tsx, frontend/app/[locale]/shop/products/[slug]/page.tsx, frontend/app/[locale]/shop/cart/page.tsx, frontend/app/[locale]/shop/checkout/...
Localized shop UI across product pages, cart, and checkout flows; added color translation helper in cart; replaced static strings with t(...) lookups.
Shop Components
frontend/components/shop/add-to-cart-button.tsx, frontend/components/shop/catalog-products-client.tsx, frontend/components/shop/category-tile.tsx, frontend/components/shop/product-filters.tsx, frontend/components/shop/product-sort.tsx, frontend/components/shop/header/nav-links.tsx, frontend/components/shop/admin/*
Added i18n support across shop components; converted several to async functions for server-side translation loading; removed hard-coded NAV_LINKS constant.
404 Page
frontend/app/[locale]/not-found.tsx, frontend/app/not-found.tsx
Deleted locale-specific 404 page; added new root 404 page with locale detection via cookies and localized text for uk/en/pl.
Home Components
frontend/components/home/HeroSection.tsx, frontend/components/home/HeroBackground.tsx, frontend/components/home/HeroCodeCards.tsx, frontend/components/home/CodeCard.tsx, frontend/components/home/InteractiveCTAButton.tsx
Introduced new home-specific HeroSection with decorative components (HeroBackground, HeroCodeCards); added CodeCard and InteractiveCTAButton for animated CTA cycling.
Shared Components
frontend/components/shared/HeroSection.tsx, frontend/components/shared/Footer.tsx, frontend/components/shared/OnlineCounterPopup.tsx
Removed old shared HeroSection (moved to home folder); updated Footer styling and link classes; localized OnlineCounterPopup.
Header & Navigation
frontend/components/header/AppMobileMenu.tsx, frontend/components/header/MainSwitcher.tsx
Added locale-driven navigation labels via translations; removed min-height constraint for QA/home paths.
Q&A Components
frontend/components/q&a/AccordionList.tsx, frontend/components/q&a/FloatingExplainButton.tsx, frontend/components/q&a/HighlightCachedTerms.tsx, frontend/components/q&a/SelectableText.tsx
Updated AccordionList to use exported CACHE_KEY; improved FloatingExplainButton ref management for callbacks; added keyboard and focus accessibility to HighlightCachedTerms; refactored SelectableText from mouseUp to selectionchange-based event handling.
Leaderboard Components
frontend/components/leaderboard/LeaderboardPodium.tsx, frontend/components/leaderboard/LeaderboardTable.tsx
Adjusted rank heights (1: 70%, 2: 40%, 3: 20%); removed max-w-4xl constraint on LeaderboardTable.
UI Components & Utilities
frontend/components/ui/gradient-badge.tsx, frontend/components/ui/particle-canvas.tsx, frontend/components/ui/section-heading.tsx
Added new GradientBadge and SectionHeading components; introduced ParticleCanvas with 3D particle animation and shape morphing (brackets/heart).
API Routes
frontend/app/api/ai/explain/route.ts
Enhanced with diagnostics logging, per-IP rate limiting with bypass for unknown IPs, dynamic Groq SDK import, model switch to llama3-70b-8192, structured error handling, and new GET health endpoint; exported runtime = 'nodejs'.
Global Styles & Animations
frontend/app/globals.css
Replaced float-soft/pulse-soft animations with wave-based and clip-path animations; added extensive utility classes (animate-slide-up-gradient, animate-wave-slide-up, animate-text-fade-in, etc.); added prefers-reduced-motion rule.
Layout & Theme
frontend/app/layout.tsx
Added inline script for theme initialization via localStorage and system preference detection.
Security & Utilities
frontend/lib/security/client-ip.ts, frontend/lib/ai/explainCache.ts, frontend/lib/home/cta-variants.ts
Added getClientIp utilities with header-based IP extraction and trust strategy; enhanced explainCache with validation and default helpers; introduced createCTAVariants for CTA styling.
Shop Data
frontend/lib/shop/data.ts
Removed hero property from HomepageContent interface and data payload.
Translation Messages
frontend/messages/en.json, frontend/messages/uk.json, frontend/messages/pl.json
Added extensive new sections: mobileMenu, shop (with 10+ nested subsections), onlineCounter, auth.fields.validation; expanded about namespace with hero, topics, features, pricing, sponsors, community; +500+ lines per file.
Test Files
frontend/components/tests/blog/*, frontend/components/tests/*.test.tsx, frontend/lib/tests/*
Added comprehensive test suites for BlogCard, BlogCategoryGrid, BlogCategoryLinks, BlogFilters, BlogGrid, BlogHeaderSearch, BlogNavLinks, and blog/blog-author/blog-search API routes.
Configuration & Package
frontend/package.json, frontend/tsconfig.json, frontend/vitest.config.ts, frontend/vitest.setup.ts
Added test scripts (test:blog, test:blog:coverage); added zod and @testing-library/jest-dom dependencies; added vitest/globals and @testing-library/jest-dom to tsconfig types; added vitest.setup.ts with @testing-library/jest-dom/vitest import.
Utilities & Proxies
frontend/proxy.ts, frontend/project-structure.txt
Added NEXT_LOCALE cookie with path '/' and SameSite 'lax'; updated project structure documentation with new component/module additions.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Possibly related PRs

Suggested labels

refactor, internationalization, ui-enhancement

Suggested reviewers

  • AM1007

🐰 A rabbit's whisper on these changes grand,
Translations flowing across the land,
From blog to shop, with DynamicGrids they dance,
New particles swirl, animations entrance!
A refactor so vast, with languages three—
DevLovers blooms brighter for all to see! 🌱

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch main

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@netlify
Copy link

netlify bot commented Jan 31, 2026

Deploy Preview for develop-devlovers canceled.

Name Link
🔨 Latest commit eb46ed1
🔍 Latest deploy log https://app.netlify.com/projects/develop-devlovers/deploys/697dde3e94398800080e0b5a

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant