The all-in-one starter kit
for building multi-user, full-stack blogging applications.
Introduction · Demo · Guide · Contributing
The Blogging application is a multi-user, full-stack Next.js app with Supabase support. Built with Next.js App Router, Supabase Auth and Supabase Database, Supabase Storage.
![Cover](https://private-user-images.githubusercontent.com/25026241/272384992-d263479c-853f-40ed-aed4-58c5cbb8b14c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4ODcxMzksIm5iZiI6MTczODg4NjgzOSwicGF0aCI6Ii8yNTAyNjI0MS8yNzIzODQ5OTItZDI2MzQ3OWMtODUzZi00MGVkLWFlZDQtNThjNWNiYjhiMTRjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAwMDcxOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQxMTI2NjE4ZTk4ZjdiMWE2NjhjNjA2ZGQ1ZjQ1ZDBjNDg5NTczYzViYTMxZWQ3ZWU5ZjA5NmU5ZGI4NzAyMDUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.fAvLmuj_O9ZEvi1wPtI2BZnQbS5T5kMOXrtoB7bafKQ)
frontend.mp4
![Cover](https://private-user-images.githubusercontent.com/25026241/272385218-c5cd3077-b955-43fd-b6ea-2f3b5f9297c9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4ODcxMzksIm5iZiI6MTczODg4NjgzOSwicGF0aCI6Ii8yNTAyNjI0MS8yNzIzODUyMTgtYzVjZDMwNzctYjk1NS00M2ZkLWI2ZWEtMmYzYjVmOTI5N2M5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAwMDcxOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFlNWVjMGI3ZWE5ZmQwZTEyZDU4NGRiM2VjMTVlNjAwMDJhYWFkYjRkMWMyOTdjOWNhY2YwOWYyOGZmOTllMjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.cKhjrOUExRGGg5UO8RDp_7qwJJj2hQd5-Wa7npz19Tk)
backend.mp4
Database schema & dummy data: here
![Screenshot 2023-06-10 at 10 00 18 PM](https://private-user-images.githubusercontent.com/25026241/264497517-729e2d22-2467-4d5b-9c6c-e6a5ea58c717.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4ODcxMzksIm5iZiI6MTczODg4NjgzOSwicGF0aCI6Ii8yNTAyNjI0MS8yNjQ0OTc1MTctNzI5ZTJkMjItMjQ2Ny00ZDViLTljNmMtZTZhNWVhNThjNzE3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAwMDcxOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU4MzdmODZmOTc2Y2ZjNTZjM2UxYjI5NjJjZWU4Yzc0NGJiMzc4MDVhMWVjZDFmODE4ZDcxMmU1M2U1MGI3YjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.gDz6f6p0kUp-9cQ2c7xKNeG4jNpAx53rwGX61uNl450)
![Screenshot 2023-06-10 at 10 00 18 PM](https://private-user-images.githubusercontent.com/25026241/266735708-2a4f693b-5c0d-4647-8444-291e1f635ee7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4ODcxMzksIm5iZiI6MTczODg4NjgzOSwicGF0aCI6Ii8yNTAyNjI0MS8yNjY3MzU3MDgtMmE0ZjY5M2ItNWMwZC00NjQ3LTg0NDQtMjkxZTFmNjM1ZWU3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDAwMDcxOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWVjNmNjYjY0ZmVkMjc3MzM5NTczMTM1YjM2ZTcwY2UxYmMxOGMxOTI4MWZkMzc0NGY0OWQzMWE2NTk2NjRjZjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.LYW5JVdYSop7BKitg3Y4vVOma7gzcKFuRwnHOue9JOw)
- App Router,
- Server Actions
- Server and Client Components
- Data Fetching, Insertion using Supabase-JS-Client
- API Routes and Middlewares
- Cookie based Authentication using Supabase Auth
- CMS using Supabase Database
- Metadata files
- Open Graph Image Generation using Vercel/Og
- Image Upload using Uppy and Supabase Storage
- Styled using Tailwind CSS
- UI Components using HeadlessUI, Radix-UI, Shadcn-UI
- WYSIWYG editor using Novel
- Loading, Error, NotFound, Empty pages
- Sending emails using NodeMailer and React Email, Gmail
- Forms using React-Hook-Forms
- Toasts using React-Hot-Toast
- Validations using Zod
- Icons using HeroIcons & Lucide-Icon
- Newsletter using ConvertKit
- Drawer using Vaul
- Written in TypeScript
To run this app locally you need
- Node.js (Version: >=18.x)
- Node Package Manager NPM - included in Node.js
- PostgreSQL (local or remote)
Want to get up and running quickly? Follow these steps:
-
Clone the repository it to your local device.
git clone https://github.com/timtbdev/Next.js-Blog-App.git
-
Set up your Supabase Database and Auth wit with Social Logins
-
Set up your ConverKit
-
Set up your
.env
file using the recommendations in the.env.example
file. -
Run
npm installation
in the root directorynpm installation --legacy-peer-deps
-
Run
npm run dev
in the root directory -
Want it even faster? Just use
npm run d
That's it! You should now be able to access the app at http://localhost:3000
Admin dashboard will also be available on http://localhost:300/editor/posts
- Start a discussion with a question, piece of feedback, or idea you want to share with me.
- Open an issue if you believe you've encountered a bug with the starter kit.
- Tim (@timtbdev)
Licensed under the MIT license.