- Vue 87%
- SCSS 5.4%
- JavaScript 4.6%
- HTML 3%
* docs(guides): honesty pass, citations, archive/delete framing Reworks all three guides to remove overclaimed hiring-manager advice, add inline citations for factual claims, and align the archive-vs-delete framing so each action is described by what it's *for* rather than as a preference hierarchy. clean-up-your-github-profile.md - Replace the "this matters for hiring" opener with an honest "Why clean up your profile?" section that leads with the reliable payoff (a profile you can navigate), treats hiring upside as modest, and maps to the steps that follow. - Categorize Step 2 into five buckets (Showcase / Keep / Archive / Private / Remove) with no "Action" column so Step 3 can own the how-to. Drop the duplicated "Worth Archiving (Not Deleting)" subsection. - Restructure Step 3 around purpose: Archive (reference and history), Make It Private (work not ready to share), Delete (repos you don't need). No "last resort" framing. - Merge old Step 4 (Pin) and Step 5 (Polish) into one "Pin and Polish Your Best Work" step; renumber Step 6 to Step 5. - Add a Sources section with inline <sup>[N]</sup> anchors linking to an anchored <ol> (no new deps — marked passes raw HTML through). - Drop the Ben Frederickson name-drop inline (he's a credible engineer but not a hiring authority); keep the link in Sources. archive-vs-delete-github-repos.md - TL;DR: "Delete if you're certain it's worthless" -> "Delete if you don't need it". Reframe the "Archive First" strategy as one tactic for borderline piles rather than a universal recommendation. - Add a Sources section citing GitHub's deleted-repo restore docs. bulk-delete-github-repositories.md - Narrow "why bulk delete" examples to genuine delete candidates; add pointer to archive-vs-delete for code worth keeping. Drop "best" marketing framing on method 1. Strunk pass across all three guides: active voice, positive form, drop filler, parallel structure. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * test(e2e): add Argos VRT coverage for /guides/* pages Four full-page screenshots: guides index + three individual guide pages. Previously the guides were unprotected by visual regression, so content changes produced no diffs — no baselines existed to diff against. Guide pages are static HTML served by `vite preview` on port 4173 (not the dev server on 5173), so tests use the PREVIEW_URL pattern established in e2e/guides.spec.ts. First CI run will create new Argos baselines that need approval. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .claude/rules | ||
| .github | ||
| .husky | ||
| content/guides | ||
| e2e | ||
| public | ||
| scripts | ||
| src | ||
| worker | ||
| .env.example | ||
| .gitignore | ||
| .node-version | ||
| .prettierignore | ||
| .prettierrc | ||
| .release-please-manifest.json | ||
| AGENTS.md | ||
| bun.lock | ||
| CLAUDE.md | ||
| CODE_OF_CONDUCT.md | ||
| components.json | ||
| CONTRIBUTING.md | ||
| eslint.config.js | ||
| index.html | ||
| LICENSE | ||
| package.json | ||
| playwright.config.ts | ||
| README.md | ||
| release-please-config.json | ||
| SECURITY.md | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| tsconfig.test.json | ||
| tsconfig.worker.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
| vitest.setup.ts | ||
| wrangler.jsonc | ||
Repo Remover
Bulk view, archive, and delete your GitHub repositories. Zero-knowledge — everything runs in your browser.
Try it now at https://reporemover.xyz
How it works
Repo Remover uses a Personal Access Token with the GitHub API to list your repositories and make changes to them.
- Provide a Personal Access Token
- Select which repos to archive or delete
- Review and confirm your changes
Zero-knowledge architecture: Your token never leaves your browser. No backend, no cookies, no user-identifiable data collection. All API calls are made client-side directly to GitHub.
Note: Tokens are not stored by default. If you opt-in to "Remember Me", your PAT is encrypted (AES-GCM) and stored in localStorage. For optimal security, create a new token each time and delete it when done.
Run locally
Requires Node.js >= 22 and bun.
- Clone the repository
git clone https://github.com/moollaza/repo-remover.git cd repo-remover - Install dependencies
bun install - Start the dev server
bun run dev - Visit http://localhost:5173
Production build
bun run build
bun run preview
Testing
bun run test:unit # Unit tests (Vitest + RTL + MSW)
bun run test:e2e # E2E tests (Playwright)
bun run test:e2e:fast # E2E with fast-fail
bun run test:all # Unit + E2E
Built with
- Vite + React + React Router + TypeScript
- Tailwind CSS v4
- Vitest + Playwright — testing
- Sentry — privacy-first error monitoring
- Fathom Analytics — privacy-focused analytics (public dashboard)
- Deployed on Cloudflare Workers
Contributing
Contributions are welcome! See CONTRIBUTING.md for setup instructions and guidelines.
Security
See SECURITY.md for our security policy and how to report vulnerabilities.
AI-assisted development
This repo includes Claude Code configuration in .claude/ and CLAUDE.md. These files help AI-assisted contributors follow project conventions. They're optional — you don't need Claude Code to contribute.
Author
Zaahir Moolla (@zmoolla, zaahir.ca)