What's new in Listoria

Current version v1.2.2

Release history and new features

v1.2.2Reply-To dla emaili
2026-05-08
  • NewReply-To pattern w lib/email — env RESEND_REPLY_TO przekierowuje odpowiedzi userów na realny adres (np. kontakt@listoria.app) zamiast bounce'ować na noreply@
  • ImprovementsAuto-injection w sendOrLog — wszystkie funkcje send* automatycznie dziedziczą replyTo bez konfiguracji per-function
v1.2.1Resend + Umami integracje
2026-05-08
  • NewResend integracja: lib/email module + WorkspaceInviteEmail template (React Email)
  • NewEmail zaproszenia do workspace wysyłany automatycznie po inviteMember()
  • NewUmami analytics component (privacy-first, cookieless) — ładowany warunkowo gdy NEXT_PUBLIC_UMAMI_WEBSITE_ID ustawione
  • ImprovementsGraceful degradation: bez RESEND_API_KEY emaile logowane do konsoli (dev mode bez setupu)
  • ImprovementsFailure isolation: email send nie blokuje invite (token jest w bazie, UI kopiuje link)
  • DocsSetup docs (Resend DNS verification, Umami Cloud setup) w root CLAUDE.md
  • DocsPRD: 102 checkboxów zaznaczonych jako [x] (snapshot na v1.2)
v1.2Workspaces — multi-tenant fundament
2026-05-08
  • NewMigracja 010: workspace_invites + active_workspace_id + workspace_id na favorites/folders + data migration (Personal workspace per user)
  • NewModuł lib/workspace: types, queries (8), actions (8) — switch, create, rename, invite, cancel, accept, change role, remove
  • NewWorkspaceSwitcher w AppNav — dropdown z role icons (Crown/Shield/User), klik → switch + refresh
  • NewStrona /settings/workspace: rename, members management, invite form, pending invites, create new
  • NewStrona /invite/[token] — public z login-redirect, accept przez RPC (email validation)
  • Newis_workspace_member + is_workspace_admin (security definer) — używane w nowych RLS policies
  • NewRPC accept_workspace_invite — security definer, idempotent, walidacja email auth.users vs invite
  • ImprovementsMigracja RLS: projects/favorites/folders z user_id-based na workspace member-based
  • ImprovementsLimit Free 50 ulubionych liczony per-workspace (nie per-user)
  • ImprovementsPełny namespace i18n workspace.* (PL + EN) — switcher, roles, settings, accept errors
  • Docs8 funkcji w docs/functions.md (sekcja Workspace) + supabase-docs/010
  • DocsTeam plan w Stripe (per-seat), activity log, internal comments — odłożone do v1.2.x/v1.3
v1.1Help Center — 7 artykułów w aplikacji
2026-05-08
  • NewCentrum pomocy w /help — 7 artykułów w 4 kategoriach (Pierwsze kroki, Funkcje, Płatności, Pytania)
  • NewArticles registry w lib/help/articles.ts (source of truth: slug, category, icon)
  • NewLayout helpers: ArticleLayout (breadcrumb + h1), ArticleSection, ArticleTip
  • NewDynamic route /help/[slug] z switch po slug + generateStaticParams (14 SSG stron)
  • NewFAQ artykuł z Base UI Accordion (7 Q/A)
  • NewContact card z mailto: hello@listoria.app
  • ImprovementsPełny namespace i18n help.* (PL + EN) — categories, articles content, FAQ
  • ImprovementsBrak MDX dependency — Server Components z t() są wystarczające dla 7 artykułów
  • Docs7 funkcji w docs/functions.md (sekcja Help) + zaktualizowany lib/help/CLAUDE.md
  • DocsWyszukiwarka artykułów + screenshoty odłożone do v1.2+
v1.0MVP Launch — Landing + final polish
2026-05-08
  • NewLanding page: LandingNav (sticky), Hero z brand voice headline 'Kosztorys, który robi się sam.', ProblemSection, Features (5 USP w bento), PricingSection z toggle monthly/yearly, FAQSection (7 pytań), LandingFooter (multi-column)
  • NewSEO: sitemap.ts (8 URLs × hreflang), robots.ts (allow public, disallow gated), generateMetadata per locale (OG + Twitter + hreflang)
  • NewPełny namespace i18n landing.* (PL + EN) — meta, nav, hero, problem, features, pricing (toggle/free/pro), faq, footer
  • ImprovementsServer Components first — minimum JS na landingu (tylko PricingCards jako client island)
  • ImprovementsPricing zsynchronizowane z billing module (Free + Pro 49/39 PLN), Team odłożony do Faza 2
  • ImprovementsmetadataBase + keywords + formatDetection w root layout (no email/tel auto-link)
  • ImprovementsConditional CTA — zalogowany user widzi 'Otwórz aplikację' zamiast 'Załóż konto'
  • DocsScope v1.0 zamknięty — wszystkie pozycje [x] z listoria-v1-scope.md
  • Docs10 nowych funkcji w docs/functions.md (sekcja Landing) + zaktualizowany lib/landing/CLAUDE.md
  • DocsTestimonials, Help Center, Chrome Extension, Team workspace, AI — odłożone do v1.1+/Faza 2/3
v0.10Eksporty — PDF + Excel + Moodboard PDF
2026-05-08
  • NewPDF lista zakupowa (A4 portrait) — branding (Pro: logo + studio info; Free: 'Powered by Listoria') + tabela 5-kol per sekcja + sumy + numeracja
  • NewExcel lista (xlsx) — 2 arkusze (Lista + Podsumowanie), grupowanie per sekcja, SUM formulas, format walutowy — Pro only
  • NewPDF moodboard (A3 landscape) — image fill z PNG canvas Excalidraw, branded header — Pro only
  • NewExportButtons w SettingsTab — fetch + blob URL download flow
  • NewMoodboard PDF button w canvas (obok PNG export) — disabled + tooltip dla Free
  • NewRoute handlers (Node.js runtime, force-dynamic): list-pdf (GET), list-excel (GET 403 dla Free), moodboard-pdf (POST z PNG data URL)
  • ImprovementsDefense in depth: frontend disabled + serwer 403 dla Pro-only eksportów
  • ImprovementsPOST dla moodboard-pdf (nie GET) bo PNG data URL ~1-5MB
  • ImprovementsPełny namespace i18n exports.* (PL + EN) — labels, hints, Pro badges, toast messages
  • ImprovementsSlug filename z transliteracją PL diacritics (mieszkanie-kowalski-lista-2026-05-08.pdf)
  • DocsDependency: @react-pdf/renderer ^4.5.1, exceljs ^4.4.0
  • Docs10 nowych funkcji w docs/functions.md
v0.9Billing — Stripe + plany Free/Pro
2026-05-08
  • NewMigracja 009: stripe_subscription_id + status + period_end na profiles
  • NewStripe Checkout (subscription mode) z 14-day trial — Pro Monthly (49 zł) / Yearly (39 zł/mc)
  • NewBLIK auto-detect przez Stripe na podstawie PLN currency
  • NewStripe Customer Portal — cancel, update card, invoices
  • NewWebhook /api/stripe/webhook z signature verification i idempotent handlerami
  • NewPlan-based limits: getFavoritesLimit, getProjectsLimit, hasProAccess (cancel-at-period-end uznawany jako Pro)
  • NewStrona /billing: aktualny plan + porównanie Free/Pro + toggle monthly/yearly
  • NewLimitBadge plan-aware: Pro = crown, Free = count/limit z color tone
  • ImprovementsLazy ensureCustomer — Stripe Customer przy pierwszym Checkout, nie przy signup
  • ImprovementsGraceful fallback gdy brak Stripe env vars (banner + disabled CTA)
  • ImprovementsPełny namespace i18n billing.* (PL + EN)
  • DocsTEAM plan + per-project enforcement odłożone do v1.0
  • Docs11 nowych funkcji w docs/functions.md + setup Stripe w CLAUDE.md
v0.8Notifications — in-app powiadomienia
2026-05-08
  • NewMigracja 008: rozszerzenie RPC z v0.7 o INSERT do notifications
  • NewDesigner dostaje powiadomienia gdy klient: zmieni status, doda komentarz, otworzy panel
  • NewBell icon w AppNav z badge (unread count)
  • NewDropdown z 10 ostatnimi + button 'Mark all read' + link 'View all'
  • NewStrona /notifications z filter Tabs (all/unread) + paginacja 50 per page
  • NewPer powiadomienie: ikona po typie, deep link, time relative ('5 min temu')
  • Newtrack_client_view z dedupe 1h (max 1 powiadomienie per godzinę per projekt)
  • NewKlik powiadomienia → auto-mark-read + nawigacja do deep linku
  • NewBulk actions: Mark all read, Delete read
  • ImprovementsICU plural rules dla polskiego (1 minutę / 2 minuty / 5 minut temu)
  • ImprovementsBody komentarza obcięte do 80 znaków + ellipsis w notification
  • DocsEmail Resend odłożony do v0.8.1 (setup domain + API key)
  • Docs9 nowych funkcji w docs/functions.md
v0.7Panel klienta — token-based access
2026-05-07
  • NewMigracja 007: 3 RPC security-definer (get_client_view, client_set_product_status, client_add_comment)
  • NewPublic route /[locale]/c/[token] — mobile-first, bez auth, ze studio branding
  • New3 przyciski statusu na karcie produktu: Akceptuję / Do przemyślenia / Odrzucam
  • NewCollapsible komentarze per produkt z formularzem (designer/client thread)
  • NewDesigner side: sekcja Panel klienta w SettingsTab z listą linków + dialog tworzenia
  • New6 permissions checkboxów: canComment, canChangeStatus, viewPrices, viewSuppliers, viewLinks, viewMoodboard
  • NewServer-side filter pól wrażliwych w get_client_view (price/supplier/source_url null gdy permissions=false)
  • NewAuto-update last_accessed_at + badge “Wygasł” dla linków po expires_at
  • NewCopy-to-clipboard URL z toast confirmation
  • ImprovementsEmpty state dla invalid/expired tokena
  • ImprovementsPełny namespace i18n clientPanel.* (PL + EN) z designer + client UI
  • ImprovementsKlient może ustawić tylko 4 z 6 statusów (bez ordered/delivered — flow zamówienia)
  • DocsMoodboard view w panelu klienta odłożony do v0.7.1 (potrzebny read-only Excalidraw)
  • Docs9 nowych funkcji w docs/functions.md
v0.6Moodboard — Excalidraw canvas
2026-05-06
  • NewMoodboardTab zastąpił placeholder — Excalidraw canvas (MIT, w pełni free komercyjnie)
  • NewAuto-save scene state do moodboards.tldraw_document (debounce 1.5s) w onChange callback
  • NewSidebar ProductPicker z miniaturami produktów — klik fetch'uje URL → dataURL → addFiles + updateScene
  • NewSaveBadge nad canvasem (idle/saving/saved/error) bez overlay-a żeby nie przechwytywać klików
  • NewEksport PNG przez exportToBlob({format: image/png, exportPadding: 32}) + manual download
  • ImprovementsDynamic import canvasa (ssr:false) z loading skeletonem
  • ImprovementsJSON-safe round-trip przed upsert — JSON.parse(JSON.stringify(scene))
  • FixesFix: swap z tldraw na Excalidraw — tldraw v3+ wymaga komercyjnej licencji w prod
  • FixesFix: position:relative na canvas wrapper — tldraw/excalidraw renderują absolute layers
  • FixesFix: usunięty revalidatePath z upsertMoodboard — refetch resetował canvas
  • DocsPRD: PDF eksport odłożony do v1.0 (bundle z @react-pdf/renderer)
  • Docs5 nowych funkcji w docs/functions.md
v0.5Favorites — baza ulubionych z folderami
2026-05-06
  • NewStrona /favorites z sidebarem folderów + grid ulubionych
  • NewFoldery (CRUD) + 2 wirtualne entries: Wszystkie / Bez folderu
  • NewKarta ulubionego: zdjęcie, cena, dostawca, kategoria, tagi (chipsy)
  • NewAddToProjectDialog — 2-step picker (projekt → sekcja) tworzący snapshot produkt
  • NewQuick 'Save to Favorites' w ProductCard w widoku projektu
  • NewFiltry: search (debounce 300ms) + kategoria + tag z URL state
  • NewLimit Free 50 z LimitBadge (warning na 80%, block na 100%)
  • NewUpload zdjęć (reuse bucketu product-images z subfolderem favorites/)
  • ImprovementsPełny namespace i18n favorites.* (PL + EN) — ~70 kluczy
  • ImprovementsProductCard.tsx: dodany item 'Zapisz w ulubionych' w dropdown menu
  • Docsdocs/functions.md: 14 nowych funkcji modułu Favorites
v0.4Projects — listy zakupowe + kosztorys
2026-05-06
  • NewStrona projektu /projects/[id] z 3 zakładkami (Listy / Moodboard / Ustawienia)
  • NewHierarchia: projekt → sekcje (pomieszczenia) → produkty z auto-sumami per sekcja i per projekt
  • NewBudgetBar z animowanym NumberFlow + ostrzeżenie przy przekroczeniu budżetu
  • NewSekcje (pomieszczenia) z chipsami sugestii, inline rename, duplikacja z produktami
  • NewProdukty: cena, ilość, jednostka, dostawca, kategoria, nr katalogowy, link, notatka, zdjęcie
  • New6 statusów produktu z 1-klikową zmianą przez dropdown (Propozycja/Zaakceptowany/Odrzucony/Do przemyślenia/Zamówiony/Dostarczony)
  • NewDrag & Drop sekcji + produktów (sortowanie + przenoszenie między sekcjami) z optimistic UI
  • NewFiltry: search z debounce, status, kategoria, dostawca, toggle grid/list — wszystkie z URL state
  • NewUpload zdjęć produktów (Supabase Storage bucket product-images)
  • NewSoft delete produktów + AlertDialog confirm + cascade delete sekcji z ostrzeżeniem
  • NewMigracja 006: storage bucket product-images z RLS (public read, user-folder write)
  • ImprovementsPełny namespace i18n projects.* (PL + EN) — ~100 kluczy z ICU plural
  • ImprovementsMoodboardTab placeholder z planowaną implementacją w v0.6 (tldraw)
  • Docsdocs/functions.md: 16 nowych funkcji modułu Projects
v0.3Dashboard — lista projektów
2026-05-07
  • NewStrona /dashboard z gridem projektów (1/2/3 kolumny responsive)
  • NewModal 'Nowy projekt' (nazwa, klient, email, budżet, waluta)
  • NewEdycja projektu z osobnym uploadem cover image
  • NewArchiwizacja + Przywracanie + Oznacz jako ukończony
  • NewSoft delete (kosz na 30 dni) z AlertDialog confirm
  • NewFiltrowanie tabami: Wszystkie / Aktywne / Zarchiwizowane / Ukończone (z badge counterami)
  • NewEmpty state z CTA gdy 0 projektów
  • NewProjectCard z Motion hover, NumberFlow budżet, status badge
  • NewMigracja 005: storage bucket project-covers + RLS
  • ImprovementsAutoAnimate na liście (smooth add/remove/reorder)
  • FixesFix: UserMenu split server/client (Base UI error #31 — DropdownMenuLabel wymaga Group wrappera)
  • Docsdocs/functions.md: rejestr 11 nowych funkcji v0.3
v0.2Auth + Settings
2026-05-07
  • NewLogowanie email/hasło + magic link + Google OAuth (Supabase Auth)
  • NewRejestracja z auto-tworzonym profilem (trigger handle_new_user)
  • NewForgot/reset password flow (link email → /reset-password)
  • NewOAuth callback handler (PKCE flow) na /api/auth/callback
  • NewMiddleware: chain next-intl + Supabase JWT refresh
  • New(app) route group z AuthGuard — protected: dashboard, projects, favorites, settings, billing, help
  • New(auth) route group z reverse-guard — login/signup redirektują zalogowanego na /dashboard
  • NewSettings page: profil (imię, język, avatar) + pracownia (nazwa, logo, kontakt)
  • NewAppNav top bar + UserMenu dropdown (avatar, settings, billing, logout)
  • NewMigracja 004: storage buckets `avatars` + `company-logos` z RLS (public read, user-folder write)
  • ImprovementsLanding page z dynamicznym przyciskiem login/signup (zalogowany → dashboard)
  • NewRozbudowa kluczy i18n (auth, settings) PL + EN
  • Docsdocs/functions.md: rejestr 14 nowych funkcji v0.2
v0.1Inicjalizacja projektu
2026-05-06
  • NewBootstrap monorepo Turborepo (apps/web + apps/chrome-extension placeholder)
  • NewNext.js 16 + React 19 + Tailwind 4 + Base UI shadcn (54 komponenty)
  • NewKonfiguracja Supabase (clients SSR/browser/middleware) + migracja init schema (12 tabel + RLS)
  • Newi18n next-intl 4: PL (domyślny) + EN
  • NewDesign system z palety Listorii — Coral #FF6037, Poppins + JetBrains Mono
  • DocsDokumentacja: CLAUDE.md, database.md, functions.md, design-system.md, private-memory.md
  • DocsWewnętrzne skille Claude (/release, /plan, /db-update, /module, /memory, /functions, /design-tokens, /i18n, /test)
  • NewStrona /changelog (publiczna) i /design-system (ukryta dev only)