Contribute & the tech

We invented as little as possible. On purpose.

Stiq invents no cryptography and no routing. It is a careful assembly of open, public work — Nostr's event layer carried over Tor v3 onion services, membership by RFC 9474 blind signatures — and every line of the assembly is MIT-licensed at olightening/stiq-source. This page is the part where you come in: run it, read it, break it, improve it.

nostrtor v3artirfc 9474nip-44khatrureact nativesqlciphersystemdmit
The open technology

Every load-bearing wall is public.

Each hard problem in Stiq is carried by an open standard or an open project with its own community behind it. What Stiq adds is the assembly — small, readable, and honest about its debts. Every tile links to the project.

NostrThe event layer

Posts, comments, DMs, channels, groups and events are plain Nostr events under standard NIPs — a public wire format, not a private dialect. Leave, and your data is still readable.

nostr.com ↗
TorThe only road

The relay exists as a v3 onion service — no clearnet address, no inbound ports. Members reach it through Tor circuits, with obfs4 and snowflake bridges for networks that block Tor outright.

torproject.org ↗
ArtiTor, in Rust

The app embeds the Tor Project's next-generation Rust client; a classic C-tor build ships beside it. Same app, two engines, chosen at build time.

arti ↗
RFC 9474Blind signatures

Membership is an RSA blind signature: the issuer approves a request it cannot read. An IETF standard, served with Cloudflare's CIRCL library — not homemade cryptography.

rfc-editor.org ↗
khatruThe relay framework

The membership-gated relay is a small Go program built on fiatjaf's khatru and eventstore, keeping events in BadgerDB on hardware you control.

github.com/fiatjaf/khatru ↗
React NativeThe client

One TypeScript codebase on Hermes, with iOS in the tree — and every on-device store encrypted under SQLCipher.

reactnative.dev ↗
One shell scriptThe installer

deploy/stiq-up.sh provisions Tor, the relay and the dashboard on a stock Debian box under systemd — readable top to bottom before you run it as root. Which you should.

read it first ↗
MITThe license

The client, the relay, the issuer, the dashboard and the installer — one license across all of it, no open-core split. Fork it, rebrand it, run your own network.

LICENSE ↗

Exact versions are pinned in the repo — go.mod and package-lock.json are the authoritative list, not this page.

Contribute

This is the ask: help us build it.

Stiq is maintained in the open, with no company behind it — and no telemetry to tell us what's breaking. It learns the way honest software learns: from people who run it, read it, and push back.

Run a real community

The most valuable contribution is a deployment that matters: stand up a relay for a group you actually care about, and tell us where it creaks. Field reports shape this project more than feature ideas do.

Audit the code — we're looking for security eyes

Stiq needs people auditing the codebase, not just the spec: security eyes that take the source apart the way an attacker would — the blind-signature flow, the relay's gates, the on-device stores — with PLAN.md as the map, not the territory. A hole found in the code and reported quietly to evergreenmarble@proton.me is worth more than a hundred stars.

Ship iOS — we need an Apple membership

The app compiles for iOS and runs on the simulator, but the project holds no Apple Developer Program membership and its iOS CI job is failing. If you hold a membership — or know the signing-and-review terrain — this is the single highest-impact gap in the project.

Fork it, white-label it

The branding is deliberately separable from the wire protocol — WHITELABEL.md maps which is which. Taking the stack and running your own network isn't tolerated use; it's the intended kind.

Start where the code is: olightening/stiq-source ↗ Write to us
Ready when you are

Host it. Break it. Improve it.

Free & MIT · your hardware or a $5 VPS · no accounts, ever.
Questions first? evergreenmarble@proton.me