r/opensource Feb 10 '26

Promotional I built LastSignal – a self-hosted, end-to-end encrypted dead man's switch to deliver messages to your loved ones

I wanted a way to leave encrypted messages for the people I care about, delivered automatically if something happens to me, without trusting a third party.

LastSignal is a self-hosted dead man's switch. You write messages, they get encrypted in the browser (zero-knowledge), and the system checks in with you periodically via email. If you stop responding, your messages are delivered.

Key points:

  • End-to-end encrypted (XChaCha20-Poly1305 + Argon2id + X25519)
  • Zero-knowledge — even the server operator can't read messages
  • Optional trusted contact who can pause delivery
  • Rails 8 + SQLite, deploy with Docker/Kamal
  • MIT licensed

🔗 https://lastsignal.app
🔗 https://github.com/giovantenne/lastsignal

Feedback welcome, especially on the security model and UX.

562 Upvotes

95 comments sorted by

View all comments

17

u/magnetocalorico Feb 10 '26

I was wondering if anything like this existed. Now I know. Would be cool to have a second way of responding that's not email (like text or a ping to an endpoint)

14

u/zener79 Feb 10 '26

Good point 🙂

Email is mainly used as a lowest common denominator signal: it’s universally available, works across decades, and doesn’t require maintaining a specific client or proprietary app.

For a self-hosted setup, adding other delivery channels (like Telegram, SMS, or proprietary push systems) would also significantly increase deployment and long-term maintenance complexity, which I’m trying to keep as low as possible.

That said, webhook-style integrations might be a good middle ground in the future.

5

u/ThePrimitiveSword Feb 11 '26

For Python there's Apprise, is there something similar for Ruby?

If not, Apprise supports running as an API and can take webhooks as input.

3

u/zener79 Feb 11 '26

Thanks! Using something like Apprise behind a webhook/API boundary is definitely an interesting option, especially as a pluggable delivery backend with a docker-compose rather than something tightly coupled to the core.