Currently on v0.4.2

What changed, and when

Every release, newest first, one sentence each. Shipped from the same git history the product is built from, so this page cannot drift from what is actually running.

JSON Feed

v0.4.2

Maintenance Live now

v0.4.1

Maintenance
  • Fix use the .gate-confidential token class, not an inline hex · css 07cc8e65
  • Fix stop the room footer floating above the feedback bar · investor 73a8326b
  • Fix route hardcoded hex through tokens so dark skins stay legible · css e6ca006b

v0.4.0

Feature
  • New give blank screens a next action to link to · app b6d409f5
  • New derive founder and co-founder checklist progress · onboarding 71b98d7f
  • New select invited_by_user_id, the durable founder signal · users b08822ee
  • Fix add a composite (startup_id, started_at) index on visits · db e621a683
  • Fix name the document behind "median document time" · dashboard b8e778cf
  • Fix stop counting deleted or private documents as shared · views 833ae458
  • Fix re-derive "share the link" from currently shareable views only · onboarding 92feb659
  • Fix wire the founder dashboard to real tracking data · app d1ae01fd
  • Fix exclude bot visits from the document-open trail, add dashboard aggregates · tracking f6f14ae4
  • Fix tag the northwind fixture's co-founder as invited · seed 5c329444

v0.3.2

Maintenance

v0.3.1

Maintenance

v0.3.0

Feature
  • New build a real SQL migration runner · deploy a88c5045
  • New add restore-check.sh to prove a backup actually restores · deploy e16b074e
  • New schedule the nightly backup with a systemd timer and failure alerting · deploy 726b3fb9
  • New rotate rp_backup alongside the app and DDL accounts · deploy dbfea01d
  • New read Mailgun credentials, and refuse to boot with a real one off live · config ed27fb8f
  • New add a Mailgun provider alongside Postmark · mail dc51e998
  • New name the city an investor opened your deck from, without a local database · geo d19c3058
  • New resolve visitor geo from Cloudflare's headers instead of MaxMind · tracking ccafe218
  • New import a spreadsheet with a column mapper and a diff before writing · captable 07d6e5ba
  • New compute round scenarios and render the saved default in investor rooms · captable 982763b6
  • New add a shared minor-units-to-form-field formatter · money 9a2a58a6
  • New tell founders when a confidential holder can't be hidden safely · captable a42fd1fc
  • New see which version of the cap table an investor actually read · captable 69f7c128
  • New let a founder turn cap table sharing on per view, and choose the detail level · captable 21ddfcef
  • New show investors only the cap table numbers their room is allowed to see · captable 8baeece7
  • New let a founder create the unallocated option pool · captable 5bc006c2
  • New add the founder-side cap table register · captable 9201fc25
  • New apply the founder's brand colour on every investor surface · rooms 046bd179
  • New apply a room template, refused server-side when locked · settings 6a0f0465
  • New render the paid skin investors actually see (SPEC §13.5) · room b43f5c3e
  • New add the public pricing page · raise d4e5f6ad
  • New wire up GET/POST /app/billing · billing fa5f36f1
  • New add Checkout/Billing Portal orchestration and live pricing · billing ae592b24
  • New add the signed, idempotent Stripe webhook · billing 93309af5
  • New map Stripe subscription state to plan and module entitlements · billing d6ba1973
  • New add the Stripe REST client with raw-body signature check · billing 9ce93bc7
  • New add Stripe price-id config and the live-key safety rail · config 8fadbea3
  • New add Stripe billing tables and stripe_customer_id · db 66324d3e
  • New actually send email on live via Postmark instead of throwing · mail 2f9aa181
  • New reset a forgotten password, and confirm your email address · auth c8bd342d
  • New put the platform console behind its own network allowlist · nginx a03f0c46
  • New the platform console — tenants, growth, health, one tenant · ops c34e9e20
  • New the cross-tenant repository behind the platform console · ops 450fc0ea
  • New a suspended tenant gets a notice on sign-in and a closed room · ops 8a97f36b
  • New the operator session, its own trust domain · ops db78a6ed
  • New operator accounts repository and the ops-admin CLI · ops a3826f42
  • New add platform_admins and an 'operator' audit actor type · db d75b2ab7
  • New A guide to using RaisePortal, in the menu when you sign in · guide 72a5ece1
  • New Investors can ask questions in your data room, answered from the documents you choose · assistant 99e562a4
  • Security cap import size, rate-limit uploads, and bound conversion memory · captable eea72133
  • Fix call the real migration runner and stop leaking the backup password to ps · deploy 66d9a9e7
  • Fix parameterise backup.sh for dev and live, and stop leaking the DB password to ps · deploy 9047df6e
  • Fix only trust Cloudflare's visitor-location headers from Cloudflare · nginx db6fc3ff
  • Fix keep visitors' precise coordinates and postal code out of logs · security 21cea467
  • Fix label the import wizard's tables for mobile · captable e2e86b42
  • Fix solve the SAFE discount price and the pool top-up together · captable 562faa35
  • Fix let a convertible note accrue interest through the real form · captable 30462569
  • Fix stop editing a holder from multiplying their Invested amount by 100 · captable 736f5940
  • Fix never 500 the whole investor room when the cap table aggregator throws · room 4130b87a
  • Fix stop a confidential group's label from lying about who is in it · captable 9231e468
  • Fix stop a confidential holder's numbers from ever reaching a named row · captable 90f6a8b4
  • Fix stop the confidential holder merge from crossing class boundaries · captable a8d349dd
  • Fix the SAFE total can no longer be subtracted to reveal a suppressed instrument · captable e881e7e7
  • Fix close the SPEC §14 CSP gap on style-src, font-src and frame-ancestors · security aafa7416
  • Fix clear rate-limit budgets so the suite is runnable repeatedly · e2e a7d41942
  • Fix verify fixture founders' email through the real /verify flow · e2e b5d2ef14
  • Fix make signup() prove the browser really lands on the dashboard · e2e 9fea664f
  • Fix stop the founder's dark/light chrome from leaking onto investor pages · rooms 36ba2437
  • Fix scope the CSP form-action allowlist to this app's own subdomains and Stripe · security e60eaf21
  • Fix skin the investor-facing AI screen like the room it opened from · rooms 8aa47c34
  • Fix bust the 60s tenant cache on every webhook entitlement change · billing 790b15eb
  • Fix hide the billing link from a member who can't open it · ai 372160ff
  • Fix send Cache-Control: private, no-store on every investor-facing response · room b9b42094
  • Fix redact the investor-room password slug and access code from the log stream · logs 015b0def
  • Fix redact token-shaped values in header values, not just header keys · logs c971d3db
  • Fix close three account-recovery gaps in one pass · auth 990740dc
  • Fix make every failed email send loud instead of silently vanishing · mail 8b2fd846
  • Fix stop reset/verify tokens and session cookies leaking into request logs · logs bdc4cbd9
  • Fix keep the helpful message when an investor's link arrives mangled · room a37170ee

v0.2.0

Feature
  • New tell the founder someone opened the deck, and only then · alerts c1d185e2
  • New let a founder allow one document to be downloaded · views 8608d003
  • New who read what, for how long, and how far they got · tracking 3cdb1b7e
  • New track the goal, who owns what, and what has actually closed · raise 7a29536d
  • New an investor can open a link and read the deck · room 0bf6c9f8
  • New invite a co-founder, and enforce what each role may do · team 144dde3a
  • New one public nav everywhere, usable on a phone and legible in dark · ui 6d59e4aa
  • New ask for the round and target investors, and vet the address · signup 8719cbd0
  • New apply the brand palette, and make the public nav usable on a phone · ui c544be4c
  • New sign in from the marketing site, not just a portal subdomain · auth 076da660
  • New upload, categorise and version a data room's files · documents efd7dfdb
  • New add CSRF protection to signup, login and logout · security 0544b8b5
  • New IP-allowlist dev behind Cloudflare real-IP restoration · nginx 49619751
  • New add tenant resolution, signup, login and the dashboard shell · auth ef4362d7
  • New wire the footer pages, the real changelog, and 404/500 · marketing 4e72775b
  • New add an app-wide dark/light mode, defaulting to dark · ui 86146de9
  • New render the landing page and signup form from Express · skeleton b21e7083
  • Fix report a virus scan honestly, and preview Office files · documents 6e9dfd7d
  • Fix store timestamps in UTC · db 47a68a2b
  • Fix stop formatting a calendar DATE in the viewer's timezone · raise c76a1400
  • Fix make dark mode actually render, and drop the OS-preference fallback · ui 65edac95
  • Fix bust the 60s tenant cache when a signup fills a subdomain · tenant faf2256a
  • Fix stop /app's auth guard from swallowing unrelated 404s · auth 2f02898b
  • Fix drop trailing .00 on whole-dollar amounts to match the mockups · raise 04bfe5ec
  • Fix enforce the 30-day absolute session cap without touching anonymous traffic · auth a5ce77a4
  • Fix use a real definition list for the contact page's kv block · marketing 66546c37
  • Fix stop schema.sql hardcoding the live database name · db 5eac0251
  • Fix quote MAIL_FROM so .env can be sourced by a shell · env faf329ff

v0.1.0

Feature
  • New Startups can claim a subdomain and open a free investor portal · portal c8f1e1ee

Times are UTC. Versions follow semantic versioning: a major number changes when something you rely on works differently, a minor when a feature is added.