Changelog
What we've shipped, dated.
We're new — launched 2026. The comparison pages all say so. Shipping cadence is the proxy: this is what we've shipped, in chronological order, sourced from the same FEATURES.md registry the engineering team updates in the commit that ships the code.
For a deeper view, the git history is at github.com/allanninal/equipment-rental-yard (subject to going public).
May 2026
- marketing
Public /changelog/ page
This page. A dated, public record of what we ship — pulled from the same FEATURES.md registry the engineering team updates in the commit that ships the code. We're new (since 2026); shipping cadence is the proxy.
Visit /changelog/ → - marketing
/how-it-works/ — 6-step walkthrough with time-cost per step
Signup → seed 100+ starter assets → first contract → bond record (cash/EFTPOS/your processor) → check-in (released/captured/partial) → reports + CSV. Each step has a real time estimate. Plus an honest "what we don't do" section (no renter payment processing, no enterprise dispatch, no crew scheduling, no native RFID).
Visit /how-it-works/ → - feature
Solo tier added — AUD $79/mo for sole traders
1 yard, 1 user (you), no SMS automation. Same waiver kiosk, manual bond records, GST invoicing as Counter. Move to Counter when you hire your first staff member. Solo now visible in both the public pricing pages and the in-app billing panel; tier-quota helpers (max_users / max_yards) shipped to enforce it once staff-invite handlers exist.
Visit /pricing/ → - content
Starter library 51 → 121 templates (+27 tools, +22 party, +13 ski)
Plant/access/welding/pumps/climate/garden expansion on tools, staging/bar/catering/glassware/DJ/lighting on party, child/backcountry/touring/vehicle on ski. Each template is country-localised (vernacular + currency + bond): "rotavator" UK / "rototiller" US, "salamander heater" US / "diesel space heater" elsewhere, etc. 14 new categories added to the default-image set.
Visit /pricing/ → - marketing
/us/vs/pointofrental and /uk/vs/rentman comparison pages
Point of Rental is the US enterprise incumbent (sales-quoted pricing, annual contracts, 60-90 day onboarding). Rentman is the UK/IE AV/events specialist (per-user EUR + module add-ons). Honest copy both ways — where they win (PoR's heavy-equipment dispatch depth, Rentman's crew scheduling) and where we win (price on the page, no contract, GBP-native).
Visit /au/compare/ → - pricing
Pricing positioning: operations software, not a payment processor
Audit of every FAQ, vertical page, and comparison page after the manual-bond switch. Removed all "PayPal authorises the bond" / "merchant of record" claims. New /pricing/ subtitle and FAQ make it explicit: we record bonds (payment method, ID sighted, photos, released/captured workflow); we don't handle the money flow — that stays with whichever processor you already use.
Visit /pricing/ → - marketing
Interactive pricing calculator on /pricing/
Three inputs (country, yard count, billing cadence) → one honest number on the right, plus a Booqable cost-comparison underneath. "It's just me, no employees" checkbox drops to Solo tier when yards=1. Built so the buyer's #1 question gets answered before they scroll.
Visit /pricing/ → - ops
scripts/deploy_web.sh — OG image content-type regression killed
Every `aws s3 sync` deploy was uploading Next.js's extensionless opengraph-image files as binary/octet-stream, breaking OG card previews on every Slack/LinkedIn/X share. Two-pass deploy: sync everything except OG/Twitter images, then `aws s3 cp --recursive --content-type image/png --metadata-directive REPLACE` for those. Always deploy through the script now.
- ops
FEATURES.md registry — GrowthBook-equivalent in markdown
Every feature, flag, rollout state, experiment, and known blocker in one markdown file at the repo root. Rule: any code change to a tracked feature requires a same-commit update to the matching row. Public-facing equivalent is this changelog.
- marketing
Branded signup chrome + typography upgrade
Amplify Authenticator wrapped in a 2-column branded page (left value-props, right form). Re-skinned via CSS variable overrides to match the YardGuild neutral-900 / emerald palette. Geist → Inter (UI) + Instrument Serif (display) + JetBrains Mono. Inter hints better on Windows where most tradies actually work.
Visit /counter/?intent=signup → - marketing
Replaced Next.js scaffold home page with real marketing landing
5-section layout: hero → stats strip → country tiles → three verticals → pricing peek → comparisons grid → final CTA. Scaffold SVGs deleted from /public.
Visit / → - marketing
Dynamic Open Graph images via Next.js opengraph-image.tsx
Build-time PNG generation via @vercel/og — one per (segment × page) using Satori, embedding H1 + brand stripe + tier prices. Stored in S3 + CloudFront, served at 1200×630.
- marketing
Trust pages + sitewide footer (/about/, /contact/, /privacy/, /terms/)
Sitewide footer with all the pages a serious buyer expects to find. /about/ explains who we are without buzzwords. /contact/ is an email + a chat fallback. Privacy and Terms align with our actual data handling (region-pinned tenants, PIPEDA/GDPR/Privacy-Act-aware).
- marketing
Per-country pricing pages and comparison hub pages
/au/pricing/, /nz/pricing/, /uk/pricing/, /ie/pricing/, /ca/pricing/, /us/pricing/ — local currency, locally-relevant FAQ. /au/compare/, /nz/compare/, /uk/compare/, /us/compare/ — index hub linking to all competitor comparisons for that country.
Visit /pricing/ → - ops
AEO refresh — /llms.txt, /llms-full.txt, /robots.txt updated for 6-country reality
AI crawlers (GPTBot, PerplexityBot, ClaudeBot, Google-Extended) explicitly allowed in robots.txt — we want to be cited. /llms.txt and /llms-full.txt list active-country landing pages with per-country pricing and tax/compliance summary per market.
- ops
Lambda runtime: Python 3.11 → 3.12 + SnapStart on renter-facing handlers
Waiver kiosk, magic-link sign, and bond-record handlers get SnapStart for cold-start latency on the rental hand-over path. ARM Graviton across the stack.
- feature
Cognito self-signup with custom-tenant-UUID injection
No more invite-only — anyone can sign up at /counter/?intent=signup, get a tenant UUID auto-injected at SignUp time (replacing the PostConfirmation Lambda path that hit Cognito's mutable=false schema constraint). Email TLD → AWS region heuristic pins tenants to the right data-residency region.
Visit /counter/?intent=signup → - feature
First-run onboarding wizard at /counter/onboarding
Two-step guided setup: company info (name + country + vertical + ABN/NZBN + alert email) → pre-load starter library. Time-to-first-contract under 5 minutes.
- feature
PayPal subscription flow wired end-to-end
Subscriptions API + webhook + idempotency table. Plan IDs in SSM SecureString. Sandbox-verified pending_approval → ACTIVE round-trip. /counter/billing/ shows status; failed-payment dunning email via SES.
Visit /pricing/ → - feature
Manual bond mode replaces PayPal Multiparty
Yard owner is merchant of record for renter payments; we don't sit in that flow. Bond record captures payment_method, reference_number, id_sighted_type, id_sighted_number, evidence_photos, authorised_at. PayPal Multiparty integration removed.
- feature
Reports dashboard v3 — damage rate, seasonal trends, weekly summary email
9-card tenant Reports dashboard now complete. Daily 5pm overdue email (every tier). Daily 8am due-back SMS (Multi-yard+). Weekly Monday-morning summary email.
Visit /how-it-works/ → - feature
Tax-report CSV export — Xero / MYOB / QuickBooks-compatible
GST / VAT / BAS export in the format each market's accountants actually use. AU ATO BAS, NZ IRD, UK HMRC VAT, IE Revenue, CA GST/HST/PST/QST per-province, US sales tax with TaxJar / Avalara hooks on the roadmap.
Missing something you want?
We ship based on what paying tenants ask for. Email hello@yardguild.com with what you need — if it's on the roadmap we'll tell you when it's coming, and if it isn't we'll tell you honestly. No fake roadmap promises.