Sign in

Daniel Norman

@norman.life
755 followers 786 following 370 posts

building software and writing about it Currently working on @radicle.dev and @ipfs.tech local-first software, bicycles, motorbikes, woodworking, fixing,and making stuff norman.life agencymatters.xyz

PostsRepliesMedia
Daniel Norman @norman.life · 03/09/2026
Where it gets interesting is how repositories are identified. In Radicle, repositories are identified by a hash of its genesis identity document. In Tangled, repositories are identified by a `did:plc`, which similarly is a hash of the signed genesis did document.
160
Daniel Norman @norman.life · 19/08/2026
Must read for those curious about GitHub alternatives, like @radicle.dev and @tangled.org and how they embrace local-first workflows. Exciting to see the Zig community embrace @radicle.dev!
One issue is that Tangled doesn’t seem focused on local-first workflows, meaning that it doesn’t have a way to download Issues in order to view and manage them while offline. It would definitely be possible to implement this, given how atproto works, although it would be less elegant than Radicle’s solution where Issues and PRs are stored in the repository itself, meaning that one pull is enough to get everything at once.

A bigger reason why Radicle is better suited, is that Tangled is federated, while Radicle is p2p. The difference between these two approaches is sometimes hard to see, but here’s an aspect that makes it pretty clear: looking at Issues.

On Radicle there is no authoritative view of what “the Issues” of one repository look like. It all depends on your seeding policy. If you decide to seed all “forks”, then you will see all Issues that exist on the network, but you could also choose a more restrictive policy, where you only seed “forks” from a short list of authors that you follow. In this second case you wouldn’t have to worry about spam because even if a malicious user somewhere is creating spam Issues, those would never reach you (and if you were to choose the ‘seed all’ policy, you would still be able to ban them).

Most importantly, this is a choice made per-node. Each Radicle user can choose for themselves what they want to see.
052
Daniel Norman @norman.life · 12/06/2026
HN is full of gems like this news.ycombinator.com/item?id=3458...
2100
Daniel Norman @norman.life · 27/02/2026
Kubo v0.40.0 is packed with UX and performance improvements: Reproducible CID Profiles better connectivity diagnostics Friendlier ipfs dag stat output Improved content providing after startup Command to publish signed IPNS without key & more @ipfs.tech github.com/ipfs/kubo/re...
050
Daniel Norman @norman.life · 24/02/2026
Happy to announce that I’ve officially started obsessing over CO2. I’ve long been an avid Stoßlüfter — the German word for “House Burper”, but now I’m equipped with data Ah yes, another source of self-imposed anxiety in the name of “optimising my life” 👌
490
Daniel Norman @norman.life · 22/01/2026
Microsoft Lens joining the enshittification ranks
100
Daniel Norman @norman.life · 20/01/2026
And that’s what it looked like
110
Daniel Norman @norman.life · 12/01/2026
Just finished reading the @radicle.xyz Protocol Guide I love the elegance and how radicle piggybacks git and other foundational building blocks like noise xk (like @libp2p.bsky.social) with ed25519 keys which double as identities. More to come as I dive deeper radicle.xyz/guides/proto...
0113
Daniel Norman @norman.life · 02/09/2025
Apple now recommends SMB over AFP for network attached storage. Setting up my #homelab
030
Daniel Norman @norman.life · 29/08/2025
How did notion detect I'm in a meeting (in Chrome) and how do I disable it? I checked in the macOS Privacy & Security settings and Notion isn't listed there
120
Daniel Norman @norman.life · 16/08/2025
If Wifi-Aware on iOS and Android works well, it'll give birth to a wave of software truly elevating user agency P2P all the way down the bottom of the OSI layer unlocks use cases previous hard with syncing data in mesh nets. @libp2p.bsky.social @ipfs.tech @iroh.computer @radicle.xyz @canvas.xyz
2121
Daniel Norman @norman.life · 30/07/2025
TIL: BlackHoleBlockstore can be used to calculate CIDs without keeping the blocks with Helia @ipfs.tech github.com/ipfs/js-stor...
050
Daniel Norman @norman.life · 23/07/2025
Trust @gordon.bsky.social to formulate the nature of a problem so eloquently Signed Zero-trust DaTa. Pronounced "Samizdat". Signed CBOR for censorship-resistant data archives. github.com/gordonbrande...
061
Daniel Norman @norman.life · 22/07/2025
OpenTrackr, a free to use Torrent tracker, serves tens of millions of users and handles ~200K connections per second on commodity hardware. It runs the open source erdgeist.org/arts/softwar...
0103
Daniel Norman @norman.life · 18/07/2025
True. Btw UPI (Unified Payments Interface) in India is a great example of self owned payment infra that has been widely adopted and is largely a success. I couldn’t believe it the last time I visited. Every street vendor accepted it.
2120
Daniel Norman @norman.life · 17/07/2025
Simplified and community-driven man pages. `npm install -g tldr` Thanks me later
120
Daniel Norman @norman.life · 17/07/2025
Are you cypherpunk? @kuehlewindt.com at @web3summit.com
0166
Daniel Norman @norman.life · 28/05/2025
What an amazing community @localfirstconf.com
040
Daniel Norman @norman.life · 21/05/2025
New torque wrench for overhauling an old Italian bicycle
Torque wrench
030
Daniel Norman @norman.life · 30/04/2025
Correct. IPFS can complement static hosting with: - Permanent address (CID) for the content which is decoupled a canonical URL (like the GitHub pages one), allowing other nodes to serve the site. - Users can view the content offline once cached! - Tamperproofing through hash verification (diagram)
030
Daniel Norman @norman.life · 28/04/2025
IPNI is important for IPFS
100
Daniel Norman @norman.life · 13/03/2025
One of my favourite explanations of Merkle Trees in @ipfs.tech by @syntacrobat.xyz
141
Daniel Norman @norman.life · 16/01/2025
My partner is an IKEA hacker
My partner is an IKEA hacker
010
Daniel Norman @norman.life · 13/12/2024
Subtle but crucial distinction between recursive and non-recursive (like web seeding in Bittorrent) @ipfs.tech gateways. More on gateway types in the recently updated IPFS docs docs.ipfs.tech/concepts/ipf... #ipfs #http
001
Daniel Norman @norman.life · 04/12/2024
I triggered github copilot with a stylistic question about go...
030
Daniel Norman @norman.life · 26/11/2024
Life hack
020
Daniel Norman @norman.life · 31/10/2024
True
000
Daniel Norman @norman.life · 18/10/2024
#webdev
000
Daniel Norman @norman.life · 18/07/2024
Here's how you can add a file and wrap it in a directory See the PR adding this to the examples repo: github.com/ipfs-example...
020
Daniel Norman @norman.life · 18/07/2024
🔥 The dream! My one experience with a camper was with a converted Sprinter (german) ambulance with which we travelled to Sweden and it was one of the most memorable.
020
Daniel Norman @norman.life · 11/07/2024
#ipfscamp
030
Daniel Norman @norman.life · 16/08/2023
Berlin is changing
120
Daniel Norman @norman.life · 03/05/2023
G‘day from Adrian
030
Daniel Norman @norman.life · 03/05/2023
Awwww ❤️ It’s wonderful trotting around with the boys in carriers during the blossoming Berlin spring!
040
Daniel Norman @norman.life · 30/04/2023
The Putz abides
010
Daniel Norman @norman.life · 27/04/2023
Meet Kaputzi
Cute dog
260
Daniel Norman @norman.life · 20/04/2023
Your mistakes are your style — me botching the label
110
Daniel Norman @norman.life · 15/04/2023
Here’s a Calathea plant I rescued today after finding it in a poor condition next to the communal bins It’s my second prayer plant. Stunning colour, texture, and shape! Thinking of growing it vertically
030
Daniel Norman @norman.life · 13/04/2023
Blue skies in Berlin
050
Daniel Norman @norman.life · 01/04/2023
Midjourney is amazing! #aiart
130
Daniel Norman @norman.life · 31/03/2023
Chilling hard
040
Daniel Norman @norman.life · 22/03/2023
Blue waters
030
Daniel Norman @norman.life · 18/03/2023
Blue skies in Berlin
130
Daniel Norman @norman.life · 15/03/2023
Dusk run
000
Daniel Norman @norman.life · 14/03/2023
Shiitake Dashi
060
Daniel Norman @norman.life · 25/02/2023
👋
33110
Daniel Norman @norman.life · 24/02/2023
Kaputzi
041
Daniel Norman @norman.life · 23/02/2023
Meet Kaputzi
141
Daniel Norman @norman.life · 23/02/2023
Hello from Bluesky! Excited to be here
030