Overview
TemplateA is a Next.js 13 application that provides authentication and payments functionality. It is built with various technologies such as PlanetScale, Drizzle ORM, Lucia, Tailwind, and LemonSqueezy. The project was created as a way to experiment with the new Next.js app directory, so it may not be optimized or implemented correctly. However, contributions and bug reports are welcome.
Features
- Next.js app directory with various components and functionality
- TypeScript ORM (Drizzle ORM) for SQL databases
- Authentication using Lucia
- Database on PlanetScale
- UI components from shadcn/ui
- Blog functionality using MDX and Contentlayer
- Subscriptions using LemonSqueezy
- Styled using Tailwind CSS
- Data fetching using RSCs and tRPC
- Email verification
- Teams with team member management
- Role-Based Access Control (RBAC) using CASL
- Email functionality using Mailing and Resend
Installation
To run the TemplateA Next.js application locally, follow these steps:
- Install dependencies using npm:
npm install
Copy the
.env.examplefile to.envand update the variables according to your environment.Start the development server:
npm run dev
- Setting up the database:
- For local development: Log in to MySQL, create the database, and push the schema.
- For production using PlanetScale: You can use PlanetScale as your primary database instead of a local one.
Summary
TemplateA is a Next.js application that provides authentication and payment functionality. It is built with various technologies and libraries and offers a range of features such as authentication using Lucia, SQL database ORM using Drizzle ORM, and UI components from shadcn/ui. The project is still in development, and there are known issues that need to be addressed. However, it provides a good starting point for building a real application and can be customized according to specific requirements.