Setup instructions are the contract between the archive and your evening. On Twenty they are required for a reason: a kit without a reproducible first-run path is a demo, not a deliverable.
The anatomy of a good guide
- Prerequisites: Node version, package manager, database, optional Docker.
- Clone or unzip, install dependencies, copy env example.
- Named environment variables with one-line purpose each.
- Database migrate (and seed if needed).
- Run the app; URL and default admin or signup path.
- Payments: how to forward webhooks locally and which events matter.
- Deploy notes: host assumptions, required production secrets.
Phrases that fail the sniff test
- “Configure your API keys” with no variable names.
- “Set up Stripe” with no webhook events.
- “Optional OAuth” with no callback URLs.
- “Works with any database” while the repo hardcodes Postgres-only SQL.
The clean-machine test
Install on a machine or container that has never seen the project. Follow the guide literally. If you must invent a step, the guide failed. Note the missing step; that gap is either a support ticket for the seller or a reason to refund/walk away under the listing policy.
Env vars worth scanning before you buy
- Database URL and direct URL (for migrate tools).
- Auth secrets distinct from cookie signing secrets.
- Stripe secret key and webhook secret as separate values.
- App URL / canonical URL used in emails and OAuth callbacks.
- Email provider credentials if verification is claimed.
After it runs: document your own deltas
The moment you change ports, rename env vars, or swap providers, write a short INTERNAL_SETUP.md for future you or your client. Kits age; your notes keep the handoff alive.
When comparing listings, open setup instructions before screenshots. The better storyboard rarely beats the better first-run path.