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
14 changes: 8 additions & 6 deletions PRIVACY.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,11 +143,13 @@ and invite links.

## Paid plans, payments and Stripe

Free costs nothing, Pro (named Team until 12 November 2026) is sold on genclass.dev per project (since 12 November 2026; per developer from 11 November), and Enterprise is agreed by
Free costs nothing, Pro (named Team until 12 November 2026) is sold on genclass.dev for an account, per developer
(per project on 12 November 2026 only), and Enterprise is agreed by
email. A plan decides what your dashboard shows, never what is collected: an app that turned visitor analytics on has
them counted on Free too, and they show once its plan includes them. A paid plan (Team; the Individual plan was one
them counted on Free too, and they show once its plan includes them. A paid plan (Pro; the Individual plan was one
until 22 October 2026) is paid through Stripe, which processes payments
for us. We keep which app a subscription pays for (or, for a plan bought per developer, the number of seats), next to its status. When you choose Free for an app, we keep when, the reason you picked and anything you wrote (at most 500 characters), and we read them to improve our plans. When you upgrade, we send Stripe
for us. We keep the number of developers a subscription pays for (for one bought per project on 12 November 2026,
which app it pays for), next to its status. When you choose Free for an app, we keep when, the reason you picked and anything you wrote (at most 500 characters), and we read them to improve our plans. When you upgrade, we send Stripe
your account's email (if it has one) and your GenClass account id, and you type your card or other payment details
into Stripe's own checkout page: they go to Stripe and never reach GenClass. Stripe handles them under its own privacy
policy (stripe.com/privacy) and keeps your invoices and receipts, which you can see under Manage billing on your
Expand Down Expand Up @@ -279,9 +281,9 @@ repository answers "not found" and is left as it is.
We pass the digest to a language model (OpenAI's API) to order the failed checks and word the reasons, to suggest
its own ideas for the app and website designs inspired by real sites (we check that each site it names answers), and
return its answer. We do not store or log the digest. Since 12 November 2026 we keep the last answer for each app of
an account (the ordered checks with their reasons, the ideas and the designs, not the digest), so the Free plan can
show the same answer again and a paid plan can show all of it; it is replaced by the next answer and deleted with the
account. We also keep how many plans an account asked for on a day, for 3 days, to hold each plan's daily limit.
an account (the ordered checks with their reasons, the ideas and the designs, not the digest), so it can be shown
again once the day's model runs are used up, and in your GenClass report (below); it is replaced by the next answer
and deleted with the account. We also keep how many plans an account asked for on a day, for 3 days, to hold each plan's daily limit.
OpenAI processes the digest under its API terms. Nothing from a digest is used to train GenClass's own model.

## Reports and alerts by email
Expand Down
31 changes: 19 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,21 +30,26 @@ take a prerelease. Both lines load the same model. AI coding agents working on t
## Quick start

```bash
npx genclass # signs you in, adds GenClass to your app and walks you through the rest
npx genclass # signs you in, starts Pro, adds GenClass to your app and walks you through the rest
```

Run it in your web app's folder and press Enter for each step: account, runtime, dashboard, test workflow, GitHub
App, coding agent, suggestions. A step that does not fit your project is skipped, Enter also stops any wait, and
running it again continues from where things are. It draws nothing on your pages. Then:
Run it in your web app's folder and press Enter for each step: account, Pro, runtime, app plan, dashboard, test
workflow, GitHub App, coding agent, suggestions. The command comes with Pro: 3 days free, then US$15 a developer a
month. The card is asked for on Stripe when the trial starts, and nothing is charged if you cancel before the 3 days
end. Free stays on the website ([pricing](https://genclass.dev/pricing)). A step that does not fit your project is
skipped, Enter also stops any wait, and running it again continues from where things are. It draws nothing on your
pages. Then:

```bash
npx genclass dashboard # what GenClass found on your live site, in the terminal
npx genclass suggest # what your app is missing, most important first
```

With a coding agent (Claude Code, Cursor, Codex), tell it to run `npx genclass status --json` and then
`npx genclass setup --yes`: the command asks nothing when an agent runs it, and prints a link for the two things only
you can do (approve the sign-in, install the GitHub App). Guide: [genclass.dev/docs/cli](https://genclass.dev/docs/cli);
`npx genclass setup --yes`: the command asks nothing when an agent runs it, and prints a link for each thing only you
can do in your browser: approve the sign-in, start Pro's trial with your card, open a new app's plan page once, and
install the GitHub App. Without Pro, `setup --yes` stops at the trial with exit code 1 and one line with the checkout
link: the agent gives you the link, waits while you start the trial, then runs `setup --yes` again. Guide: [genclass.dev/docs/cli](https://genclass.dev/docs/cli);
package: [`packages/cli`](packages/cli/README.md).

To add only the runtime, with no account:
Expand Down Expand Up @@ -199,7 +204,7 @@ GenClass's GitHub App puts what the runtime saw on the pull request it was seen
the GenClass fixture, your workflow uploads the race files it writes, and the app posts one check and one comment:
each finding with its test, the seeds it was flagged in and the evidence line. It reads those files and never your
source code, it comments only where it is installed, and it is free on public repositories. Private repositories
come with the Team plan (US$15 a developer a month; [pricing](https://genclass.dev/pricing)).
come with Pro (US$15 a developer a month; [pricing](https://genclass.dev/pricing)).

> **Install** at <https://genclass.dev/github> (the app is GenClass.dev, <https://github.com/apps/genclass-dev>). With
> no change to your tests, one workflow file is the whole setup: the check on your first pull request links to it,
Expand Down Expand Up @@ -243,10 +248,12 @@ export const submitOrder = protect("checkout submit", (cart) => fetch("/api/orde
```

- **Token and dashboard.** A token (`gc_` plus 22 letters and digits, public) groups your app's diagnostics under a
private dashboard link (`https://genclass.dev/dashboard/...`). The dashboard is free for every app, with or without
an account: what GenClass found, where and what it did, for the last 7 days and up to 3 apps in an account. Visitor
analytics, forwarding, export, 90 days of history and team members come with the Team plan
([pricing](https://genclass.dev/pricing)); the runtime itself is never limited by a plan. Get a token at [genclass.dev/start](https://genclass.dev/start), or let `init` create it after you
private dashboard link (`https://genclass.dev/dashboard/...`). On Free the dashboard shows an app's totals for the
last 7 days, for one app in an account. Pro (US$15 a developer a month, up to 3 apps in an account) adds every
problem with its pages and a fix prompt, visitor analytics, forwarding, export, 90 days of history and team members;
more apps come with Enterprise ([pricing](https://genclass.dev/pricing)). Plans bought before 13 November 2026 keep
every app they cover (an app paid for on its own does not count toward Pro's 3); Free covers an account's oldest app
and locks the others. The runtime itself is never limited by a plan. Get a token at [genclass.dev/start](https://genclass.dev/start), or let `init` create it after you
approve its diff. To keep dashboards in an optional genclass.dev account, `npx @genclass/runtime@beta login` signs in
from the terminal (device flow) and connects the app in the current folder; `connect`, `whoami` and `logout` do the
rest, and `npx @genclass/runtime@beta dashboard` prints an app's link again (from `0.3.0-beta.2`). The dashboard
Expand Down Expand Up @@ -316,7 +323,7 @@ very heavy page can cause a long task, which the runtime records as a `perf` eve
double submit or a write race usually throws nothing, so there is no error to collect. GenClass looks for those
situations inside the page, decides on the user's device and reports what it saw. It does not replace an error
tracker: from `0.3.0` its reports can go to your own logging through `sinks` ([SINKS.md](docs/runtime/SINKS.md)),
and for apps in a genclass.dev account (any plan, Free included) the collector can forward likely detections to
and for apps in a genclass.dev account on Pro or Enterprise the collector can forward likely detections to
Sentry, PostHog, Datadog, Slack or a signed webhook.
- **Product analytics.** Analytics count what users do; GenClass reports what the app got wrong while they did it.
- **Tests and linters.** These bugs depend on response order and user timing. A test on a fast, ordered network can
Expand Down
35 changes: 35 additions & 0 deletions packages/cli/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,41 @@ The genclass command comes with Pro:
- The header shows this folder's app's plan. The note under a dashboard link says what Free shows (the totals) and
what comes with Pro.

Fixed before release, from a test report on the 0.3.7 pull request and a walk of 0.3.6 at 58 columns:

- **The telemetry opt-out works without Pro.** `npx genclass init --no-telemetry` (and `--telemetry`, to undo it) on
an app that has GenClass changes only that option, signed out too. It no longer opens a checkout.
- **`genclass login` only signs in.** An account without Pro sees Pro's card next, and nothing is written in the
folder. This folder's app is offered to the account (the runtime login's own question) once Pro is on.
- **The home's commands pass the gate**, like any command: the home can open before the sign-in (q at the first
step). Skipping the sign-in skips the steps after Pro too.
- **A 4th app on Pro** says that more apps come with Enterprise, by email, with the address on its plan page. Nothing
is opened or waited for, and the walk goes on. `upgrade` and `apps new` say the same.
- **Pro with one seat:** `team` and `team invite` say to add seats in Manage billing, not that a team needs Pro.
`upgrade` on Pro says there is nothing to upgrade, and where seats are added.
- **Said before the sign-in:** the first screen and `--help` say that the command comes with Pro (3 days free, then
US$15 a developer a month, card on Stripe). `--help` lists `upgrade`, `profile` and what works without Pro.
- **No v4 text:** `whoami`, the login's next steps, the dashboard help and the lines under a dashboard link no
longer say every dashboard is free, or offer Pro to an account that has it. Signed out, `genclass dashboard` in a
folder with an app's private link prints it again.
- **The Pro card:** a used trial is no longer promised; it says which account it is for; n, no, s and exit stop as
q does. `plan` says when a trial ends and its first charge, shows no model runs without Pro, and shows no app
limit for GenClass's grant. A stopped payment wait says so once.
- **For scripts and agents:** `needs_pro` has one JSON shape everywhere: `ok`, `error`, `needs_pro`, `signed_in`,
`plan`, `price`, `trial_days`, `checkout_url`, `run`. `upgrade` without Pro ends like the gated commands (exit 1;
`--json` gives that shape). `scan` and `audit` behind the gate exit 2 (their 1 means problems found) and name the
free page check on genclass.dev. A command's own usage error comes before the gate.
- An app Pro covers is no longer told it "has no plan yet", and its views are not blocked on a terminal. A Free
choice made earlier no longer answers a new plan-page wait.
- **58 columns:** a spinner's line never wraps (the stop hint goes on its own line); a command or an address is never
broken across lines, and warnings are wrapped too; the session file is written with `~`.
- Small ones: `ask` says Pro is needed before its privacy notice; `suggest` remembers "repository only"; adding
GenClass again after `remove` reuses the account's app of the same name (asked first; `--yes` reuses it); the
coding-agent step shows the files it writes and asks; the welcome no longer makes a name from an email address;
`q stop` everywhere; `status` in the home has no card; `analytics` on Free says "already counted" only when it is;
a Pro account's `suggest` with no plan from genclass.dev (`--no-model`) shows every item; a member of a paying team
is told a new app goes into the team's account (genclass.dev's `team_plan` and `via`).

## 0.3.6

The paid plan is Pro (it was called Team), with 3 days free:
Expand Down
Loading
Loading