Skip to content
Reference

Glossary

Plain-language definitions for kit-specific nouns and web concepts these docs lean on, grouped by topic and cross-linked to the owning page. Use Cmd-F to jump. Missing a term? Email the support address on the License page.

Last updated on

9 min read

On This Page

Auth & Sessions

TermDefinition
Better AuthThe self-hosted auth library in packages/auth. Sessions, OAuth, 2FA, passkeys, and the organization plugin. Authentication.
PasskeyPhishing-resistant sign-in with a device-bound key pair (Touch ID, Windows Hello, hardware keys). WebAuthn via Better Auth's passkey plugin. What's Wired In.
Platform adminA User.role = "admin" flag, separate from org roles. Gates /dashboard/admin and the admin oRPC namespace. Bootstrap with pnpm admin:bootstrap --email <email>. Platform Admin Role.
SameSite cookieA cookie attribute (Strict / Lax / None) that controls cross-site sends. The kit sets sameSite=lax on session cookies to blunt CSRF without breaking inbound links.
Session cookieBetter Auth's opaque httpOnly, sameSite=lax cookie after sign-in. Signed and encrypted with BETTER_AUTH_SECRET. The session it represents includes activeOrganizationId. How Sessions Work.
Two-Factor AuthA second sign-in factor: TOTP from an authenticator app, plus single-use backup codes. Better Auth's twoFactor plugin. What's Wired In.

Organizations

TermDefinition
Active organizationThe org the current session is acting on. Stored as activeOrganizationId on the session. oRPC procedures that use withActiveOrganization load it onto context.organization. The Active Organization.
Last-owner protectionBlocks removing or demoting an org's only remaining owner. Uses a FOR UPDATE row lock so two concurrent demotions cannot race past the check. Guards Beyond The Role Check.
Personal organizationA normal org with isPersonalOrganization: true in metadata. Created on sign-up so every user starts with a home org. Same fields and roles as a team org. What An Organization Is.

Data & API

TermDefinition
Composite projectA TypeScript project (tsc -b) that emits declaration files for other packages. Used by packages/shared and packages/api so workspace consumers share their types.
Driver adapterPrisma's pluggable Postgres driver layer. The kit picks @prisma/adapter-neon for *.neon.tech hosts and @prisma/adapter-pg everywhere else (always pg under Vitest). Pick a database.
Migration vs seedA migration is a versioned schema change (prisma migrate). A seed loads starter data (prisma db seed). Seeds ship in three modes: bootstrap, demo, test. Seeding.
oRPCThe OpenAPI-native typed RPC framework behind packages/api. End-to-end TypeScript types, plus a generated spec at /api-reference. API.
Pre-signed URLA short-lived S3 URL that lets the browser PUT bytes straight to a bucket key. Avoids serverless body-size limits. How An Upload Flows.
Subpath exportA package.json exports entry for one file under a sub-path (for example @syntaxkit/analytics/client). Consumers import only the client or server half. Package Map.

Frontend & i18n

TermDefinition
cn helperclsx plus tailwind-merge, from @syntaxkit/ui/lib/utils. Caller-side className wins over the cva default. Base Components.
cvaclass-variance-authority: turns Tailwind class strings into typed component variants. Every shadcn-style primitive uses it. Base Components.
Locale routingTwo strategies in parallel. Marketing and auth use a URL prefix (/en/..., /de/...). The dashboard reads a NEXT_LOCALE cookie and keeps paths locale-free. Two Locale Strategies.
next-intlThe i18n library behind both locale strategies. Internationalization.
OKLCHA perceptually uniform color space (oklch(L C H)). Every color token in packages/ui uses it. Pick colors at oklch.com. Brand Tokens.
Server actionA Next.js "use server" function the client can call. Used sparingly (for example setLocale). Multi-instance deploys need a shared NEXT_SERVER_ACTIONS_ENCRYPTION_KEY. Operational Secrets.
Server component vs client componentApp Router primitives. Server components render on the server and ship no client JS. Client components ("use client") ship interactive code. Calling The API From React.
shadcn/uiA pattern (and CLI) for copying React primitives into your repo instead of installing them as a dependency. The kit's packages/ui is yours to edit. Customization.

Billing & Webhooks

TermDefinition
Best-effort side effectAn email or analytics dispatch wrapped so its failure does not fail the webhook. On failure the OutboundEffect claim is released so a later Stripe retry can try again. Best-Effort Side Effects.
Live mode vs test modeStripe's two environments. Test (sk_test_*) uses fake cards. Live (sk_live_*) charges real money. Signing secrets and price ids differ between them. Pricing And Stripe Live Mode.
OutboundEffectA Postgres table keyed by (kind, key) that records each email or analytics dispatch. Semantic keys stop retries and related events from double-sending. Two-Layer Idempotency.
Stale processing recoveryRecovers Stripe events whose handler crashed mid-run. After 5 minutes (STALE_PROCESSING_WINDOW_MS), the next retry may re-claim the row (up to 5 reclaims) and re-run the handler. Stale Processing Recovery.
Stripe webhook signing secretThe secret Stripe uses to sign payloads. The kit verifies every event with stripe.webhooks.constructEvent. The production secret differs from the Stripe CLI one. Endpoint And Signature Verification.
StripeWebhookEventA Postgres table keyed by eventId. Claims each Stripe delivery so concurrent retries do not run the handler twice. One half of two-layer idempotency. Two-Layer Idempotency.
Two-layer idempotencyThe webhook dedupe story. StripeWebhookEvent.eventId blocks duplicate event ids. OutboundEffect.(kind, key) blocks duplicate business actions (emails, analytics). Two-Layer Idempotency.

Security & Abuse

TermDefinition
CORSCross-Origin Resource Sharing. HTTP headers that decide whether a browser may call your API from another origin. proxy.ts scopes it to NEXT_PUBLIC_APP_URL. Edge: Headers, CSP, CORS.
CSPContent Security Policy. An allow-list header that limits which origins can load scripts, styles, fonts, and similar. Built with Nosecone plus a curated allow-list. Edge: Headers, CSP, CORS.
CSRFCross-Site Request Forgery. Tricking a user's browser into an authenticated request to your site. Mitigated by httpOnly, sameSite=lax session cookies set explicitly in packages/auth/src/server.ts. Authentication: Sessions And Captcha.
Rate limitA cap on how often a surface may be hit. Better Auth ships per-route limits on auth endpoints (Redis-backed when Upstash is set). Separately, Upstash sliding windows cover contact, auth email, chat, uploads, and billing. Built-in Auth Rate Limits and Abuse Protection (Upstash).
TurnstileCloudflare's captcha alternative. Used on auth flows (Better Auth captcha plugin) and the public contact form when both Turnstile env vars are set. Authentication: Sessions And Captcha.

Email & Observability

TermDefinition
OpenTelemetryThe observability standard behind the kit's structured logs. Records export over OTLP to PostHog Logs. Structured Logging.
PostHogOne vendor for product and web analytics, session replay, error tracking, and structured logs. Analytics and Monitoring.
Reverse proxyA Next.js rewrite that routes /ingest/* to PostHog. Same-origin requests defeat many ad-blockers and simplify CSP. The Reverse Proxy.
Source map uploadA build step (withPostHogConfig) that uploads JS source maps to PostHog so stack traces de-minify. Needs POSTHOG_API_KEY and POSTHOG_PROJECT_ID at build time. Source Maps.
SPF, DKIM, DMARCThree DNS records that prove your domain may send email. Without them, Gmail and Outlook deliverability drops sharply. Email Sender Configuration.
Transactional emailEmail triggered by a specific user action (verification, receipt), not bulk marketing. Delivered via Plunk by default, templated with React Email. Email.

Build & Deployment

TermDefinition
Build-time vs runtime envEvery NEXT_PUBLIC_* var is inlined into the JS bundle at build time, so changing one needs a rebuild. Server secrets are read at runtime. Build-Time vs Runtime Env.
CapabilityA boolean for whether an optional feature's env-var group is fully set (isBillingEnabled, and similar). From getSetupCapabilities in packages/shared. Missing config degrades that feature instead of crashing. How the Kit Reads Env.
dotenvxThe .env-loading CLI behind the kit's test, integration, E2E, and webserver scripts. Loads files by priority; --overload overrides host env. Tests.
Setup DoctorThe pnpm setup:doctor script. Validates the env file, lists which integrations are configured, and checks that the database is reachable. Run after a fresh clone. Setup, Tooling, And Deploy.
Standalone outputNext.js output: "standalone". Produces a self-contained Node server with only the deps actually used. Both apps use it to keep Docker images small. Deployment.
TurborepoThe monorepo task runner. Caches lint, check-types, build, and test, and orders tasks so ^db:generate runs before any build. Build pipeline.

Where To Go Next

Also useful: Commands And Scripts and FAQ.

Was this page helpful?

On this page