Back to Home

Changelog

A history of updates, fixes, and new features. For the full commit history, see our GitHub commits.

v3.0.0July 17, 2026
Changed

Complete site redesign — moved from a dashboard-oriented sidebar layout to a content-first design with a horizontal top navigation bar

Added

Mintlify-style mega menu: "Learn" dropdown (2×2 grid: Lessons, Grammar, Quizzes, Progress), "Blog" dropdown (categories + lazy-loaded latest posts), "About" simple dropdown

Added

Responsive mobile drawer menu with accordion-style expandable sections for Learn, Blog, and About

Changed

Homepage completely rewritten as a proper landing page (hero, stats strip, 3-column features, how-it-works steps, latest blog posts, FAQ, final CTA) — no longer a personal dashboard

Added

FAQPage schema on the homepage for Google rich result eligibility

Changed

Footer redesigned as a 3-column layout: brand + CC0 license, Learn links, Company links

Removed

Left sidebar and bottom mobile nav replaced by the new top navigation bar

Added

Editor's Picks / highlighted posts system — tick the "Highlight this post" checkbox in the CMS to feature a post in a dedicated section on the blog page and below the TOC on every single post

Added

Google AdSense auto ads scoped to blog pages only (/blog and /blog/*) — homepage, lessons, grammar, and quizzes are ad-free

Added

ads.txt file at /ads.txt for Google AdSense publisher verification

v2.1.1July 10, 2026
Changed

Blog list page container widened to max-w-5xl for a more spacious editorial feel

Changed

Blog list page and filtered/paginated view now have sticky left and right ad sidebars (w-[160px], visible at 2xl breakpoint) — fully managed via /polaris/ads using slot keys blog-sidebar-left and blog-sidebar-right

Changed

Blog sidebar ads positioned at 25vh offset and sticky at 30vh so they appear in the mid-screen zone rather than pinned to the top edge

Changed

Single post layout changed to 3-column: left sticky ad sidebar (post-sidebar slot) | centered max-w-2xl article | right TOC

Fixed

Single post TOC and left ad sidebar were not sticky — caused by items-start on the flex container collapsing aside height; removed items-start so asides stretch to article height

Fixed

Single post left and right sidebars were pushed to page edges because center column used flex-1 (consumed all space); changed to w-full max-w-2xl with justify-center so sidebars hug the article

Changed

Section dividers and borders throughout the blog page softened — dark mode uses gray-700/800 instead of near-white; light mode uses gray-100/200 instead of bold gray-900 lines

Changed

Category sections now show 6 posts per section (1 lead feature + 5 stacked mini-cards) for better left/right column balance

v2.1.0July 10, 2026
Added

IndexNow CMS page (/polaris/indexnow) — bulk-submit any combination of blog posts, lessons, grammar pages, quizzes, and static pages to Bing/Yandex/other search engines with one click

Added

IndexNow auto-submit on publish — when a post is saved as published or toggled to published, its URL is automatically submitted to IndexNow in the background

Added

IndexNow key file hosted at /c1c02929ad4d4c7ba63a4561cc5e83b5.txt for domain ownership verification

Changed

Blog page redesigned with Atlantic/every.to-inspired editorial layout — compact max-width container (max-w-4xl), left/right breathing margins, bold masthead, 2-column hero with numbered "More Stories" list, Atlantic-style thick-rule section headers per category, and lead feature + stacked mini-card layout for each category section

Changed

Category filter pills updated to minimal black border / filled style matching editorial aesthetic

Changed

Culture Picks slider now contained within the max-width grid with rounded corners rather than full-width bleeding

v2.0.1July 6, 2026
Fixed

Blog category sections now always show all posts — previously, if the newest post in a category became the hero or a side story, the entire section appeared empty

Fixed

Multi-category posts (e.g. tagged as both Culture and Arts) now appear in every category section they belong to, not just the Culture slider

Changed

Content Visualizer now auto-clusters posts under pillars — posts in the same category as a pillar group automatically without needing a manual assignment; tag and keyword overlap breaks ties between multiple pillars in the same category

v2.0.0July 5, 2026
Added

Automatic content backup system — every save and edit creates a snapshot before overwriting; deletion always saves a pre-delete copy that is kept forever

Added

Daily full-site backup at 02:00 UTC via Vercel Cron — all posts saved as a single JSON snapshot

Added

Backups CMS page (/polaris/backups) — browse all backups by type, filter by slug, preview JSON, and restore any post to any past state in one click

Added

"Backup All Now" button for on-demand full-site manual snapshots

Added

Multi-category support for blog posts — assign more than one category per post; first selected is the primary

Added

New blog categories: Polish Music, Memes & Pop Culture, Arts

Added

Culture Picks slider on the blog front page — auto-populated from the culture category with prev/next arrows and brand-blue background

Added

Blog posts included in the global header search with grouped results (Blog / Lessons / Grammar / Quizzes)

Added

Per-quiz SEO metadata — each quiz gets its own title, description, and Open Graph tags

Added

Ad slot in the blog hero right column (300×250)

Added

Live word/character/reading-time/paragraph/sentence/H2/H3 counters in the post editor

Added

Search box in Link Manager with live result count

Added

Google AdSense verification meta tag

Fixed

Author avatar now shows the PolishPal logo on all posts, including older ones, without any database change

Fixed

External outbound links are dofollow by default; nofollow is opt-in only via title="nofollow"

Fixed

Dark mode border lines changed from white to gray-700/800; light mode lines softened to gray-200

Changed

Blog front page redesigned as a newspaper layout — 3-column masthead grid, category sections, and "Coming soon" placeholder for empty categories

Added

Referrer spam blocking — 403 returned for known spam domains (rankchief.shop, skyrocketlink.shop)

v1.9.0June 29, 2026
Changed

New brand color (#242EF7) across the whole site — softer periwinkle canvas, rounder cards, and pill-style active navigation

Changed

Logo and favicon recolored to match the new brand

Added

Advertisement slots managed from the CMS — image banners, ad-network embeds, or a default "Advertise here" placeholder linking to the contact page

Added

Magazine-style blog front page: lead story, Latest column, and a Culture Picks section

Added

Collapsible in-article table of contents on mobile (desktop keeps the sidebar TOC)

Removed

Legacy markdown blog files and dead code removed — the Supabase CMS is the single source of truth

v1.8.0June 28, 2026
Added

Content Visualizer — a pillar → cluster "pyramid" showing how posts relate, with green/orange flags for whether cluster posts actually link to their pillar

Added

Search-intent tagging on posts (informational / commercial / transactional / navigational)

Added

Mark a post as a "pillar" — Link Genius and agents now prioritize internal links to pillar posts

Added

Visible SEO score on every post in the list (color-coded) with a "worst-first" sort to spot pages to improve

Added

Link Manager now shows inbound anchor text + source URL — see exactly which keywords point to each page

v1.7.0June 28, 2026
Added

Application Passwords — REST API keys so agents/apps can publish posts without logging into the CMS

Added

Sorting & search in Posts, Comments, and Link Manager

Added

Link Manager dofollow/nofollow badges (green/orange) for external links

Added

"Latest from the Blog" section on the homepage

Added

Custom 404 page (returns a proper 404 status, not a soft 200)

Added

llms.txt — a curated index that helps AI assistants understand and cite the site

Changed

Cookie Policy updated to document the admin login cookie (cms_session)

v1.6.0June 27, 2026
Added

Custom CMS at /polaris — write, edit, and publish blog posts from the browser

Added

Markdown editor with live preview, formatting toolbar, and word/reading-time counter

Added

RankMath-style SEO panel — focus keyword, density, title/meta length, and live score

Added

Link Genius — keyword-based internal link suggestions across lessons, grammar, quizzes, and posts

Added

Image uploads auto-converted to WebP and stored in Supabase Storage

Added

Secure cookie-based CMS login; comment moderation folded into the CMS

Changed

Blog content migrated from repo files to the Supabase database (instant publishing)

v1.5.0June 27, 2026
Added

Share box on every lesson and grammar page — Facebook, X, Bluesky, Reddit, Instagram, and copy link

Added

"Download PDF" button on lessons and grammar topics (clean, content-only export)

Added

New PolishPal logo — a speech bubble with the Polish "Ł", in calm blue-indigo

Changed

Favicon regenerated to match the new logo

Changed

Logo color switched from red to blue-indigo to suit the language-learning niche and match the site brand

v1.4.0June 26, 2026
Added

Blog section with 11 articles covering grammar, pronunciation, culture, and learning tips

Added

About page with project background story

Added

Contact page with GitHub issue templates

Added

Editorial policy explaining content review process

Added

Privacy policy and cookie policy pages

Added

Changelog page (you're reading it!)

Added

Mobile hamburger menu for Blog and About navigation

Changed

All blog images converted from JPG to WebP for faster loading

Changed

Canonical URLs updated to www.polishpal.pl

Fixed

Sidebar "PolishPal" changed from h1 to span to avoid duplicate h1 tags

v1.3.0June 25, 2026
Added

Supabase integration for shared star ratings and comments

Added

Comment moderation dashboard with hide/delete/stats

Added

Threaded comment replies (2 levels deep)

Added

URL spam detection — comments with links are blocked automatically

Added

30-second rate limiting on comments per author

Changed

Dark mode toggle moved from bottom nav to top bar on mobile

v1.2.0June 24, 2026
Added

Accessibility panel: dyslexia font, high contrast, monochrome, big cursor, reading guide

Added

Collapsible sidebar on desktop

Added

Right-side contextual sidebars with progress and study tips

Added

Text-to-speech (TTS) for Polish vocabulary, dialogues, and grammar examples

Added

SEO: JSON-LD schemas (WebSite, Course, Article, FAQ, Breadcrumb), OG tags, Twitter cards

Added

Sitemap.xml and robots.txt for search engines

v1.1.0June 23, 2026
Added

15 grammar reference topics with color-coded tables

Added

Frequency adverb visual bar chart (zawsze → nigdy)

Added

Znać vs wiedzieć vs umieć comparison guide

Added

Instrumental, Accusative, and Genitive case reference pages

Added

Full-text search across all lessons, grammar, and quizzes (⌘K shortcut)

Added

Dark mode with three-way toggle (light/dark/system) and flash prevention

Fixed

Matching quiz bug where duplicate values caused wrong selections

Fixed

Nested button hydration error in PhraseList component

v1.0.0June 22, 2026
Added

16 structured lessons from 37 real university lectures (A0–A1)

Added

16 interactive quizzes with multiple choice, fill-in-blank, and matching

Added

Progress tracking with lesson completion, quiz scores, and streaks

Added

Responsive design with mobile bottom nav and desktop sidebar

Added

CC0 1.0 Universal public domain dedication