Scaffold a new agentic AI SaaS application with Next.js, Better Auth, and AI SDK
npm install create-agentic-saasScaffold a new agentic AI application with Next.js, Better Auth, and AI SDK.
Create a new project in the current directory:
``bash`
npx create-agentic-app@latest .
Create a new project in a subdirectory:
`bash`
npx create-agentic-app@latest my-app
This starter kit includes:
- Next.js 16 with App Router and Turbopack
- Better Auth for authentication (email/password, OAuth)
- AI SDK by Vercel for AI chat functionality
- Drizzle ORM with PostgreSQL database
- Tailwind CSS with shadcn/ui components
- TypeScript for type safety
- Dark mode support with next-themes
After creating your project:
1. Update environment variables: Edit .env with your API keys and database credentialsdocker compose up -d
2. Start the database: pnpm run db:migrate
3. Run migrations: (or npm/yarn)pnpm run dev
4. Start dev server:
Visit http://localhost:3000 to see your app!
To publish this package to npm:
1. Update package.json: Set your author, repository URL, and version in create-agentic-app/package.json`
2. Test locally (optional): Test the package before publishing:
bash`
cd create-agentic-app
npm link
cd /path/to/test/directory
create-agentic-app my-test-app
`
3. Publish: The sync happens automatically!
bash`
cd create-agentic-app
npm publish
prepublishOnly
The hook will automatically sync the template from the main project before publishing.
This section is for maintainers who need to update the npm package after making changes to the main project.
Follow these steps every time you make changes to the main project and want to publish them:
#### Step 1: Make Changes to Main Project
Edit any files in the main project (outside of create-agentic-app/ folder):src/
- components and pagesdocker-compose.yml
- package.json
-
- Configuration files
- etc.
#### Step 2: Navigate to create-agentic-app Directory
`bash`
cd create-agentic-app
#### Step 3: Sync Template from Main Project
This copies all your changes from the main project into the template folder:
`bash`
npm run sync
What this does:
- Deletes everything in create-agentic-app/template/template/
- Copies ALL files from your main project into node_modules
- Excludes: , .next, .git, lock files, .env, and the create-agentic-app folder itselfpackage.json
- Cleans up the template's (removes private field and sync-template script)
#### Step 4: Bump the Version
Update the version number in create-agentic-app/package.json:
Option A - Using npm version command (recommended):
`bash`
npm version patch # 1.1.3 → 1.1.4 (bug fixes)or
npm version minor # 1.1.3 → 1.2.0 (new features)or
npm version major # 1.1.3 → 2.0.0 (breaking changes)
Option B - Manual:
Edit create-agentic-app/package.json and change the version number.
#### Step 5: Verify Everything Looks Good (Optional)
Quick check to make sure your changes are in the package:
`bash`
npm pack --dry-run | grep "template/"
This shows all files that will be published. Look for your changed files.
#### Step 6: Publish to npm
`bash`
npm publish
What happens:
- The prepublishOnly hook automatically runs npm run sync again (safety check)
- Your package gets published to npm with the new version
#### Step 7: Test It
In a different directory, test that it works:
`bash`
cd /path/to/test-directory
npx create-agentic-app@latest test-projector use the specific version
npx create-agentic-app@1.1.4 test-project
`bash`Complete workflow in 4 commands:
cd create-agentic-app
npm run sync
npm version patch
npm publish
Scenario 1: You edited docker-compose.yml in the main project
`bash`
cd create-agentic-app
npm run sync # Copies docker-compose.yml to template/
npm version patch # Bumps to next version
npm publish # Publishes to npm
Scenario 2: You added a new component in src/components/
`bash`
cd create-agentic-app
npm run sync # Copies new component to template/
npm version patch # Bumps version
npm publish # Publishes
Scenario 3: You updated multiple files
`bash`
cd create-agentic-app
npm run sync # Copies ALL changes to template/
npm version patch # Bumps version
npm publish # Publishes
The sync script excludes these patterns (see scripts/sync-templates.js):node_modules
- .next
- .git
- pnpm-lock.yaml
- package-lock.json
- yarn.lock
- tsconfig.tsbuildinfo
- .env
- create-agentic-app
- (the folder itself)
Issue: npmjs.com shows old version after publishing
- The npm website can take 5-10 minutes to update due to CDN caching
- Verify actual registry: npm view create-agentic-app versionnpx
- The package is available to users immediately via even if the website hasn't updated
Issue: Users getting old version with npx
- Users may have cached versions. Tell them to:
`bash`
npx clear-npx-cache
npx create-agentic-app@latest my-project
# or use specific version
npx create-agentic-app@1.1.4 my-project
Issue: Forgot to run sync before publishing
- No problem! The prepublishOnly` hook runs it automatically
- But it's good practice to run manually first to verify changes
MIT