Note
This project is based on Next Saas Stripe Starter, which is licensed under the MIT License.
All modifications and additional original code written by Baptiste (2025) are licensed under the PolyForm Internal Use License 1.0.0.
MIT license applies exclusively to the original Next Saas Stripe Starter code.
PolyForm Internal Use License 1.0.0 applies exclusively to my added code.
Empower your next project with the stack of Next.js 14, Prisma, Neon, Auth.js v5, Resend, React Email, Shadcn/ui, and Stripe.
All seamlessly integrated with the SaaS Starter to accelerate your development and saas journey.
- Clone the repository:
git clone https://github.com/Baptiiiiste/Echo.git- Install dependencies using pnpm:
pnpm install- Copy
.env.exampleto.envand update the variables.
cp .env.example .env- Set up the database:
docker-compose up -d
prisma generate
prisma db push- Start the development server:
pnpm run devNote
I use npm-check-updates package for update this project.
Use this command to update your project: ncu -i --format group
- Next.js – React framework for building performant apps with the best developer experience
- Auth.js – Handle user authentication with ease with providers like Google, Twitter, GitHub, etc.
- Prisma – Typescript-first ORM for Node.js
- React Email – Versatile email framework for efficient and flexible email development
- Vercel – Easily preview & deploy changes with git
- Resend – A powerful email framework for streamlined email development
- Neon – Serverless Postgres with autoscaling, branching, bottomless storage and generous free tier.
- Tailwind CSS – Utility-first CSS framework for rapid UI development
- Shadcn/ui – Re-usable components built using Radix UI and Tailwind CSS
- Framer Motion – Motion library for React to animate components with ease
- Lucide – Beautifully simple, pixel-perfect icons
next/font– Optimize custom fonts and remove external network requests for improved performanceImageResponse– Generate dynamic Open Graph images at the edge
useIntersectionObserver– React hook to observe when an element enters or leaves the viewportuseLocalStorage– Persist data in the browser's local storageuseScroll– React hook to observe scroll position (example)nFormatter– Format numbers with suffixes like1.2kor1.2Mcapitalize– Capitalize the first letter of a stringtruncate– Truncate a string to a specified lengthuse-debounce– Debounce a function call / state update
- TypeScript – Static type checker for end-to-end typesafety
- Prettier – Opinionated code formatter for consistent code style
- ESLint – Pluggable linter for Next.js and TypeScript
- Vercel Analytics – Track unique visitors, pageviews, and more in a privacy-friendly way