Skip to content

Tech stack ​

Server (server/) ​

ConcernLibrary
RuntimeNode.js 20+, ES modules
HTTPExpress 4
ValidationZod
DatabasePostgreSQL via Prisma 6
Stellar@stellar/stellar-sdk (Horizon)
RealtimeSocket.io 4
Authjsonwebtoken, bcryptjs
Security headersHelmet, CORS
Rate limitingexpress-rate-limit
UploadsMulter (memory) → Cloudinary or local disk
EmailNodemailer
QR codesqrcode
TestsVitest

Client (client/) ​

ConcernLibrary
UIReact 18
BuildVite 6
StylingTailwind CSS 3
StateZustand (persisted auth)
RoutingReact Router 6
Realtimesocket.io-client
Iconslucide-react
TestsVitest

External services ​

ServiceUsed forRequired
Stellar HorizonBalances, payments, escrowYes
FriendbotFunding testnet walletsTestnet only
Smile IDBVN/NIN verificationNo — falls back to manual review
CloudinaryPayment proof storageNo — falls back to local disk
SMTP providerVerification and reset emailsNo — logs to console

The repository is an npm workspace: run npm install once at the root.

Nexlm is a peer-to-peer facilitator and never holds customer Naira.