What's shipped

Changelog

Every feature we've shipped, in plain English. No marketing speak — just what changed and why it matters.

17features shipped
4product areas
June 3latest release

June 2026

1 release
v0.28
Platformv0.28SecurityAIPWAHardeningJune 3, 2026

Security hardening, AI registry overhaul, and PWA install

Three-stream audit driving real fixes: closed two critical security holes, hardened guest-write paths, made the AI registry builder iterative (inline edit + swap + add-custom), and shipped a PWA install affordance. Plus the welcome flow now hands you straight to the AI builder.

  • Security: /admin no longer falls open when the password env is unset (was wide open in prod)
  • Security: /api/fetch-product validates URL host against private IPs, GCP metadata, and internal TLDs; redirects re-validated per hop
  • Hardening: guest fund writes can no longer overwrite e-transfer contact, link URL, goal — only contributedAmount goes up
  • Hardening: gift claiming is now monotonic (quantityPurchased can only grow, capped at quantity) — closes a double-claim race
  • Hardening: /api/email/collaborate rate-limited 5/hr per registry + 10/hr per IP (email-bomb prevention)
  • Hardening: getPublicRegistries() and getPageViews() now have limit() caps — bounded Firestore reads as scale grows
  • AI registry: inline edit names, prices, qty, priority directly in the Step 4 preview — no more commit-then-edit
  • AI registry: 'Add custom item' button under each category with URL auto-enrich via /api/fetch-product
  • AI registry: 'Swap' button per row hits a new /api/ai/swap-item that picks an alternative from the same category — fast, free, deterministic
  • AI registry: catalog-miss URL inputs now auto-fill name/price/image as you type
  • AI registry: modal state (event type, checklist, context) persists to localStorage so a closed-and-reopened modal doesn't lose your work
  • PWA: installable as a standalone app on Chrome (Android + desktop) — standalone display, theme color, home-screen icon
  • Onboarding: welcome flow step 3 now offers a 'Start AI builder' CTA — go from sign-up to a populated registry in one click
  • SEO: /login and /quick-add are now noindex
  • Fix: 'Get gift ideas' (and three other AI client calls) were missing the Bearer token and 401-ing — now authenticated
  • Batch crons: batch-a (9am UTC) and batch-b (9pm UTC) routes committed — previously untracked

May 2026

2 releases
v0.27
Blogv0.27SEOContentSchemaMay 24, 2026

Programmatic guide pages, blog search, and compare page

13 static landing pages targeting high-intent Canadian gift registry searches, a live search + pagination experience on the blog, a Babylist vs GetJoyBox comparison page, and structured data upgrades across the site.

  • 13 /guides/* pages generated at build time — baby registry, wedding registry, birthday gifts, and more — each with product grid, related posts, FAQ, and BreadcrumbList + ItemList schemas
  • /guides index page listing all 13 guides with event-type color coding
  • Blog search + pagination — live client-side search and 18-per-page pagination on all blog posts
  • /compare/babylist-vs-getjoybox — full feature comparison table, verdict cards, FAQ with FAQPage schema
  • LocalBusiness JSON-LD added to homepage @graph (areaServed: Canada)
  • BreadcrumbList schemas added to /about, /advertise, and /changelog
  • Tag-based related post scoring — related posts now rank by shared tags + category match instead of category-only filter
  • Affiliate links upgraded to rel='nofollow sponsored' across blog, catalog cards, and item cards
  • Public registries added to sitemap.xml — each shareable registry page now indexed
  • TOC blank entry fix — blog post tables of contents no longer include headingless sections
v0.27
Platformv0.27PerformanceInfrastructureMay 24, 2026

Cloud Run memory and image stability fixes

Eliminated OOM crashes and 500 errors in production by right-sizing the image pipeline and setting an explicit memory ceiling on the Cloud Run container.

  • Cloud Run memory limit set to 512MiB in firebase.json — was uncapped, causing OOM kills under load
  • sharp pinned to ^0.33.5 — firebase-frameworks peer dep rejects ^0.34.x; build was silently broken
  • deviceSizes capped at 1920px — removed 2048px and 3840px entries that triggered oversized image requests
  • minimumCacheTTL set to 3600s — CDN now caches resized images for 1 hour instead of re-processing on every request

April 2026

14 releases
v0.26
Registryv0.26MobileAccessibilityUXApril 26, 2026

Mobile & responsive polish

Registry item cards now scale intelligently with the items-per-row setting, the site nav meets touch-target standards, and mobile layouts across the registry are fully cleaned up.

  • ItemCard scales with column count — compact padding + smaller text at 4 col; buttons stack, description hidden, labels shortened at 5 col
  • Correct next/image sizes hint per column count — browser fetches the right image variant
  • "I bought this" → "Bought" and "Buy now" → "Buy" at 5-col ultra-compact
  • Owner action bar scrolls horizontally on mobile instead of wrapping to two lines
  • Mobile category filter pills scroll horizontally instead of stacking vertically
  • Sidebar sticky offset corrected — no longer overlaps the owner action bar
  • Nav hover states use CSS hover: instead of JS onMouseEnter/Leave — now works on touch devices
  • All nav links meet 44px touch target minimum (WCAG 2.5.5)
  • no-scrollbar CSS utility added — was used but never defined (silent scroll failure on mobile)
  • Missing exchangeRate/displayCurrency props fixed on inner category card loop
v0.25
Registryv0.25SharingPrivacyApril 25, 2026

Registry sharing config

Complete sharing control from a single modal — visibility toggle, guest message, and one-tap social sharing.

  • Public/private toggle — flip registry visibility with an animated pill switch
  • Guest message — 300-char note displayed to all visitors on the registry page
  • Social share row — WhatsApp, Email (mailto:), and Facebook one-tap
  • Save confirmation — button shows ✓ Saved! feedback after settings update
v0.24
Registryv0.24EmailUXApril 25, 2026

Registry completion state

Celebrate the moment every last item gets claimed — rich UI for owners and guests, plus a smarter celebration email.

  • Owner completion card with gift count, total value, giver count + action CTAs
  • Guest completion banner — friendly '🎉 Every gift has been claimed!' notice
  • Celebration email enhanced with 3-up stats row and 'What's next' section
  • Stats computed server-side on each email send for accuracy
v0.24
Registryv0.24ImportProductivityApril 25, 2026

Cross-platform bulk URL import

Paste up to 20 product URLs from any retailer and import them all in one shot — no manual data entry.

  • 3-step flow: paste URLs → preview fetched products → confirm selection
  • All items fetched in parallel — no waiting for sequential scrapes
  • Preview checklist with thumbnail, price, retailer, and per-item category selector
  • Amazon affiliate tag auto-applied; works with Indigo, Walmart, Well.ca, Etsy, and more
v0.23
Registryv0.23FundsApril 25, 2026

Itemized experience funds

Break down exactly what a fund covers so guests know where every dollar goes.

  • Line-items editor — emoji + label + amount rows per fund
  • 'Set as goal ↑' shortcut syncs the line-item total to the fund goal
  • Breakdown table shown to guests on fund cards — transparent and trustworthy
  • Total row with live USD conversion when currency toggle is active
v0.23
Registryv0.23InternationalApril 25, 2026

Dual-currency display (CAD ↔ USD)

International guests can see prices in their home currency without leaving the page.

  • Live exchange rate fetched from Frankfurter API on every page load
  • CAD ↔ USD pill toggle in the item grid header
  • Converted prices shown as muted secondary text on item and fund cards
  • Toggle hidden gracefully when rate fetch fails — no broken UI state
v0.22
Platformv0.22AutomationEmailApril 25, 2026

Price-drop alert cron

Owners are emailed automatically when a price drops ≥5% on any registry item.

  • Scrapes current prices via JSON-LD and inline JSON patterns
  • Threshold: ≥5% drop AND ≥$2 absolute saving — filters out noise
  • Parallel scrapes with 4s timeouts — handles 100 registries per cron run
  • Idempotent — stores lastPriceCheckAt and lastCheckedPrice per item
v0.22
Registryv0.22FundsTemplatesApril 25, 2026

Postpartum service fund templates

Seven ready-made fund types for the services new parents actually need.

  • Quick-add panel with 7 templates: night nanny, meal delivery, doula, house cleaning, postpartum massage, grocery delivery, childcare
  • FundType semantic tags displayed as service badge on guest-facing cards
  • 4 new fund icons: Moon, Utensils, ShoppingCart, Sparkles
  • Pre-fills fund name, description, suggested goal, and emoji
v0.21
Registryv0.21AIApril 25, 2026

AI thank-you note drafts

Generate personal, heartfelt thank-you drafts for each giver using Claude AI.

  • One-click draft generation per giver from the thank-you tracker
  • Context-aware — includes item name, gift message, and giver name in prompt
  • Editable inline before use — always human in the loop
  • Powered by Claude Haiku for fast, cost-efficient generation
v0.21
Registryv0.21Thank-youUXApril 25, 2026

Registry review — gift messages & thank-you tracker

A complete 'review registry' experience — see every gift, write personal notes, export to CSV.

  • Guests can leave a personal message when claiming an item or contributing to a fund
  • Unified gift feed with filter tabs: Pending / All / Thanked
  • Fund contributions included with individual giver notes
  • CSV export: name, email, type, item, value, date, message, thanked
v0.20
Registryv0.20DiscoveryUXApril 25, 2026

Developmental stage tagging

Tag items by the baby's age so guests can filter to what's relevant right now.

  • Six age stages: Newborn (0–3 mo), 3–6 mo, 6–12 mo, 1–2 yr, 2–3 yr, 3+ yr
  • Stage filter strip appears automatically when tagged items exist
  • Reduces 'what do I get?' overwhelm for gift-givers
  • Works alongside category filters and grid/list view toggle
v0.19
Platformv0.19EmailAutomationApril 25, 2026

Lifecycle email system

Four triggered emails that guide owners from signup to 100% completion.

  • Welcome email — sent on first signup via AuthContext
  • Setup nudge — 2 days after signup if onboarding not complete
  • Share nudge — 7 days after onboarding if registry never shared
  • 100% celebration — server-verified, idempotent, with registry stats
v0.19
Blogv0.19DesignSEOApril 24, 2026

Blog editorial redesign + E-E-A-T

Light editorial treatment, author identity signals, and hub-and-spoke content architecture.

  • Light primary-50→white gradient replaces dark masthead — matches site palette
  • Hero images at full opacity in large rounded cards
  • Article JSON-LD with author identity (Brad Czumaczenko), Organization schema
  • Hub-and-spoke clusters: 5 hubs, 32 topics, seasonal scoring for automatic freshness
v0.18
Productv0.18DesignSEOApril 18, 2026

Homepage editorial redesign

Complete homepage visual overhaul — Playfair Display typography, FAQ section, refreshed feature grid and footer.

  • Editorial headline treatment with Playfair Display throughout
  • FAQ accordion with JSON-LD for Google rich snippets
  • Feature grid updated to light palette — no more black section
  • Global footer with structured navigation and social links

💡

Have an idea for what we build next?

Vote on features and submit ideas — your votes directly influence our roadmap by product area.

View ideas board