A modern blog application built with Next.js, featuring authentication with Clerk, rich text editing with Tiptap, and database management with Prisma.
- 🛠 Next.js 15 with React 19
- 🔐 Authentication with Clerk
- ✍️ Rich text editor with Tiptap extensions
- 🎨 Tailwind CSS with theme support
- 📊 Database management with Prisma
- 📱 Responsive design
- 💅 UI components with Radix UI
- 📝 Markdown content support
- 🔔 Toast notifications with Sonner
- Next.js (15.2.2) - React framework
- React (19.0.0) - Frontend library
- TypeScript - Type safety
- @clerk/nextjs (6.12.12) - User authentication
- Prisma (6.5.0) - ORM for database management
- @prisma/client (6.5.0) - Prisma client
- @tiptap/react (2.11.6) - Editor framework
- @tiptap/starter-kit (2.11.6) - Basic extensions
- @tiptap/extension-highlight (2.11.6) - Text highlighting
- @tiptap/extension-text-align (2.11.6) - Text alignment
- @tiptap/pm (2.11.6) - ProseMirror integration
- Radix UI - Unstyled accessible components
- @radix-ui/react-alert-dialog
- @radix-ui/react-label
- @radix-ui/react-slot
- @radix-ui/react-toggle
- Lucide React (0.484.0) - Icons
- Sonner (2.0.2) - Toast notifications
- Tailwind CSS - Utility-first CSS
- tailwind-merge (3.0.2) - Merge Tailwind classes
- tw-animate-css (1.2.4) - Animations
- next-themes (0.4.6) - Theme switching
- class-variance-authority (0.7.1) - Variant management
- clsx (2.1.1) - Class name utility
- isomorphic-dompurify (2.22.0) - HTML sanitization
- svix (1.62.0) - Webhook verification
- Node.js (v18 or later)
- npm or yarn
- PostgreSQL database (or your preferred database supported by Prisma)
-
Clone the repository:
git clone https://github.com/gamalahmed3265/BlogApp-Nextjs-Clerk.git cd BlogApp-Nextjs-Clerk
-
Install dependencies:
npm install # or yarn install
-
Set up environment variables: Create a
.env
file in the root directory and add the following:DATABASE_URL="your_database_url" NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY CLERK_SECRET_KEY SIGNING_SECRET
and create domain in ngrok dashbaord by Start a Tunnel and set in webhooks clark
-
Set up the database:
npx prisma migrate dev --name init
-
Run the development server:
npm run dev # or yarn dev
-
Open http://localhost:3000 in your browser.
/blog-app
├── app/ # Next.js app router
│ ├── api/ # API routes
│ ├── (auth)/ # Authentication routes
│ ├── (main)/ # Main application routes
│ └── ... # Other app directories
├── components/ # Reusable components
├── lib/ # Utility functions
├── public/ # Static files
├── styles/ # Global styles
├── prisma/ # Prisma schema
├── .env # Environment variables
├── next.config.js # Next.js configuration
├── package.json # Project dependencies
└── README.md # Project documentation
dev
: Runs the development serverbuild
: Creates an optimized production buildstart
: Starts the production serverlint
: Runs ESLintprisma:generate
: Generates Prisma clientprisma:migrate
: Runs database migrationsprisma:studio
: Opens Prisma Studio
This project is optimized for deployment on Vercel. To deploy:
- Push your code to a GitHub repository
- Create a new project on Vercel
- Connect your GitHub repository
- Add your environment variables
- Deploy!
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Gamal Ahmed- @gamalahme - email@example.com
Project Link: https://github.com/gamalahmed3265/BlogApp-Nextjs-Clerk
This documentation includes:
1. Project overview
2. Feature list
3. Technology stack breakdown
4. Installation instructions
5. Project structure
6. Available scripts
7. Deployment guide
8. Contribution guidelines
9. License and contact information
You can customize it further by adding:
- Screenshots
- Demo link
- More detailed feature descriptions
- API documentation if applicable
- Roadmap for future features