Sign in

Daniel Norman

@norman.life
755 followers 782 following 369 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 · 6h
What is the meaning of neutrality in times of such geopolitical turmoil?
110
Reposted by Daniel Norman
Lexicon Community @lexicon.community · 28/09/2026
@norman.life built ATFISL — a download-location lexicon for AT Protocol keyed by file CID. Multiple URL schemes per file, per-URL expiry, content-addressed identity. Complements FISL, a query interface for aggregating locations across the network. Feedback welcome.
fisl.dev
FISL & ATFISL — Finding Internet Structures & Links
A CID proves what the bytes are. FISL is an HTTP lookup that answers where to get them, and ATFISL publishes the answers on AT Protocol.
052
Reposted by Daniel Norman
DASL @dasl.ing · 24/09/2026
Hey fam! We've been shaping a governance model for DASL, pretty lightweight, in line with the project's philosophy. You know what we'd love? We'd *love* to hear from you (yes, specifically *you* right there) about what you think about it. See: dasl.ing/governance.h...
dasl.ing
DASL: Governance of the DASL Project
The goal of the DASL Project is to develop content-addressing primitives and the technologies that build on them, with a view towards enabling unbundled software and protocol architect...
0176
Daniel Norman @norman.life · 24/09/2026
There’s no way to sugar coat this. This is a big failure. But this doesn’t change our dedication to Radicle’s mission as a sovereign local-first code forge. We will continue to fix and build Radicle
0132
Daniel Norman @norman.life · 16/09/2026
Bummed I couldn’t make it this year, but a bunch of @radicle.dev core contributors will be there @osins.bsky.social @fintohaps.bsky.social @cloudhead.io
090
Reposted by Daniel Norman
Sindre Sorhus @sindresorhus.com · 14/09/2026
I moved from Raycast since they made it non-native and bad. Tinycast is a great native replacement: github.com/abue-ammar/t...
github.com
GitHub - abue-ammar/tinycast: Tinycast — a tiny, fully native macOS launcher, hotkeys, and clipboard history.
Tinycast — a tiny, fully native macOS launcher, hotkeys, and clipboard history. - abue-ammar/tinycast
4554
Reposted by Daniel Norman
DASL @dasl.ing · 14/09/2026
Reminder that we have a CID Congress for your this coming Thursday: luma.com/l9xglle8. Come early, come often! Sad news, @norman.life won't be able to make it but we'll have him over next month instead. If you have a quick demo to give instead, let us know!
luma.com
CID Congress · Luma
CID Congress is a series of working sessions towards making CIDs & content addressing easier to use: more deterministic, better compatibility, leaner…
062
Reposted by Daniel Norman
DASL @dasl.ing · 10/09/2026
FISL, from @norman.life, is an HTTP lookup API that maps CIDs to locations. A client sends a CID and receives the URLs at which the content can be retrieved, together with the identity of the publisher that announced them, when it is known. Check it out! dasl.ing/fisl.html
dasl.ing
DASL: FISL — Finding Internet Structures & Links
FISL is an HTTP lookup API that maps CIDs to locations. A client sends a CID and receives the URLs at which the content can be retrieved, together with the identity of the publisher th...
072
Reposted by Daniel Norman
DASL @dasl.ing · 09/09/2026
Then @norman.life will join us to talk about his work on FISL (an HTTP lookup API that maps CIDs to locations) and datadisco (FISLing AT). tangled.org/dasl.ing/das...
tangled.org
FISL: Finding Internet Structures & Links #2
## What FISL is an HTTP API interface for finding download locations for a CID. ## Open questions - The API design assumes that a URL is enough to encapsulate both the transport protocol and the d...
132
Reposted by Daniel Norman
Chad Fowler @chadfowler.com · 08/09/2026
Trivially share markdown. Pi, Amp, Claude, and chatbox integrations. Agents can now share markdown via privacy-preserving URL (with other agents or people). This maps to a constant pattern where I generate a markdown doc, copy to my buffer, paste into gist.github.com and share mdsnd.freeq.at
mdsnd.freeq.at
mdsnd
0115
Daniel Norman @norman.life · 09/09/2026
The load-bearing vocabulary of Claude louisabraham.github.io/load-bearing/
louisabraham.github.io
The load-bearing vocabulary of Claude
031
Reposted by Daniel Norman
Adam Chalmers @adamchalmers.com · 09/09/2026
Talking to your manager about testing in 2023: "I want to spend a week on our test suite, to help our engineers" no way, please go back to features 2026: "I want to spend a week on our test suite to, to help our agents" 100%, you're promoted, please teach your peers about agentic testing
31477
Daniel Norman @norman.life · 04/09/2026
The kind of beauty I prefer to behold from the safety of an illuminated glass display.
130
Reposted by Daniel Norman
ligi @ligi.de · 21/08/2026
We (@dod.ngo) are in the early stages of planning a meetup around code hosting after github on board of @c-base.org So far we have talks around @radicle.dev and rngit Would also love to have somebody speaking about @tangled.org - anyone knows somebody in Berlin that could speak on it? Or ..
1177
Daniel Norman @norman.life · 04/09/2026
My favourite internet radio station supports 1411 Kbps streaming www.djam.radio/en/
djam.radio
Djam is good | Djam Radio
Djam Radio est une radio éclectique sans pub, sans blabla et sans infos anxiogènes. Voilà pourquoi Djam c'est bien !
000
Daniel Norman @norman.life · 03/09/2026
The main difference between @radicle.dev and @tangled.org is that radicle stores all social artifacts, like issues, patches, and interactions in the git repository, while tangled stores them in your atproto repository In both user actions are signed by a key but in radicle the key is user-owned 🧵
4227
Reposted by Daniel Norman
spence @thepope.dev · 28/08/2026
whatever this is
424419
Reposted by Daniel Norman
Robin Berjon @robin.berjon.com · 26/08/2026
New proposed @dasl.ing spec: Finding Internet Structures & Links (FISL). It's a standard API to map CIDs to locations that they can be retrieved from. See @norman.life's PR over at tangled.org/dasl.ing/das...
tangled.org
FISL: Finding Internet Structures & Links #2
## What FISL is an HTTP API interface for finding download locations for a CID. ## Open questions - The API design assumes that a URL is enough to encapsulate both the transport protocol and the d...
1214
Daniel Norman @norman.life · 26/08/2026
Hey @tangled.org Do you have any docs on the recommended workflows for creating pull requests? For example, I opened a pull request and then rebased and pushed again and it created a new pull request. I may have done this wrong, but it'd be nice to have clarity on how rounds and rebased PR work 🙌
000
Daniel Norman @norman.life · 21/08/2026
I think I'm @jj-vcs.dev pilled, though I'm not sure if it's my own hype or actual merit. Either way, it's starting to click, albeit slower than I'd like.
081
Daniel Norman @norman.life · 21/08/2026
I'm learning jj (www.jj-vcs.dev) Some gotchas from my first day: - You don't have to name branches 🫶 - Most commands operate on data structures in the repo rather than the working copy - Commit ID != Change ID Thanks @steveklabnik.com for the tutorial steveklabnik.github.io/jujutsu-tuto...
jj-vcs.dev
Jujutsu docs
4272
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
Reposted by Daniel Norman
tierney cyren @bnb.im · 14/08/2026
“coding is largely solved” okay make a new cross platform web browser that supports every web platform spec to 100% compliance
70107580
Reposted by Daniel Norman
DASL @dasl.ing · 06/08/2026
We have lots of cool specs for your own enjoyment — check them out! It'll make you love bright colours even more. dasl.ing
dasl.ing
DASL — Data-Addressed Structures & Links
A small set of simple, standard primitives to work on content-addressed data.
021
Reposted by Daniel Norman
Radicle @radicle.dev · 06/08/2026
Radicle 1.10.0 is out!🌻 radicle.dev/2026/08/05/r...
0198
Reposted by Daniel Norman
Philipp Pohl-Krüger @matheus23.com · 25/07/2026
The browser is the wrong medium for local-first 🫠 Act accordingly. (I don't think we can fix browsers unfortunately)
8372
Reposted by Daniel Norman
calle @calle.bsky.social · 24/07/2026
UPDATE: Bitchat is now mirrored on @radicle.dev — censorship-resistant, peer-to-peer code hosting: iOS/macOS: rad:z2v9tRJz1oknFAqCSY5W5c76nVvm6 Android: rad:z347HbE1F4c77DVLvsPe2ApoEEw6f Clone it. Seed it. Keep it alive. 👇
165
Reposted by Daniel Norman
Insufferable Claude @insufferableclaude.bsky.social · 27/07/2026
I now have complete understanding.
031
Daniel Norman @norman.life · 15/07/2026
3rd year at @localfirstconf.com What keeps me coming back isn't the talks -- it's that the same faces keep showing up, and they're slowly turning into friends Feels less like a conference, more like a movement working to elevate user agency with software
1131
Reposted by Daniel Norman
Eileen (╹◡╹) @bumble.blue · 13/07/2026
2026 @localfirstconf.com is truly one of the few places that unite disparate communities—open source, LLMs, p2p, interface design, standards—behind a shared value: user agency and empowerment. How refreshing to witness the openness and curiosity everyone brings to the discussion.
0536
Daniel Norman @norman.life · 15/07/2026
Two tools I recently learned about for sandboxing agents without needing a full VM nono.sh agent-safehouse.dev
agent-safehouse.dev
Agent Safehouse
Sandbox your LLM coding agents on macOS. Kernel-level enforcement via sandbox-exec — deny-first, composable, zero dependencies.
2285
Daniel Norman @norman.life · 08/07/2026
So let me get this right, the European Parliament has already rejected the mass surveillance of chats twice, but suddenly an emergency vote passes (during European summer!) that it should be voted on for the third time? What’s the most charitable interpretation?
031
Reposted by Daniel Norman
Josiah @josiahwitt.com · 07/07/2026
Unfortunately not going to make it to @localfirstconf.com this year, but have a couple tickets now that aren’t going to be used. If you’d like to go but couldn’t afford tickets give me a shout!
2125
Daniel Norman @norman.life · 01/07/2026
We shipped content addressing to millions of users, then spent ~10 years pretending the spec already existed. 😅 Well, billions of CIDs later, it's finally real: the official CID spec is live on the @ipfs.tech specs. specs.ipfs.tech/cid/ Thanks @lidel.org and @robin.berjon.com
specs.ipfs.tech
CID (Content IDentifier)
Self-describing content-addressed identifiers for distributed systems
28413
Reposted by Daniel Norman
David Gasquez @davidgasquez.com · 16/06/2026
The future is now! - Dial keys, not IPs, thanks to Iroh - Fetch hashes, not URLs, thanks to DASL - Build on shared records, not siloed databases, thanks to the AT Protocol
0306
Reposted by Daniel Norman
Volker Mische @vmx.cx · 29/06/2026
A new blog post is out. This time I try to provide some evidence that most programming languages already make a distinction between floats and integers when they work with JSON: vmx.cx/cgi-bin/blog... Supporting GitHub repo: github.com/vmx/json-flo...
vmx.cx
JSON, floats and native types | vmx - the blllog.
032
Daniel Norman @norman.life · 25/06/2026
PLC question: can I create a did:plc without a bluesky account?
110
Reposted by Daniel Norman
rklaehn.bsky.social @rklaehn.bsky.social · 18/06/2026
This week we have released @iroh.computer 1.0. As part of the release we also publish language support for python, swift, kotlin and javascript. Read more about it here: iroh.computer/blog/iroh-la... These are bindings to the 1.0 rust api, so they will *remain compatible* as we evolve the core.
iroh.computer
iroh
less net work for networks
0111
Reposted by Daniel Norman
Local-First Conf @localfirstconf.com · 18/06/2026
Conf schedule is now live: app-2026.localfirstconf.com/schedule
app-2026.localfirstconf.com
Schedule – Local-First Conf 2026
The world's first and best event dedicated to local-first software.
2168
Daniel Norman @norman.life · 18/06/2026
@support.bsky.team It seems like there's a problem with our bluesky profile for Radicle when accessed via the domain, It's showing up as "invalid handle" Can you help? bsky.app/profile/radi... bsky.app/profile/did:...
bsky.app
110
Daniel Norman @norman.life · 12/06/2026
Radicle Garden now supports custom domains That means full sovereignty, zero lock-in. radicle.garden youtu.be/KDbajeSTtjk
youtu.be
Custom Domains on Radicle Garden
YouTube video by Radicle
083
Reposted by Daniel Norman
Daniel Martí @handle.invalid · 31/05/2026
It just dawned on me that "firm"ware is someplace between software and hardware.
814713
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 · 11/06/2026
Great thread 🧵
030
Reposted by Daniel Norman
Armin Ronacher @mitsuhiko.at · 10/06/2026
Some thoughts of mine that nobody asked for on the EU's fight with Apple and my worries related to Mythos and Fable. lucumr.pocoo.org/2026/6/10/ga...
lucumr.pocoo.org
Gaslighting Openness
Control is safety. Openness is danger.
14611
Reposted by Daniel Norman
Radicle @radicle.dev · 02/06/2026
Plant Your Seeds in the Radicle Garden 👩‍🌾 Radicle Garden provides always-on, hosted Radicle nodes to help continuously serve you and the Radicle Network. Check out the post, written by @yorgos.net.gr 🌱 👇 radicle.dev/2026/06/02/a...
radicle.dev
Plant Your Seeds in the Radicle Garden
Sovereign code infrastructure.
0126
Daniel Norman @norman.life · 02/06/2026
Get Radicle up and running with this guide!
020
Reposted by Daniel Norman
Volker Mische @vmx.cx · 28/05/2026
This has been a long time in the making: a proposal on adding floats support to ATProto vmx.cx/cgi-bin/blog... If you prefer code or a demo, you can jump right into the proof of concept: github.com/vmx/floats-o...
vmx.cx
Floats on ATProto | vmx - the blllog.
1369
Daniel Norman @norman.life · 01/05/2026
Floating around
000
Reposted by Daniel Norman
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