RepoWiper is a GitHub repository management tool. It lets you sign in with GitHub, review your repositories, search and sort them, select multiple repositories, and permanently delete the selected repositories from one focused interface.
RepoWiper uses GitHub OAuth and the GitHub REST API. Users never paste a personal access token into the browser. The OAuth credential is exchanged by the server and stored in an encrypted HttpOnly session cookie. GitHub API requests are made through the server-side Vercel functions.
The application includes:
- GitHub OAuth sign-in
- Public and private repository listing
- Repository search and sorting
- Multi-select repository management
- Permanent repository deletion with confirmation
- Dark responsive interface
- React and TypeScript
- Vite
- Tailwind CSS
- NextUI components
- GitHub REST API
- Vercel serverless functions
Create a GitHub OAuth App from GitHub Settings, then open Developer settings, OAuth Apps, and New OAuth App. For local testing, use this callback URL:
http://localhost:3000/api/auth/callback
Create a .env.local file in the project root:
GITHUB_CLIENT_ID=your_github_oauth_client_id
GITHUB_CLIENT_SECRET=your_github_oauth_client_secret
GITHUB_REDIRECT_URI=http://localhost:3000/api/auth/callback
APP_URL=http://localhost:3000
SESSION_SECRET=your_long_random_secretInstall dependencies:
npm installThe frontend-only Vite server does not execute the Vercel API routes. Use the Vercel development server when testing OAuth locally:
npm install -g vercel
vercel login
vercel link
vercel dev-
Import the repository into Vercel.
-
Deploy once to receive the Vercel domain.
-
Add the exact production callback URL to the GitHub OAuth App:
https://your-project.vercel.app/api/auth/callback -
Add these Production environment variables in Vercel Project Settings, under Environment Variables:
GITHUB_CLIENT_ID=your_github_oauth_client_id GITHUB_CLIENT_SECRET=your_github_oauth_client_secret GITHUB_REDIRECT_URI=https://your-project.vercel.app/api/auth/callback APP_URL=https://your-project.vercel.app SESSION_SECRET=your_long_random_secret
-
Redeploy after saving the variables.
The OAuth scope includes read:user, repo, and delete_repo so RepoWiper can identify the user, list private repositories, and delete repositories. Deletion is permanent, so test with a disposable repository first.