PosterChan is the Android half of a Nostr-powered personal cloud and a self-hosted AI powerhouse
that runs on hardware you own. Your notes, calendar, contacts, files, passwords and mail live as encrypted
Nostr events on a relay you run — no account with anybody, no subscription, no vendor holding the keys.
The personal cloud
- Notes: private, offline-first, encrypted to your own key. Write with no signal; it syncs when you have one.
- Calendar and contacts: real CalDAV/CardDAV, so your phone's own calendar and contacts apps sync
with your node like any other server — one account for both. - Files and folder sync: keep Documents and Pictures in step between phone and desktop through your own
node. Contents are encrypted before they leave the device, so your server stores a folder it cannot read. - Password manager: logins, one-time codes (TOTP) and a generator, with Android autofill offering
them in your other apps and browsers. Every entry is encrypted on your device — the relay holds ciphertext. - Bookmark sync: the companion add-on (Firefox, Chrome, Edge, Brave) keeps bookmarks in step across
browsers, sealed with the same vault key. - Mail: your own IMAP/SMTP accounts, mirrored as encrypted events so search works without a round trip.
The AI powerhouse
- Chat: streaming LLM conversations against your own models or any OpenAI-compatible API.
- Generation: images, music and video, produced on your own GPU rather than someone's rented one.
- Private search: a metasearch engine bundled with your node, with AI overviews and citations.
- Live streaming: go live from your camera or screen (NIP-53), and watch other people's streams.
- Voice and video calls: 1:1 and group, over WebRTC.
And a full Nostr client: feeds, threads, profiles, DMs, communities, mini apps and a web-of-trust relay.
Monero Zaps: tip any post or person in Monero (XMR) with the ɱ button — private money for a private
network, from the built-in Monero micro-wallet or the wallet you already use — right beside Lightning zaps.
Self-hostable by design — point the app at your own instance; the default is poster.place.