A platform for uploading, sharing, and downloading custom themes for Nintendo 3DS, 2DS, N3DS, and N2DS systems with CFW or Homebrew access.
- Upload & Share: Users can upload custom themes for Nintendo devices.
- Download with QR Codes (Coming Soon): Users can scan QR codes for direct theme downloads.
- Tag & Search System: Find themes easily with custom user-generated tags.
- User Profiles: View user-uploaded themes, categorized by custom sections.
- Thumbs Up/Down Ratings: No like button—only upvotes, downvotes, and download stats.
- Moderation & Approvals: Admins manually approve theme uploads for quality control.
- Authentication: Secure login with email/password and social logins.
- Frontend: Next.js 15 (App Router, TypeScript)
- Backend: FastAPI (Python) with MongoDB (see below)
- Styling: TailwindCSS
- Hosting: Vercel
- QR Code Generation: (To be implemented with a built-in solution.)
src/— Frontend (Next.js)backend/— Backend API (FastAPI, Python, MongoDB)
The backend is a FastAPI application (Python 3.13+) with MongoDB integration. It provides all authentication, user, and theme management endpoints.
-
How to run the backend locally:
cd backend- Install dependencies:
uv syncorpip install -r requirements.txt - Copy and edit environment variables:
cp env.example .env - Run:
python index.py - API docs: http://localhost:8000/docs
-
API details and endpoints: See
backend/README.md
- Clone the Repository
git clone https://github.com/yourusername/switch-theme.git cd switch-themes - Install Dependencies
npm install
- Set Up Environment Variables
Create a.env.localfile and add:NEXTAUTH_URL=http://localhost:3000 DATABASE_URL=mongodb+srv://your-db-uri - Run the Development Server
Open http://localhost:3000 in your browser.
npm run dev
- Fork the repo and create a new branch.
- Make changes, ensuring your code follows the project's style.
- Submit a pull request with a clear description.
This project is licensed under the MIT License. See the LICENSE file for details.
- 🌐 Website: SwitchTheme
- 👾 Discord: Join Here
- 📺 Twitch: CallMeSpeed
- 📰 Reddit: SwitchTheme
