A modern, full-stack Q&A platform inspired by Stack Overflow, built with Next.js 15, Appwrite, and TypeScript. This application provides a seamless developer experience for asking questions, sharing knowledge, and building a community.
- π User Authentication - Secure sign-up and login with Appwrite Auth
- β Ask Questions - Post questions with rich text formatting
- π¬ Answer & Comment - Engage with the community through answers and comments
- β¬οΈ Voting System - Upvote/downvote questions and answers
- π·οΈ Tags & Categories - Organize questions with tags for easy discovery
- π Search & Filter - Powerful search functionality to find relevant questions
- π€ User Profiles - View user activity, reputation, and contributions
- π Reputation System - Earn reputation points for helpful contributions
- π¨ Modern UI/UX - Clean, responsive design with Tailwind CSS
- β‘ Real-time Updates - Instant updates powered by Appwrite
- Frontend: Next.js 15 (App Router), React 19, TypeScript
- Backend: Appwrite (BaaS)
- Styling: Tailwind CSS
- Font: Geist Font Family (optimized with next/font)
- Deployment: Vercel (recommended)
Before you begin, ensure you have the following installed:
- Node.js 18.x or higher
- npm, yarn, pnpm, or bun
- An Appwrite account (Sign up here)
stackoverflow-appwrite/
βββ app/ # Next.js app directory
β βββ (auth)/ # Authentication pages
β βββ (main)/ # Main application pages
β βββ api/ # API routes
β βββ layout.tsx # Root layout
β βββ page.tsx # Home page
βββ components/ # Reusable React components
βββ lib/ # Utility functions and configurations
β βββ appwrite.ts # Appwrite client setup
β βββ utils.ts # Helper functions
βββ public/ # Static assets
βββ styles/ # Global styles
βββ types/ # TypeScript type definitions
- Users can sign up with email/password or OAuth providers
- Session management handled by Appwrite
- Protected routes for authenticated users
- Create questions with rich text editor
- Add tags for better categorization
- Accept answers to mark them as solutions
- Vote on questions and answers
- Earn points for helpful contributions
- Upvotes on your questions/answers increase reputation
- Accepted answers provide bonus points