No description
  • Vue 87%
  • SCSS 5.4%
  • JavaScript 4.6%
  • HTML 3%
Find a file
Zaahir Moolla 037903f40a
docs(guides): hedge claims, add citations, align archive/delete framing (#223)
* 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>
2026-04-18 13:34:35 -04:00
.claude/rules perf: defer Octokit/auth from home route + harden CLS on marketing surfaces (#222) 2026-04-18 11:28:47 -04:00
.github ci: add automated releases with release-please (#211) 2026-04-09 02:32:29 -04:00
.husky feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
content/guides docs(guides): hedge claims, add citations, align archive/delete framing (#223) 2026-04-18 13:34:35 -04:00
e2e docs(guides): hedge claims, add citations, align archive/delete framing (#223) 2026-04-18 13:34:35 -04:00
public feat: SEO optimization and /guides section (#217) 2026-04-18 00:03:40 -04:00
scripts feat: SEO optimization and /guides section (#217) 2026-04-18 00:03:40 -04:00
src perf: defer Octokit/auth from home route + harden CLS on marketing surfaces (#222) 2026-04-18 11:28:47 -04:00
worker fix(seo): Cloudflare Worker for redirects and canonical header (#221) 2026-04-18 11:28:26 -04:00
.env.example feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
.gitignore feat: SEO optimization and /guides section (#217) 2026-04-18 00:03:40 -04:00
.node-version feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
.prettierignore feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
.prettierrc feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
.release-please-manifest.json ci: add automated releases with release-please (#211) 2026-04-09 02:32:29 -04:00
AGENTS.md feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
bun.lock fix(seo): Cloudflare Worker for redirects and canonical header (#221) 2026-04-18 11:28:26 -04:00
CLAUDE.md fix(seo): Cloudflare Worker for redirects and canonical header (#221) 2026-04-18 11:28:26 -04:00
CODE_OF_CONDUCT.md feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
components.json feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
CONTRIBUTING.md ci: add automated releases with release-please (#211) 2026-04-09 02:32:29 -04:00
eslint.config.js fix(seo): Cloudflare Worker for redirects and canonical header (#221) 2026-04-18 11:28:26 -04:00
index.html feat: SEO optimization and /guides section (#217) 2026-04-18 00:03:40 -04:00
LICENSE feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
package.json fix(seo): Cloudflare Worker for redirects and canonical header (#221) 2026-04-18 11:28:26 -04:00
playwright.config.ts feat: SEO optimization and /guides section (#217) 2026-04-18 00:03:40 -04:00
README.md feat: SEO optimization and /guides section (#217) 2026-04-18 00:03:40 -04:00
release-please-config.json ci: add automated releases with release-please (#211) 2026-04-09 02:32:29 -04:00
SECURITY.md feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
tsconfig.app.json deps: bump the all-dependencies group with 18 updates (#210) 2026-04-09 02:09:56 -04:00
tsconfig.json fix(seo): Cloudflare Worker for redirects and canonical header (#221) 2026-04-18 11:28:26 -04:00
tsconfig.node.json feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
tsconfig.test.json feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
tsconfig.worker.json fix(seo): Cloudflare Worker for redirects and canonical header (#221) 2026-04-18 11:28:26 -04:00
vite.config.ts perf: defer Octokit/auth from home route + harden CLS on marketing surfaces (#222) 2026-04-18 11:28:47 -04:00
vitest.config.ts feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
vitest.setup.ts feat: Repo Remover v2 — complete rewrite (#209) 2026-04-09 01:08:51 -04:00
wrangler.jsonc fix(seo): Cloudflare Worker for redirects and canonical header (#221) 2026-04-18 11:28:26 -04:00

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.

  1. Provide a Personal Access Token
  2. Select which repos to archive or delete
  3. 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.

  1. Clone the repository
    git clone https://github.com/moollaza/repo-remover.git
    cd repo-remover
    
  2. Install dependencies
    bun install
    
  3. Start the dev server
    bun run dev
    
  4. 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

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)

Star History

Star History Chart

License

MIT