Stackwise is a full-stack, modern web application designed as a community-driven platform where developers can ask questions, post answers, comment, and vote on content — inspired by the functionality of Stack Overflow. Built with Next.js, TypeScript, and powered by Appwrite as the backend-as-a-service (BaaS), this project demonstrates a modular, scalable, and maintainable codebase suitable for both personal and professional development use.
- ✅ User Authentication (Register & Login)
- 🧾 Ask Questions & Submit Answers
- 👍 Upvote / Downvote System for Answers and Questions
- 💬 Commenting System
- 📝 Rich Text Editor for better question formatting
- 🔄 Pagination for questions and answers
- 🔐 Protected Routes with Middleware
- 💡 Modular Component-based Architecture
- 📦 API route management via Next.js (
/api) - ☁️ Fully Integrated with Appwrite (Auth, DB, Storage)
- Next.js – App framework
- React – UI library
- TypeScript – Static typing
- CSS Modules – Scoped and modular styles
- Appwrite – Open-source backend-as-a-service for authentication, database, and storage
- REST-like API routes (
/src/app/api) for backend logic
git clone https://github.com/abhishek-kr01/stackwise.git
cd stackwise
2. Install Dependencies
npm install
3. Create and Configure .env File
Rename .env.sample to .env and add your Appwrite project configuration:
NEXT_PUBLIC_APPWRITE_HOST_URL=https://cloud.appwrite.io/v1
NEXT_PUBLIC_APPWRITE_PROJECT_ID=your_project_id
APPWRITE_API_KEY=your_api_key
4. Run Development Server
npm run dev
Visit: http://localhost:3000
🧪 Functional Modules Overview
Module Description
auth Handles user registration and login using Appwrite Auth
questions Post new questions with rich formatting support
answers Submit answers to questions
comments Add comments to both questions and answers
votes Upvote/downvote logic with backend integration
pagination Load more questions or answers dynamically
middleware Protects routes from unauthenticated access
🧠 Future Improvements
🔍 Search and filter functionality
📈 View count per question
🏷️ Tags and categories
🧾 Markdown editor with preview
👥 User profiles and contributions tracking
🗂️ Admin panel for moderation
🤝 Contributing Contributions are welcome!
Fork the repository
Create a new branch (git checkout -b feature/YourFeature)
Commit your changes (git commit -m 'Add new feature')
Push to the branch (git push origin feature/YourFeature)
Open a Pull Request
🙏 Acknowledgements
Appwrite — for providing a robust open-source BaaS
Next.js — for a seamless developer experience
Stack Overflow — for inspiration