Witnesses hold the key
When your witness accepts the invite, their device creates a private signing key that never leaves it. From then on your photos, notes and timers are claims; a check-in counts only when your witness signs it.
Put a stake on a promise, name a witness, show proof before the deadline. Miss it and you pay your chosen cause yourself, in full.
It was built as a free alternative to Forfeit, which charges a subscription and keeps forfeited stakes.
Everything runs in your browser as an installable, offline PWA.
When your witness accepts the invite, their device creates a private signing key that never leaves it. From then on your photos, notes and timers are claims; a check-in counts only when your witness signs it.
Confirmations are signed with ECDSA P-256. A forged confirmation, or a signature copied onto another vow, is rejected.
Miss it without proof and the vow breaks on its own. The stake goes into an owed ledger and a confession for your witness is drafted.
Pick a deadline, a stake and the cause that gets it if you miss.
Show them the QR code or send the link.
Before the deadline, add a photo, note or timer; your witness signs it.
The vow breaks on its own and Vow records what you owe your cause.
When your witness accepts the invite, their device creates a private signing key that never leaves it. From then on your photos, notes and timers are claims; a check-in counts only when your witness signs it.
Confirmations are signed with ECDSA P-256. A forged confirmation, or a signature copied onto another vow, is rejected.
Miss it without proof and the vow breaks on its own. The stake goes into an owed ledger and a confession for your witness is drafted.
Raising a stake is instant. Lowering, delaying or deleting waits 24 hours. If the next deadline is more than a day away, deleting means walking away: you owe the stake or your witness signs you off.
Log the transaction reference and a receipt photo. Your witness signs the payment on their phone; forged or copied confirmations are rejected.
A photo taken live with the camera inside Vow (no gallery uploads), a written note, a focus timer that restarts if you leave, or your witness's word.
Debts older than 7 days block new vows until you log a receipt. Erasing your data keeps unpaid debts.
Per-vow history dots, a 12-week heatmap, a monthly summary and calendar (.ics) reminders, in light or dark.
From the README’s “Run it yourself” section. Full options, requirements and troubleshooting are there too.
Open the README$ git clone https://github.com/juw12/vow
$ cd vow
$ python -m http.server 8080
# open http://localhost:8080
Straight from the README, so you know what you're getting before you try it.
15 files in the repo.
Browse the codeWeb, PWA. You can try it in the browser with nothing to install.
The commands in the “Run it yourself” box above come straight from the README. Paste them into a terminal; the README covers options and troubleshooting.
Vow has no server and no account. Export a backup now and then; it includes the signing keys for vows you witness.
Vow cannot charge you. You pay your cause yourself; your witness is what makes it real. Until your witness accepts the invite, proof is on your honor.
Not yet: it's marked “live” and still changing. The README always has the current state.
The source is public on GitHub under the MIT licence.
Juwen Lie, an R&D mechanical engineer in Batam, Indonesia, as an independent personal project.
Keep the promises you make to yourself.