399 karma · joined January 5, 2026
FYI, the online tool to test without signing up (https://hackernewsalerts.com/view-comments-replies/) didn’t work for my username.
EDIT: Perhaps that was an apt warning. After signup I received 20 updates for comments that weren't mine. Possibly leaking the usernames of other subscribers to the service.
Thanks for confirming that most people are just refreshing their threads page. I was hoping for a better solution, but it is what it is.
If you build it, reply to this comment and hnreplies might tell me about it...
You're right that normal dead man's switches create unnecessary notifications. By definition, every check-in you acknowledge is unnecessary. Only the last one, when you're actually dead, is necessary.
So you invert it: from push-based to pull-based. This creates a different set of issues. Now your partner or contacts must keep the app installed and set up over the years. They will change phones, life will happen. But if they don't properly custody their keys, they won't be able to access the data when they need it most.
There's an argument for both approaches, and neither is necessarily superior. When we built our dead man's switch, we were thinking of sending a last message to non-technical people who aren't good at long-term key custody. But if your recipients are more technical or you expect this to be needed in a short timeframe, this approach reduces notifications, which is a plus.
By the way, kudos for your cryptographic choices and for making the app code source-available. The next step would be reproducible builds with instructions for manual builds from source. Otherwise, I can't be sure that what I'm installing matches the published codebase, which diminishes the value of sharing the code.
What I'm curious about: how is this different from Bitwarden's Emergency Access? You can upload attachments to your vault and set different emergency contacts for different vaults. So if you're already using Bitwarden as your password manager, why not use its Emergency Access feature too?
I completely agree with your plain-old logging list. I would add canonical log lines in addition to the normal log traces. They serve as the summary at the end.
The idea is to consolidate all that can be grouped into one logical unit. So you would do one long log line at the end, after all tasks are done.
For the longest time, I've done the bare minimum and just used console.log/print for whatever I thought I needed in that particular piece of code; without any coherent system.
The only way to make a message-sending service truly zero-knowledge is to require contacts to upload a public key beforehand and encrypt every message with that key before storage in the database.
Unfortunately, this approach requires contacts to be technical people who understand encryption, keys, and key custody. When you die, you want to reach your family and friends—not only the tech-savvy ones.
So we encrypt messages at rest with a key stored separately from the database. This forces attackers to compromise two separate infrastructures (and before we notice and rotate the keys) to access any data. When sending the messages, we decrypt them in memory and deliver them in plaintext. That way, your parents don’t need a computer science degree to read your last message.
And if your threat model requires it, you can also use our Portable Secret to password-protect the documents. We provide both options.
You can also add a friend or even yourself with another email address as the first contact to notify before it sends the final messages. This friend can ping you, and you can acknowledge before it notifies your other contacts.
I'm also publishing a hackernews daily digest.
This story was included in the March 9th issue (https://hn.alcazarsec.com/daily?date=2026-03-09).
Hacker News users are currently developing a diverse range of projects, from a retro-inspired city builder game [0] and an award-winning daily word puzzle [4] to a European-based search engine alternative [2] and a NSFW filter for the Marginalia search engine [8]. Several developers are focusing on practical tools for family and personal life, including an educational site to help relatives identify AI-generated content [1], a "statphone" for emergency family alerts [3], and a local-first financial tracking app using double-entry accounting [6]. Others are experimenting with advanced technical implementations, such as using LLM agents to backtest stock trading strategies [5], "vibe-coding" CLI tools, and designing a new language for bare-metal embedded devices [7].This seems unlikely, however, since our infrastructure costs for the dead man's switch are covered by just a handful of subscriptions. Besides, we host it next to our other more profitable main product, so it gets free maintenance.
We are up for the challenge of making this last for many decades, though. It is a beautiful mission.
- Portable Secret (https://alcazarsec.github.io/portable-secret/) - self-contained HTML files that decrypt in the browser.
- Dead Man's Switch (https://alcazarsec.com/deadmanswitch) - sends messages when you stop checking in.
- Flare (https://alcazarsec.com/) - silent alert when your device is accessed without authorization.
We spend ours on our laptops and assume others do too. But many people don't even own a laptop. They handle all their computing needs from their phones, using proprietary apps, with the data living in WhatsApp messages.
I have used rhash (https://github.com/rhash/RHash) before to do something similar - but with all the hashes for a directory stored in a single file (which I can diff against past or future versions).
Backing up private data and verifying it for corruption is crucial.
We would rather err on the side of not knowing about our customers. But it’s a choice that comes with consequences.
As you mentioned, we mitigate this with:
- Multi-channel verification: We send check-in links to multiple channels at once (email, Telegram, Signal). It’s unlikely you’ll miss all of them accidentally.
- Long escalation times: You can set the grace period up to 3 months - far longer than most vacations and longer than anyone we’ve met has been away from their phone.
- Tiered escalation: We keep sending check-ins until it’s time to alert your contacts.
- Trusted contacts: You can alert a friend earlier than family, and they can warn you that messages are about to go out.
Thank you for checking us out! If you’d like to discuss anything else or share more feedback, reach out: https://alcazarsec.com/contact
I do two separate summaries: one for the story (sometimes impossible if paywalled) and one for the comments.
AMA about technical implementation.
The formalization interests me. Shame they shifted the UUID 2 bits right. Otherwise our implementations would be almost compatible (only the last 2 bits of the 26th character + the last 3 characters would differ). In my next clean codebase, I may use TypeID and append a 15-bit checksum.
If you can coordinate people that well, a simpler dead man's switch also works (e.g., tell Dad to open the safe and read the seed phrase).
Not everyone is privacy-conscious, but a few others will be too.
Besides that, it looks like a fun approach.
Each word's first three letters must be a unique sequence (XXX-).
Each word's last three letters must be a unique sequence (-XXX).
Each word's first and last letters must be a unique sequence (X--X).
The Damerau-Levenshtein distance between any two words is at least 2.
Hex: c7098580125e2ab0981253468b2dbc52
Bytewords: slot axis limp lava brag holy door puff monk brag guru frog luau drop roof grim
minimal: staslplabghydrpfmkbggufgludprfgmI have posted a Show HN with the link to the tool: https://news.ycombinator.com/item?id=47168000
Source code: https://github.com/alcazarsec/portable-secret
Exactly right.
From our logs, the main outage went from 21:01 to 21:10 UTC.
EDIT: Also https://status.hetzner.com/incident/affecfea-fd04-41a1-a680-... (Fault report on Cloud API and Hetzner Console)