This project is experimental. Use at your own risk!
Swarmstr is a bit like Quora or StackOverflow but as social media commons built on top of Nostr.
React front-end is served by express.
Requires redis (server side caching), postgres (nostr addresses database) and a separate search relay (https://github.com/darashi/searchnos) for search results.
Both back-end and front-end use NDK to interact with nostr.
Upon successful application start, a subscription to a given hashtag is started. By default only events no older than ~ 7 days will be fetched (you can change that in server/server.tsx -> EVENTS_SINCE variable). Received events are re-broadcasted to the search relay.
IndexedDB is used for caching on the client side (dexie).
src/resources/Config.ts
.development.env
cp .example.development.env .development.env
.env
cp .example.env .env
Install deps
npm i
Development
npm run start:dev
Prod
Build client
npm run build:client
Build server
npm run build:server
Run
node ./dist/server.js
Search 🔍
Nostr
npub178umpxtdflcm7a08nexvs4mu384kx0ngg9w8ltm5eut6q7lcp0vq05qrg4