A curated directory for discovering and evaluating open-source software. Browse projects by category, GitHub topic, and license; inspect repository activity; save a shortlist; and submit projects for review.
- Searchable catalogue with hierarchical categories, tags, license filters, Recommended ranking, other sort orders, and observed GitHub star history.
- Project pages with Markdown documentation, media, link previews, shareable SVG badges, and admin-curated featured projects.
- GitHub and email Magic Link sign-in, private bookmarks, submission tracking, rejection feedback, and resubmission.
- Project representative verification, scoped owner/maintainer editing, and membership management.
- Public curated collections, editorial blogs, and an admin-editable About page using the shared public Markdown renderer.
- Monthly advertising with private guest order links, Ko-fi checkout links, manual payment confirmation, artwork review, and explicit renewal.
- Admin workspace for moderation, reports, taxonomy, users, recorded activity, and operational observations.
These describe the current source. Deployment and provider configuration are managed separately. See the PRD for feature behavior and permissions, and the roadmap for planned work.
You need Node.js 22.18 or newer, Vite+, and Docker
with Compose. Vite+ provisions the Bun version pinned in package.json.
From the repository root:
vp install
cp .env.example .envFill in your own development credentials using the configuration section. The API requires PostgreSQL, GitHub OAuth, Upstash Redis REST, and S3-compatible storage configuration. Resend enables email sign-in, project verification emails, and review emails. The example file contains local defaults and placeholders; it does not connect to a shared service or provide working provider credentials.
vp run db:start
vp run db:migrate
vp run --filter @altstack/db db:validate-audit-actions
vp run devOpen the web app. The API listens on
http://localhost:3009. The database starts empty; to populate it, follow the
CSV/JSON import section.
For troubleshooting, targeted tests, and editor setup, see development. For container builds, scheduled workers, and recovery, see deployment.
| Path | Purpose |
|---|---|
apps/web |
React, TanStack Start/Router/Query, Tailwind CSS, and Nitro SSR |
apps/server |
Hono API on Bun and scheduled job entrypoints |
packages/api |
oRPC contracts, authorization, queries, and integrations |
packages/auth |
Better Auth configuration and email authentication |
packages/db |
Drizzle schema, migrations, imports, and test database tools |
packages/env |
Validated server and public web configuration |
packages/shared |
Shared validation, types, and utilities |
packages/ui |
Shared components, styles, and React Email templates |
packages/config |
Shared tool configuration |
data |
Synthetic CSV/JSON import templates |
docs |
Contributor, product, and self-hosting guides |
The five guides below cover local development, the implementation, operations, and product direction:
| Guide | Contents |
|---|---|
| Development | Local setup, configuration, testing, troubleshooting, and data import |
| Architecture | Request/data flow, ranking formula, ad selection/privacy, and rendering |
| Deployment | Builds, migrations, workers, advertising operations, and recovery |
| Product requirements | User needs, feature behavior, permissions, and scope |
| Roadmap | Implemented scope, priorities, and conditional future work |
See CONTRIBUTING.md for bug reports, pull requests, and scoped validation, SECURITY.md for vulnerability reporting, and CHANGELOG.md for notable changes.
A repository license has not been selected yet. No project license is declared. Bundled third-party resources retain their own license notices, including the Inter font license.