A full-stack web app built with Next.js 13 (App Router) and Supabase that lets users browse, read, and upload manga/manhwa/manhua series.
Includes an admin dashboard for managing series, chapters, and covers.
Access it here: wormscans.ca
- Browse all available series with filters by status (ongoing/completed/dropped) and origin (manga/manhwa/manhua).
- View paginated series lists with search + sorting.
- Read chapters with chapter navigation (prev/next buttons + dropdown).
- Keyboard navigation (โ/โ keys) for quick chapter flipping.
- Back to top button for easy scrolling.
- Mobile friendly.
- Supabase email/password authentication.
- Forgot password & reset password flows.
- Protected admin signup (requires admin key).
- Only users with the admin key can create admin accounts.
- Supabase is configured to not reveal if an email exists during password reset for extra privacy.
- All database actions are performed via Supabase client with RLS (Row Level Security).
- Protected admin authorization (requires login to access admin).
- Manage series (title, description, cover image, status, origin).
- Upload new cover images via Supabase storage.
- Update existing series details.
- Update and delete existing chapter details
- Access to scrape chapters from websites and upload them to WormScans.
- Framework: Next.js 13+ (App Router)
- UI Library: React 18
- Database & Auth: Supabase
- UI & Styling: Tailwind CSS + custom variables (
--background,--card-bg,--accent, etc.) - Icons: Lucide
- Notifications: react-hot-toast
- Scraping & Automation: Python 3, Playwright
git clone https://github.com/junoocha/WormScans.git
cd your-reponpm installIf you somehow get the environment variables or I give them to you, create a .env.local file in the root directory and add:
NEXT_PUBLIC_SUPABASE_URL=why-would-i-give-you-my-key
SUPABASE_SERVICE_ROLE_KEY=imagine-pushing-env-local-to-github
NEXT_PUBLIC_ADMIN_KEY=wait-how-do-you-have-themnpm run devApp will be available at http://localhost:3000