🚀 Live Demo
Explore the live demonstration of the project: DevOverflow
DevOverflow is a Q&A platform for developers to ask questions, share knowledge, and learn from each other.
Built with Next.js, Tailwind CSS, Clerk, MongoDB, and more, it offers a seamless user experience with modern UI and authentication.
- ✨ Technologies Used
- 🧰 Get Started
- ⚙️ Installation and Run Locally
- 📜 Scripts
- 🔒 Environment Variables
- 🚀 Deployment
- 🔧 Contributing
- 📩 Bug / Feature Request
- 💎 Acknowledgements
DevOverflow is built using the following technologies:
- Next.js 14 – React framework for SSR & static generation
- MongoDB & Mongoose – NoSQL database for scalable data storage
- Clerk – Authentication & user management
- Tailwind CSS – Utility-first CSS framework
- ShadCN – Pre-built UI components
- Zod – Schema validation for TypeScript
- Svix – Webhook management
- TinyMCE – Rich text editor integration
To run this project locally, follow these instructions.
Ensure you have the following installed on your machine:
- Node.js
- NPM
- Git
Before running the project, set up the required services:
-
Clerk Authentication
- Create a Clerk account
- Set
CLERK_PUBLISHABLE_KEY
andCLERK_SECRET_KEY
in.env
- Configure sign-in, sign-up, and redirect URLs in Clerk Dashboard
-
MongoDB Database
- Create a MongoDB database
- Set
MONGODB_URL
in.env
-
TinyMCE Editor
- Create a TinyMCE account
- Set
NEXT_PUBLIC_TINYMCE_API_KEY
in.env
-
Webhook Setup (Clerk)
- Create a webhook in Clerk Dashboard
- Set the webhook URL:
http://<YOUR-DOMAIN>/api/webhook/clerk
- Select "user" event and create the webhook
- Store
CLERK_WEBHOOK_SECRET
in.env
git clone https://github.com/rupesh-dev30/DevForum.git
Step 2: Install Dependencies
npm install
Step 3: Start the Development Server
npm run dev
Step 4: Open in Browser
Visit http://localhost:3000 to see the application running.
🔒 Environment Variables
Create a .env file in the root directory and add the following:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=<CLERK_PUBLISHABLE_KEY>
CLERK_SECRET_KEY=<CLERK_SECRET_KEY>
NEXT_CLERK_WEBHOOK_SECRET=<CLERK_WEBHOOK_SECRET>
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/onboarding
NEXT_PUBLIC_TINYMCE_API_KEY=<YOUR_TINY_MCE_API_KEY>
MONGODB_URL=<YOUR_MONGODB_URL>
NEXT_PUBLIC_SERVER_URL=<YOUR_SERVER_URL>
🚀 Deployment
Deploy to Production (Manual)
Create an optimized production build:
npm run build
Deploy on Vercel (Recommended)
The easiest way to deploy this Next.js app is using Vercel.
Deploy on Netlify
You can also deploy this Next.js app with Netlify.
For more details, check out the Next.js deployment documentation.
🔧 Contributing
Contributions are always welcome! To contribute:
-
Fork the repository
-
Create a new branch
git checkout -b improve-feature
-
Make your changes
-
Commit the changes
git commit -m "Improve feature"
- Push to the branch
git push origin improve-feature
- Create a Pull Request 🎉
📩 Bug / Feature Request
If you find a bug or have a feature request, please open an issue.
💎 Acknowledgements
Special thanks to the following technologies & libraries that made this project possible:
Next.js
MongoDB & Mongoose
Clerk
ShadCN
Tailwind CSS
TinyMCE
Svix
Vercel
📚 References
This project follows best practices inspired by industry leaders and online resources.