What signing up unlocks
Four things a signup opens
25test lets anyone take public trials without logging in. But guest answers are purged after 7 days, and you cannot author your own content. Signing up flips these four switches at once.
You can take public trials as a guest. Sign up and four things open at once: your own bank, AI generation, invite links, and permanent results.
→
Sign up
Signing up with Google skips the email confirmation step.
1Why sign up
No paywall, no ads. What changes is one thing — you get ownership.
Question bank
You get a private bank of categories, topics and questions at /me/bank. Fully separate from the public exams (SAT · CSAT · Gaokao …).
AI generation
Point AI at a category with a prompt template and it drafts up to 100 questions per session, streaming into a review grid. Approve and it lands in your bank.
Invites · retention
Each test you build ships with an invite link. Everyone who attempts it lands in your dashboard, and every result stays in the account forever.
One line
Guests are test-takers. Members are test-takers plus authors plus dashboard owners. No approval flow — all three roles unlock the moment you register.
2How to sign up
Email or Google. Either path takes under a minute.
Email + password
Landing → "Sign in" → "Create account" link in the modal → email, password, name → click the confirmation link that arrives in your inbox.
Google account
Click the Google button in the login modal. The browser bounces to Google, you approve, then you land back here already signed in — no password to set.
Default language
The browser locale at signup time becomes your default UI language. You can switch it any time with the language toggle in the top-right.
3Your own question bank
Three-level structure: category → topic → question. Kept fully separate from the public bank.
What lives in a private bank
Category
The top-level bucket that groups related questions. Example: "Company onboarding quiz", "3rd-grade midterm".
Topic
A curriculum slice inside a category. Used by the AI generator as a weight for how items get distributed.
Question
The actual item. Supports MCQ single / multi, ordering, fill-in-blank, short and open answer.
Explanation
Why the correct answer is correct and why distractors fail. Shown to the taker on the result-detail modal.
Author flow
- Hamburger menu → "New category".
- Use the "Topics" button on the card to add 5–12 topics.
- Click "+ Question" to hand-author, or "+ Add by AI" to draft with the AI pipeline.
Tip — start small
One category · 3–4 topics · 10 questions is enough to hand out an invite link. You can grow the bank later at any pace.
4AI question generation
One prompt kicks off a stream of question cards you can approve, edit, or reject.
What the pipeline gives you
Prompt template
A reusable scaffold for difficulty, item type, and tone. Both curated and personal templates supported.
Provider fallback
Anthropic → OpenAI → Gemini in priority order. If the first provider fails, the pipeline auto-retries the next one.
Live streaming
Generated items fade into the card grid one at a time — no all-or-nothing wait.
Review · edit · approve
Click a card to edit body, choices, correct answer, tags inline. Approve → registered in your bank.
A single session
- Go to /me/ai/generate → pick a category, template, and item count.
- Click "Generate" → items land in the right-side grid, one at a time.
- Approve items → registered in your bank → drawable by any test.
What about the AI key?
Register a personal key at /me/ai/keys, or — if the site admin has enabled platform keys — use the built-in one with zero setup.
5Build your own tests
A "test" is the policy container that turns bank questions into a session.
What a test defines
Source category
Which bank the questions come from. One test → one category.
Question count · max score
Inherited from the category by default; can be overridden per test.
Time limit
In seconds. Leave blank for no limit.
Draft algorithm
random (fresh sample per attempt) or fixed_set (identical order every time).
Mode
guest_trial (guests allowed) / member_only / open.
Build flow
- Go to /me/tests → "+ New test".
- Pick source category → set question count, max score, time limit.
- Save → an invite link becomes available immediately.
Tip — keep tests thin
Think of a test as a "policy container": time, count, points. Let the actual questions come from the bank at attempt time. Thin tests scale better across cohorts.
6Invite links
One link is the whole "class". No separate roster, no approval flow.
What the invite link does
Unique token
One random token per test. Example: /i/abc123.
Guest allowed
When on, non-logged-in takers can attempt too. Results are tied to a cookie uid.
Revoke · rotate
Regenerate any time. The old link stops working; already-submitted results stay intact.
Distribution flow
- Test detail → "Generate invite link".
- Copy the link → paste into chat, email, or a QR code.
- Takers open the link → optional name entry → begin attempt.
Auto-aggregated results
Every submitted attempt bumps the "Who took my tests" counter on your dashboard. No webhook setup required.
Token rotation
Suspect a leak? Hit "Regenerate" and the old token stops working. Anyone with the new link keeps attempting; existing results stay in place.
Careful
The link itself is the access key. If the test has a paid or private context, share via a private channel — not a public post.
7Results & analytics
Every result stays forever on a member account. Guest attempts are purged after 7 days.
What the author sees
Who took my tests
Who · when · score · time-taken table. Drill in for per-question correct/incorrect.
Averages & pass-rate
Per-test averages, pass rate, and per-question correctness so you can spot broken items.
CSV export
Export the takers list to CSV whenever you want to drop into a separate analytics tool.
What the taker sees
/me/results
Every test you have ever taken, newest first. Nothing gets purged.
Result detail · print
Per-question grading with explanations. Print or save as A4 PDF at any time.
Difficulty-tuned praise
Nailing a hard item unlocks a difficulty-matched encouragement line — a small nudge for learning momentum.
8Guest vs member
Side-by-side
Take public trials
Guest: ✓ · Member: ✓
Result retention
Guest: 7 days · Member: permanent
Private question bank
Guest: ✗ · Member: ✓ (/me/bank)
AI question generation
Guest: ✗ · Member: ✓ (/me/ai/generate)
Build own tests
Guest: ✗ · Member: ✓ (/me/tests)
Invite links
Guest: ✗ · Member: ✓
Attempt-taker dashboard
Guest: ✗ · Member: ✓
Personal AI keys
Guest: ✗ · Member: ✓ (/me/ai/keys)
9FAQ
Is signup free?
Yes. Guest trials stay free too — signup only adds the four feature slots described above on top of what guests already have.
Do I have to confirm my email?
Email signups: your first attempt is stored under a cookie uid until you click the confirmation link. Once confirmed, existing attempts fold into your account. Google signups skip the confirmation step.
What if I do not have an AI key?
If the admin has enabled platform keys on this instance, you can use AI features immediately. Otherwise, register a personal Anthropic / OpenAI / Gemini key at /me/ai/keys.
Do invitees show their name?
The attempt-start screen asks for an optional name. Enter one and it becomes the taker label; leave it blank and a synthetic label like "guest-abc12" shows instead.
What happens if I delete my account?
Account-delete flow is coming. Meanwhile, a deletion request to the site admin purges the data. If you want backups first, /me/bank exports to CSV.