Open-source directory of apps, websites, and services that let people connect Lightning and Bitcoin wallets.
This repository contains the standalone website for the directory. It is a static client app built to be hosted on GitHub Pages or any other static host.
- Search and faceted filters for apps
- Featured apps section
- Wallet subcategories
- Platform, protocol, and Alby-product tags
- Custom card layout, hover motion, and hero/footer imagery
- Vite
- React
- TypeScript
- Tailwind CSS
- shadcn-style UI primitives
- Vitest
- Playwright
npm install
npm run devOpen the URL shown by Vite.
npm run build
npm run previewnpm run test
npm run test:e2eThe app data is fully local and typed. The main source of truth lives in:
src/data/apps.jsonsrc/data/apps.tssrc/types/discover.ts
Selector and filtering logic lives in:
src/lib/discover.ts
Assets live in:
public/images/discoverpublic/images/icons
This is an open-source project. The workflow is:
- Fork the repository.
- Create a branch for your change.
- Add or update app entries in
src/data/apps.json. - If needed, add icons or imagery to
public/images/discoverorpublic/images/icons. - Run the checks:
npm run build npm run test npm run test:e2e - Open a pull request.
Each app entry can include:
titledescriptionurlcategoriesplatformsprotocolsproductswalletSubcategoryimage
Use the existing app records as examples. Keep URLs correct, descriptions short, and tags aligned with the app’s actual capabilities.
If an app uses:
NWC, tag it withnwcWebLN, tag it withweblnor set it as a web app so the derived rule appliesBitcoin Connect, tag it withbitcoin_connectAlby Hub,Alby Extension,Alby Go, orAlby Account, add the appropriate product tag
If you add a new image, place it in the appropriate folder and point the app record’s image field to it. Prefer static assets over remote image URLs.
The site is configured for GitHub Pages with a relative base path. The deployment workflow lives in:
.github/workflows/deploy-pages.yml
- There is no backend or API.
- Search, filters, and results are all client-side.
- The goal is to keep the directory fast, static, and easy to contribute to.