dev-krish-xyz / OpenStore
git clone https://github.com/dev-krish-xyz/OpenStore.git
A curated directory for discovering open-source alternatives.
—
stars, 24h
—
stars, 7 days
+76
stars, 30 days · #2,954
76
★ total
10
forks · 3 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageTypeScript
LicenseMIT
Created2026-10-05 (15d ago)
Last push13d ago
Watchers1
OwnerUser
Links
- GitHub: github.com/dev-krish-xyz/OpenStore
- Homepage: https://openstore.site
- Releases · Issues · Hacker News mentions
README excerpt
# OpenStore OpenStore is a curated directory for discovering well-made open-source alternatives to proprietary software. Live at openstore.site. Every listing is reviewed by hand and shows what a project replaces, where it runs, how active it is on GitHub, its license, official links, screenshots, and related projects. ## Highlights - Browse 64 curated projects across 14 categories, from AI and developer tools to design, video, privacy, finance, home and network, and games. - Search by app name, category, description, or the proprietary tool a project replaces, or jump anywhere with the ⌘K command menu. - Filter by category, platform, GitHub stars, weekly trending, self-hosting, and user reviews. Every filter lives in the URL, so results are shareable. - Follow GitHub momentum on the Trending page and see recently created projects on New. - Suggest a project, vote on community finds, and request alternatives that don’t exist yet; editors review everything before it joins the catalog. - Use it comfortably on any device, in light or dark mode. ## Built with Next.js App Router, React 19, and TypeScript, styled with Tailwind CSS v4 and shadcn/Radix primitives. App pages are statically generated; community features run on SQLite with GitHub OAuth. ## Run locally OpenStore requires a current Node.js LTS release. [code] Open http://localhost:3000. | Command | Purpose | | --- | --- | | `npm run dev` | Start the local development server. | | `npm test` | Validate catalog data, metadata, assets, and filtering behavior. | | `npm run build` | Create and validate the production build. | | `npm start` | Serve a completed production build. | | `npm run typecheck` | Type-check the application with TypeScript. | ## Community discovery setup Guest app submissions use a public GitHub repository URL and do not require sign-in. Voting, private feedback for editors, wanted alternatives, and moderation use GitHub OAuth and SQLite. To enable those account features, copy `.env.example` to `.env.local`, create a GitHub OAuth app, and configure its callback as `http://localhost:3000/api/auth/github/callback` for local development. Set `ADMIN_GITHUB_LOGINS` to the comma-separated GitHub logins that may review submissions. The default database is `.data/openstore.sqlite`. Set `OPENSTORE_DB_PATH` to a file on persistent storage in production; ephemeral serverless filesystems will not retain community data. The schema is initialized from `db/schema.sql`. A local admin sign-in is shown only during development so the full moderation flow can be used without an OAuth app. The community pipeline keeps editorial ownership explicit: 1. Anyone submits a public GitHub repository. OpenStore fetches its public metadata and prevents duplicate catalog entries or submissions. 2. The project appears in recent Community Finds as pending, where signed-in users can vote once, see whether they voted, and leave one editable feedback note for editors. 3. An editor sees every submission, its vot