The easiest way to download apps from GitHub. Paste a repo link, get the download.
Simply add dl after github in any GitHub repo URL:
github.com/... becomes -> githubdl.com/...
Try me!
https://githubdl.com/Vedinsoh/github-downloader
Or...
Go to githubdl.com and paste any GitHub repo link
(e.g. https://github.com/obsidianmd/obsidian). You'll land on a clean page
with the right download for your OS surfaced first.
Direct shapes also work:
githubdl.com/{owner}/{repo}— latest releasesgithubdl.com/{owner}/{repo}/v/{version}— a specific versiongithubdl.com/{owner}/{repo}/v/latest— alias to the latest non-prerelease
- Auto-detects your OS from the User-Agent and surfaces the matching download as the primary action.
- Groups other-OS downloads in a collapsed section, so they're one click away.
- Hides unnecessary files, surfaces only actual program files.
- Beta toggle (
?beta=show) for repos where the latest release is a pre-release. - Share-link previews:
/{owner}/{repo}URLs unfurl with an Open Graph image on Discord, Slack, Twitter, etc.
Server-rendered Next.js app deployed to Cloudflare Workers. Releases are
pulled from the GitHub REST and GraphQL APIs, normalized into a small
storage shape, and cached at three layers (a request-scope unstable_cache,
a Cloudflare KV blob as the application source-of-truth, and OpenNext's R2
incremental cache). The asset classifier maps filenames to OS + architecture
so the right download lands at the top.
Stack:
- Next.js 16 (App Router) + React 19 + TypeScript
- Tailwind v4 + shadcn/ui
- Zod 4 for input parsing and API shape validation
- Cloudflare Workers (Paid) via
@opennextjs/cloudflare - Cloudflare KV (releases blob), R2 (Next cache), D1 (tag cache), Durable Objects (revalidation queue), Workers Rate Limiting, Workers Analytics Engine
- pnpm, Vitest
The architecture, caching contract, and explicit out-of-scope list live in CONTEXT.md.
pnpm install
cp .dev.vars.example .dev.vars # fill in GITHUB_TOKEN
pnpm dev # plain Next.js (no Workers runtime)
pnpm dev:worker # full Workers runtime via Miniflarepnpm dev is fastest for UI work. KV and the rate limiter no-op in this
mode. Use pnpm dev:worker to exercise the Workers bindings end-to-end.
Other commands:
pnpm typecheck # tsc --noEmit
pnpm lint # eslint
pnpm test # vitest run
pnpm build # next buildPRs are welcome. Please:
- Read CONTEXT.md first — it covers the architecture, the caching contract, and the deliberate out-of-scope list (no search bar, no accounts, no release notes rendering, etc.).
- Open an issue before larger changes so we can talk scope.
- Run
pnpm typecheck && pnpm lint && pnpm test && pnpm buildbefore pushing.
Source-available under the PolyForm Noncommercial License 1.0.0. Personal use, learning, hobby projects, and contributions back are unambiguously fine. Commercial use requires permission — see the linked license for details.
githubdl.com is not affiliated with or endorsed by GitHub, Inc. "GitHub" is a trademark of GitHub, Inc.