A super-thin, opinionated foundation for Ingram Technologies' Next.js websites. Shared configuration, libraries, and conventions — kept in one place, versioned, and propagated to every site.
Prime directive: a nextkit site is indistinguishable from a normal Next.js site, beyond its dependencies. We don't wrap or replace Next.js — we give it the right setup from the start and keep it updated centrally.
We run many Next.js sites. They share the same needs — email, newsletters, bot protection, linting, testing, code style — and those kept getting re-implemented and drifting apart. nextkit makes each concern live once, as a package sites consume by version. Fix it once, every site benefits.
Read docs/philosophy.md for the full reasoning.
| Package | What |
|---|---|
@ingram-tech/biome-config |
Shared Biome lint + format config |
@ingram-tech/typescript-config |
Strict TS configs (base + Next.js) |
@ingram-tech/test-config |
Vitest preset + setup |
@ingram-tech/git-hooks |
Biome format-on-commit hook |
@ingram-tech/email |
Zero-dep Cloudflare email client |
@ingram-tech/bot-protection |
Invisible form bot protection (honeypot + timing + BotID) |
@ingram-tech/newsletter |
Supabase-backed newsletter subscriptions + sending (RFC 8058) |
@ingram-tech/agent-guide |
Brief nextkit conventions for AI agents, imported into a site's CLAUDE.md |
More to come (blog, supabase). See docs/.
Next.js + Bun + Vercel, Biome + Vitest + Playwright, Cloudflare (email) and Supabase (when a DB is needed). EU-first, self-hostable, no per-seat US SaaS.
bun install
bun run ci # check + type-check + test
bun run build # build all publishable packagesThis repo dogfoods its own configs. See docs/architecture.md.
MIT © Ingram Technologies