Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,28 @@ your own Atlassian account, and export it in your own shell/agent config
your tooling) — never use someone else's token on their behalf, and never
paste a token into a commit, a PR description, or a file this repo tracks.

## Update the changelog in the same PR, not after

`src/lib/marketing/changelog.ts` feeds the public `/changelog` page, and it
drifts the same way `README.md`'s "Vercel Cron" claim did — quietly, until
someone notices it's stale. It went unmaintained for a week in practice: five
real shipped changes (a new plan, a reliability fix, three new pages, several
bug fixes) landed across five separate PRs with none of them touching this
file, and it took a dedicated catch-up pass to close the gap. Don't leave that
for someone else to notice later.

**If a PR changes what a signed-in customer or a visitor can see or do, add a
changelog entry in that same PR** — new pages, new plans or pricing, a
customer-visible bug fix, a real behavior change. Follow the file's own doc
comment for what to leave out (internal refactors with no visible effect,
abandoned experiments) and match its existing voice: product language, not
engineering language ("A campaign sending a photo or video over WhatsApp no
longer fails silently", not "fixed BulkMessageContentDto schema mismatch").
Group under today's real date; add a new date block at the top of the array
rather than editing an old one. This is the same discipline as
`src/lib/openapi.ts` — new routes documented in the commit that adds them, not
backfilled in a batch later.

## Where to look first

- `src/proxy.ts` — the single auth chokepoint (Next 16's replacement for
Expand Down
50 changes: 50 additions & 0 deletions src/lib/marketing/changelog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,56 @@ export interface ChangelogRelease {
}

export const CHANGELOG: ChangelogRelease[] = [
{
date: "2026-09-08",
title: "A Lite plan",
changes: [
{
kind: "new",
text: "Lite (₹1,999/mo): every analytics module, no WhatsApp. For a store that wants the numbers without the messaging — upgrade to Go or Plus any time campaigns, flows or a shared inbox become worth it.",
},
],
},
{
date: "2026-09-07",
changes: [
{
kind: "improved",
text: "The dashboard, inbox and product picker load meaningfully faster for stores with a large order history — the caching that already sped up smaller stores wasn't actually taking effect once a store grew past a certain size.",
},
],
},
{
date: "2026-09-03",
title: "About, Terms & Privacy",
changes: [
{
kind: "new",
text: "About, Terms of Service and Privacy Policy pages, linked from the footer.",
},
{
kind: "fixed",
text: "A magic sign-in link from email now signs you in correctly, instead of silently landing on the home page.",
},
{
kind: "fixed",
text: "The WhatsApp order-confirmation message now waits for a payment to actually go through before sending, instead of firing the instant checkout is submitted — a pending UPI or card order no longer gets a \"thank you\" before it's actually paid for.",
},
{
kind: "fixed",
text: "A campaign sending a photo or video over WhatsApp no longer fails silently for every recipient.",
},
],
},
{
date: "2026-09-02",
changes: [
{
kind: "new",
text: "A public changelog page, linked from the footer.",
},
],
},
{
date: "2026-09-01",
title: "A 14-day free trial",
Expand Down
Loading