Changelog
All notable changes to Generous.nz are recorded here, grouped by version. Every deployed build has a version number, a git tag, and an entry below.
Versioning scheme
Versions follow MAJOR.MINOR.PATCH:
- 0.x — pre-launch. Minor bumps mark a completed build phase or major feature set; patches are bug fixes on the current build.
- 1.0.0 — first public launch.
- 1.x+ — post-launch: minor = new features, patch = fixes, major = breaking changes or significant re-architecture.
Each version is tagged in git (v0.2.0) and the current version is kept in
package.json. See docs/version-control.md for how to cut a release.
[0.9.253] — 2026-08-28
Fixed
- Blog posts can be saved again after adding an uploaded cover image: the
validator was requiring an absolute URL, which rejected the uploader's
/api/uploads/...path. It now accepts uploaded paths (and pasted URLs), matching the rest of the site.
[0.9.252] — 2026-08-28
Added (analytics events)
The site now pushes the following events to the GTM data layer so tags can fire reliably without scraping the page:
sign_up— fired when a new account is created (method: email).begin_checkout— fired when a buyer clicks Buy and Stripe returns a checkout session (carries product id, price, currency).purchase— fired on the order success page with the real order id, amount, currency and item details.donation— fired on the fundraiser page after a completed donation (one-off or recurring), with the amount and fundraiser.generate_lead— fired when a business submits a wholesale application.add_to_store— fired when a fundraiser adds a wholesale item to their store with one click.
These are announcements only — Tag Manager listens for them and forwards them to GA4.
[0.9.251] — 2026-08-28
Added
- Blog cover uploads are now named from the post title: lowercase with spaces
as underscores, plus a 5-digit counter (e.g.
my_blog_title_00001.jpg), so re-uploads of the same title never overwrite or clash.
[0.9.250] — 2026-08-28
Changed
- Blog cover images are capped at 900px wide (instead of 1200) — most screens don't show wider, so files are smaller and load faster; larger layouts stretch to fit.
[0.9.249] — 2026-08-28
Changed
- Blog cover images uploaded via the blog editor now keep up to a 1200px long edge (16:9 covers come out at 1200×675) instead of the 600px cap. Product, fundraiser and store images keep the existing 600px cap — the upload pipeline now accepts a per-purpose size.
[0.9.248] — 2026-08-28
Added
- Google Tag Manager (
GTM-NC89TPGP) on every page — container script in the head and the noscript fallback at the top of the body, so GTM works with and without JavaScript. The container ID can be overridden later withNEXT_PUBLIC_GTM_IDin the environment. - Route-change tracking — client-side navigations now push a
next_route_changeevent (with the page path and title) to the dataLayer, so GA4 conversions can be wired to in-app pages, not just the first page load.
[0.9.247] — 2026-08-28
Added (SEO)
- Canonical URLs on every indexable public page (home, blog, help,
getting started, business, wholesale, explore, legal, legal documents,
blog posts, product pages, P2P pages, fundraisers and org storefronts).
Shared
?from=links now resolve to a single canonical URL instead of being indexed as duplicates. - Structured data: Organization + WebSite schema on the homepage, Article
- BreadcrumbList on blog posts, and Product schema (with ratings where present) on both fundraiser-owned and wholesale product pages.
- Blog pagination — the blog index now serves 18 posts per page
(
/blog,/blog/page/2, ...), cutting page weight from ~540 KB to a fraction of that. Paginated and search-result pages are noindexed. - Blog search now runs server-side via
?q=(search result pages are noindexed to avoid duplicate content). - Publish dates, author and reading time on blog cards and article pages — dates render in NZ format (e.g. "27 August 2026").
Changed
- Fixed duplicate brand names in titles — "Blog — Generous.nz · Generous.nz" is now "Blog · Generous.nz", and blog post titles no longer repeat the site name.
- Blog posts now include Article Open Graph metadata (published time, URL, type) and canonical tags.
[0.9.246] — 2026-08-27
Added
- The fundraiser's My listings page now has a filter: All listings / My listings / Wholesale fundraisers. Wholesale rows also show a "You earn / sale" figure (listing price × the fundraiser's commission percentage).