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.70] — 2026-08-25
Edit / pause / delete on wholesale catalogue products.
Added
- Every catalogue product card now has management actions:
- Edit — opens the full prefilled product form (title, description, selling price, discount, category, brand, options, shipping, stock, expiry, images).
- Pause — hides the product from the catalogue and fundraiser pickers without losing anything; Resume brings it back.
- Delete — removes it from the catalogue (soft delete; existing orders are unaffected).
[0.9.69] — 2026-08-25
Fix server-side exception on the wholesale catalogue page.
Fixed
- The wholesale catalogue page crashed once products existed because the category filter used an event handler in a server component (React forbids interactivity there). The filter is now a normal form with a Filter button.
- The same latent issue on the wholesale Analytics fundraiser filter is fixed the same way.
[0.9.68] — 2026-08-25
Event ticketing with donation tiers (club dinners, concerts, charity events).
Added
- Donation tiers on event tickets: each ticket tier can carry an explicit donation component (e.g. a $100 VIP ticket where $60 is the ticket and $40 is a donation). Set it when adding or editing a ticket, and the tier card on the event page shows "Includes a $40 charitable donation".
- Receipted: the buyer's order receipt states the charitable donation included, so sponsors and supporters have the tax line on paper. The fundraiser's CSV export includes the donation portion per order.
- Multiple tiers already work (each ticket is its own tier with price, capacity, description and attendee details) — this adds the donation component and the attendee list stays available to organisers.
- New
Product.donationPortionCentscolumn (migration0039_ticket_donation_tiers).
[0.9.67] — 2026-08-25
Team fundraising: leaderboards, prizes, and the managed-campaign tier.
Added
- Teams & leaderboard (XXXXX style): organisers can define teams (name + emoji) on the fundraiser create/edit pages. Supporters pick a team when they start their P2P page, and the campaign page shows a live leaderboard ranking teams by money raised, with medals for the top three and a supporter count per team.
- Prizes / incentives: organisers list prizes (e.g. "top team wins a pizza party") which appear on the leaderboard so teams know what they're playing for.
- Managed-campaign tier: organisations can set a campaign manager name and email in their settings. When set, the campaign page shows a "🤝 Managed by [name]" badge — the hand-holding signal schools and clubs respond to.
- New
FundraiserTeamtable,P2PPage.teamId, and organisation campaign manager fields (migration0038_teams_leaderboard).
[0.9.66] — 2026-08-25
Low-friction donations: $15–$500 presets, Apple/Google Pay, zero-fee positioning.
Added
- Donation presets now span $15–$500 ($15, $25, $50, $100, $250, $500) in a tidy three-column grid that works on phones, plus a custom amount field.
- Apple Pay / Google Pay enabled at checkout — donation and order checkouts explicitly request card/wallet payment methods, so Apple Pay and Google Pay appear automatically on Stripe's checkout page (wallets still need to be enabled in the Stripe Dashboard payment-methods settings).
- Zero-fee positioning — the sign-up page now states "no setup fees, no monthly fees — pay only when you raise money", with a $0-to-start badge mentioning Apple Pay/Google Pay.
Notes
- Payout speed (including instant payouts) is set by each seller in their own Stripe account — the platform routes money directly, so payout timing is a Stripe account setting rather than a platform toggle.
[0.9.65] — 2026-08-25
Branded footer on every email.
Added
- Every transactional email now ends with a Generous.nz-branded footer: the Generous.nz wordmark, the tagline "Sell. Donate. Make a difference.", links to the site, Explore, For businesses and Help, and "Made in Aotearoa New Zealand · Secure payments powered by Stripe".
- The brand footer is applied automatically to both built-in emails and custom templates (and the admin template editor strips it from the editable footer so it's never duplicated).
[0.9.64] — 2026-08-25
Personal thank-you messages in automatic donation receipts.
Added
- Fundraisers can now write a personal thank-you message on the create and edit pages (with a prompt to make it personal). Every donor receives it automatically with their receipt email after a successful donation — styled as a highlighted note from the organiser.
- If no message is set, the standard thank-you receipt is sent unchanged.
- The donation-receipt email template now supports the
{{thank_you_message}}shortcode for custom templates, and the sample preview shows how it looks. - New
Fundraiser.thankYouMessagecolumn (migration0037_thank_you_message).
[0.9.63] — 2026-08-25
Live campaign stats with referrer/UTM tracking.
Added
- Visit tracking: every visit to a fundraiser page is recorded with the visitor, referrer and any UTM tags (utm_source/medium/campaign/content) via a privacy-friendly visitor cookie. No account needed to be tracked.
- Conversion attribution: when the same visitor makes a donation or an order, their most recent visit is marked as converted — giving a real conversion rate, not a guess.
- Campaign stats page (dashboard sidebar → Campaign stats): for each fundraiser, live money raised, page views (total and last 30 days), conversions and conversion rate, plus a "Which links drive support" list ranked by conversions and visits — Facebook, Instagram, WhatsApp, email or any referrer.
- Tracked share links: organisers can generate and copy a share link tagged with the source (Facebook, Instagram, WhatsApp, X, Email or custom), so they can see exactly which social post is working.
- New
FundraiserVisittable (migration0036_campaign_visits).