Current status: trying to resist the urge to write a PDS that would issue did:webvh DIDs, and be trivial to self host and backup / restore.
Posts by webbeef
Servo 0.1.0 is out! 🚀
This is our first release available in crates.io and our first LTS version
servo.org/blog/2026/04...
🦫 alert!
We published the 4th episode of "Teach the Web new Tricks!", and it's about Web Tasks: webbeef.org/webtasks.html
Register the tasks you can fulfill, and let the user agent bridge callers to providers!
And of course, it works transparently in multi-device environnements 🐈
A browser (or more generally a web based user agent) with native ATProto support is what we're building with the 🦫 Browser: tangled.org/me.webbeef.o...
We added support for at:// and web tiles recently: webbeef.org/atproto.html and webbeef.org/webtiles.html
Check what we do in 🦫 Browser: tangled.org/me.webbeef.o...
We added support for at:// and web tiles recently: webbeef.org/atproto.html and webbeef.org/webtiles.html
Solid foundations to build an ATProto native browser!
I feel there's some bridging to do between tasks and "skills" too, but that's for another time :)
It's a pretty compelling UX - I like how it looks more task based than a regular browser.
And that reminds me I need write about the "web tasks" support in Beaver (inspired by various intents-on-the-web previous work)
I think I agree with you on the loose coupling, if there's a decent way to do discovery.
Peek looks great! I struggle a lot with anything UI... usually I know what I don't like, but I'm not skilled enough to create something I really love
It would also be nice if each lexicon included a reference to a custom element that can be used to display a record of that type.
We implemented that idea when adding WebTiles support to Beaver (see webbeef.org/webtiles.html) to provide direct navigation from an at://<tile_manifest> to a tile.
You could just write the matching Web Tile (see webbeef.org/webtiles.html) using our at:// protocol support to manage your consent state.
Good simple use case actually!
Hm... very interesting. I'm toying with the idea of a "local/mobile/proxy" PDS that would publish only some collections to a public PDS, but keep others private to a set of devices.
btw @robin.berjon.com your PDS (well, bluesky's) is really slow. I need to dig a bit more into record and blob caching: I'm not sure if the PDS supports Etags or not (the key would be kind of obvious).
🦫 alert!
We published the 3rd episode of "Teach the Web new Tricks!", and it's about Web Tiles: webbeef.org/webtiles.html
A very promising solution to host your own sites in your ATProto PDS, and a stepping stone for composable web fragments.
Here's a quick video about it:
No... The full story was: the URL spec tells the parser to give unknown protocols an opaque origin, so nothing ever matches 'self' 🤦♂️
I forked and added "tile" as a recognized scheme in the rust-url crate and the CSP from the tiles document works fine with the examples I tried.
I made some changes to load the tiles from urls such as tile://3mcjwwoqjqs2v.robin.berjon.com/ for the minesweeper which looks nicer.
Now I just need to figure out why the CSP is causing issues...
Beaver running the WebTiles Minesweeper
Ok, indeed having a stable tile:// url with updatable content if you can verify integrity would be ideal. Tbh I'm not fully sure which CID is for what yet :)
But I hacked a bit and it's loading tiles! Still a bunch of cleanup and details to work on, but it's coming along:
screenshot of a subset of a webtile manifest, showing a CID
A couple of questions:
1. Is the CID at the root of the `ing.dasl.masl` document a good option for the "identity" of a tile?
2. Is is AtProto specific, or id it also stable when used with another underlying store/transport?
Nope, not at Atmosphere. I'm "in the browser" as much as I can since I build a user agent based on @servo.org : tangled.org/me.webbeef.o...
I can add whatever we need :)
Very interesting and relevant to our native at:// support in Beaver: webtil.es
@robin.berjon.com I feel that we could implement native tile support without requiring another server in addition to the PDS. Just at:// urls and maybe another custom protocol
What do you think?
It's not an AppView, it's just someone else computer!
Bring back computing to the edge, prototype local first #atproto apps in Beaver (tangled.org/me.webbeef.o...) with the at:// protocol support instead.
#atmosphereconf
Hopefully that can be of some interest for the folks attending @atmosphereconf.org this week 😀
#atproto #browser
top level load of some at:// uri
login to atproto in beaver settings
atproto explorer offering to create a new bsky post
context menu with the new atproto authorization item
🦫 alert!
We published the second episode of "Teach the Web new Tricks", featuring
native support for @atproto.com ! Learn more how we improve user agency and privacy at webbeef.org/atproto.html :
- Native at:// protocol support.
- Log in your PDS and forget OAuth !
- Authorize 3rd parties
A screenshot showing at the same time "1 repost" and "No reposts yet" for a skeet.
Make up your mind, bsky! Reposted or not?
Beaver displaying the JSON content fetched from the at://me.webbeef.org/app.bsky.actor.profile/self URL
Beaver settings with the ATProto section opened. This let you login using your PDS credentials in the browser. Also gives the capability to manage the domains that can get write access to your data.
A simple "ATProto Explorer" app running fully client side.
🦫 teaser, a more complete writeup will come soon. Trying to get that done before @atmosphereconf.org kicks in!
🦫 alert!
We published the first episode of "Teach the Web new Tricks", featuring @servo.org and @iroh.computer to create distributed Web apps! Learn more how we expand the Web from tabs to windows to devices at webbeef.org/tricks.html
Migrated to @eurosky.social - everything looks fine, except the bsky.app appview doesn't let me log in anymore.... Using reddwarf.app instead!
We're looking for a library for text prediction / autocompletion that we could use. Either pure JS or that can be compiled to WASM.