portofel

all your money, from every bank you use, on one screen — this page is also the git repo.

open the app browse the code clone the repo

Clone

This site serves the repository over git's dumb-HTTP protocol as plain static files (plain files — there is no git server here, or any server at all):

git clone https://git.ardegazu.ro/portofel.git
cd portofel

What it is

portofel is the suite's wallet: one card per bank you use, the balance big, the issuer visible, and a send button that pays any friend who holds an account there. A balance is a fold over that bank's encrypted log — this app holds your bank links, replicates each log as an ordinary banca member, and computes every number locally. There is deliberately no total across banks: different issuers are different currencies, and the wallet never pretends otherwise. Installable PWA — works saved to an iOS home screen, safe-area aware.

How it works

What's in the repo

client/src/portofel/app/ — the wallet

ClojureScript, no framework: the bank directory (banks.cljs), the headless bank session (bankroom.cljs — banca's fold, compiled from the sha-pinned banca sources, never a transcription), the store, and the one-column card UI with its send sheet.

the kits — compiled from source, off the classpath

The shared rooms core (ardegazu-rooms-kit), the suite identity (ardegazu-id-kit), friends and presence (ardegazu-social-kit), the money artifacts (ardegazu-wallet-kit) and banca's pure namespaces — all sha-pinned npm git deps whose ClojureScript compiles into this build.

deploy/ — the publish pipeline

publish-repo.sh builds this very site: landing page + bare mirror exploded to loose objects (static file servers and git's dumb-HTTP protocol agree on "every path must exist"), with an anonymity gate that refuses to publish identity-bearing bytes.

Run it yourself

cd client && npm install && npm run dev   # :5173

Deploy: npm run build, then publish client/dist/ as static files anywhere — IPFS, a CDN, a folder behind nginx. It needs nothing but a libp2p circuit relay it's allowed to talk to (see src/portofel/config.cljs).

Guarantees & limits, honestly