vercel
Develop. Preview. Ship.
Production-grade Turborepo template for Next.js apps.
$ npx -y skills add vercel/next-forge --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: vercel/next-forge
What's inside
Production-grade Turborepo template for Next.js apps.
next-forge is a production-grade Turborepo template for Next.js apps. It's designed to be a comprehensive starting point for building SaaS applications, providing a solid, opinionated foundation with minimal configuration required.
Built on a decade of experience building web applications, next-forge balances speed and quality to help you ship thoroughly-built products faster.
next-forge is built around five core principles:
Experience next-forge in action:
next-forge comes with batteries included:
Create a new next-forge project:
npx next-forge@latest init
For detailed setup instructions, read the documentation.
next-forge uses a monorepo structure managed by Turborepo:
next-forge/
โโโ apps/ # Deployable applications
โ โโโ web/ # Marketing website (port 3001)
โ โโโ app/ # Main application (port 3000)
โ โโโ api/ # API server
โ โโโ docs/ # Documentation
โ โโโ email/ # Email templates
โ โโโ storybook/ # Component library
โโโ packages/ # Shared packages
โโโ design-system/
โโโ database/
โโโ auth/
โโโ ...
Each app is self-contained and independently deployable. Packages are shared across apps for consistency and maintainability.
Full documentation is available at next-forge.com/docs, including:
We welcome contributions! See the contributing guide for details.
Made with contrib.rocks.
MIT
.autorc
.cursorrules.example
.github/
CODE_OF_CONDUCT.md
CONTRIBUTING.md
copilot-instructions.md.example
dependabot.yml
ISSUE_TEMPLATE/
bug_report.md
feature_request.md
pull_request_template.md
SECURITY.md
workflows/
release.yml
.gitignore
.vscode/
extensions.json
launch.json
settings.json
apps/
api/
__tests__/
health.test.ts
.env.example
.gitignore
app/
apple-icon.png
cron/
keep-alive/
route.ts
global-error.tsx
health/
route.ts
icon.png
layout.tsx
opengraph-image.png
webhooks/
auth/
route.ts
payments/
route.ts
env.ts
instrumentation-client.ts
instrumentation.ts
next.config.ts
package.json
scripts/
skip-ci.js
sentry.edge.config.ts
sentry.server.config.ts
tsconfig.json
vercel.json
vitest.config.mts
app/
__tests__/
sign-in.test.tsx
sign-up.test.tsx
.env.example
.gitignore
app/
.well-known/
vercel/
flags/
route.ts
(authenticated)/
components/
avatar-stack.tsx
collaboration-provider.tsx
cursors.tsx
header.tsx
notifications-provider.tsx
search.tsx
sidebar.tsx
layout.tsx
page.tsx
search/
page.tsx
webhooks/
page.tsx
(unauthenticated)/
layout.tsx
sign-in/
[[...sign-in]]/
page.tsx
sign-up/
[[...sign-up]]/
page.tsx
actions/
users/
get.ts
search.ts
api/
collaboration/
auth/
route.ts
apple-icon.png
global-error.tsx
icon.png
layout.tsx
opengraph-image.png
styles.css
env.ts
instrumentation-client.ts
instrumentation.ts
liveblocks.config.ts
next.config.ts
package.json
postcss.config.mjs
proxy.ts
scripts/
skip-ci.js
sentry.edge.config.ts
sentry.server.config.ts
tsconfig.json
vercel.json
vitest.config.mts
docs/
api-reference/
endpoint/
create.mdx
delete.mdx
get.mdx
introduction.mdx
openapi.json
development.mdx
essentials/
code.mdx
images.mdx
markdown.mdx
navigation.mdx
reusable-snippets.mdx
settings.mdx
favicon.svg
images/
checks-passed.png
hero-dark.svg
hero-light.svg
introduction.mdx
logo/
dark.svg
light.svg
mint.json
package.json
quickstart.mdx
snippets/
snippet-intro.mdx
email/
package.json
tsconfig.json
storybook/
.storybook/
main.ts
preview-head.html
preview.tsx
next.config.ts
package.json
postcss.config.mjs
public/
favicon.ico
README.md
scripts/
skip-ci.js
stories/
accordion.stories.tsx
alert-dialog.stories.tsx
alert.stories.tsx
aspect-ratio.stories.tsx
avatar.stories.tsx
badge.stories.tsx
breadcrumb.stories.tsx
button.stories.tsx
calendar.stories.tsx
card.stories.tsx
carousel.stories.tsx
chart.stories.tsx
checkbox.stories.tsx
collapsible.stories.tsx
command.stories.tsx
context-menu.stories.tsx
dialog.stories.tsx
drawer.stories.tsx
dropdown-menu.stories.tsx
form.stories.tsx
hover-card.stories.tsx
input-otp.stories.tsx
input.stories.tsx
label.stories.tsx
menubar.stories.tsx
navigation-menu.stories.tsx
pagination.stories.tsx
popover.stories.tsx
progress.stories.tsx
radio-group.stories.tsx
resizable.stories.tsx
scroll-area.stories.tsx
select.stories.tsx
separator.stories.tsx
sheet.stories.tsx
sidebar.stories.tsx
skeleton.stories.tsx
slider.stories.tsx
sonner.stories.tsx
switch.stories.tsx
table.stories.tsx
tabs.stories.tsx
textarea.stories.tsx
toggle-group.stories.tsx
toggle.stories.tsx
tooltip.stories.tsx
tsconfig.json
vercel.json
studio/
package.json
tsconfig.json
web/
.env.example
.gitignore
app/
.well-known/
vercel/
flags/
route.ts
[locale]/
(home)/
components/
cases.tsx
cta.tsx
faq.tsx
features.tsx
hero.tsx
stats.tsx
testimonials.tsx
page.tsx
apple-icon.png
blog/
[slug]/
page.tsx
page.tsx
components/
footer.tsx
header/
index.tsx
language-switcher.tsx
contact/
actions/
contact.tsx
components/
contact-form.tsx
page.tsx
global-error.tsx
icon.png
layout.tsx
legal/
[slug]/
page.tsx
layout.tsx
opengraph-image.png
pricing/
page.tsx
robots.ts
sitemap.ts
styles.css
components/
sidebar.tsx
env.ts
instrumentation-client.ts
instrumentation.ts
next.config.ts
package.json
postcss.config.mjs
proxy.ts
scripts/
skip-ci.js
sentry.edge.config.ts
sentry.server.config.ts
tsconfig.json
vercel.json
biome.jsonc
bun.lock
CHANGELOG.md
docs/
.env.example
.gitignore
app/
[lang]/
(home)/
components/
apps/
api.png
app.png
docs.png
email.png
index.tsx
storybook.png
studio.png
web.png
cta.tsx
demo.tsx
features/
arcjet.svg
basehub.svg
better-stack.svg
clerk.svg
cmdk.svg
google-analytics.svg
index.tsx
liveblocks.svg
lucide.svg
neon.svg
posthog.svg
prisma.svg
radix.svg
react-email.svg
react.svg
recharts.svg
resend.svg
sentry.svg
stripe.svg
svix.svg
tailwind.svg
typescript.svg
ultracite.svg
vercel.svg
zod.svg
hero.tsx
installer.tsx
video.tsx
layout.tsx
page.tsx
docs/
[[...slug]]/
page.tsx
layout.tsx
layout.tsx
llms.mdx/
[[...slug]]/
route.ts
llms.txt/
route.ts
og/
[...slug]/
background.png
geist-sans-regular.ttf
geist-sans-semibold.ttf
route.tsx
rss.xml/
route.ts
sitemap.md/
route.ts
actions/
feedback/
emotions.ts
index.ts
api/
chat/
route.ts
tools.ts
types.ts
utils.ts
search/
route.ts
favicon.ico
global.css
opengraph-image.png
robots.ts
sitemap.ts
styles/
geistdocs.css
bun.lock
components/
components.json
ai-elements/
code-block.tsx
conversation.tsx
message.tsx
open-in-chat.tsx
prompt-input.tsx
shimmer.tsx
sources.tsx
suggestion.tsx
geistdocs/
ask-ai.tsx
callout.tsx
chat.tsx
code-block-tabs.tsx
code-block.tsx
copy-chat.tsx
copy-page.tsx
desktop-menu.tsx
docs-layout.tsx
docs-page.tsx
edit-source.tsx
feedback.tsx
footer.tsx
github-button.tsx
home-layout.tsx
icons.tsx
installer.tsx
language-selector.tsx
mdx-components.tsx
... 454 moreDevelop. Preview. Ship.
Workflow SDK: Build durable, reliable, and observable apps and AI Agents in TypeScript
The Open Framework for Building Agents
FAQ
next-forge is a Claude Code plugin with 1 hand-picked skill for development work, indexed on Flowy. Install it with the command on its page. It includes next-forge. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.