Matthieu ๐Ÿฆ‹'s Avatar

Matthieu ๐Ÿฆ‹

@matthieu.bsky.team

Protocol Engineer at Bluesky. Building the open social web on AT Protocol. Into web standards, OAuth, TypeScript, and quality code. Dad, sailor (crossed the Atlantic once), gamer, Dire Straits fan, and beer enthusiast. Based in Brussels ๐Ÿ‡ง๐Ÿ‡ช

13,858
Followers
228
Following
221
Posts
25.09.2023
Joined
Posts Following

Latest posts by Matthieu ๐Ÿฆ‹ @matthieu.bsky.team

I now use @blento.app to host matthieusieben.com. Thanks for making this great app ๐Ÿ’™

02.03.2026 19:21 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Matthieu Sieben Protocol Engineer at Bluesky. Building the open social web on AT Protocol. Into web standards, OAuth, TypeScript, and quality code. Dad, sailor (crossed the Atlantic once), gamer, Dire Straits fan, an...

Moved matthieusieben.com over to @blento.app. Nothing crazy to see, just glad I no longer have to worry about CSV in react server components ๐Ÿ˜…
Also, a website that uses my ATProto repo's content to generate a webpage showing my other ATProto content really show how awesome ATProto really is ๐Ÿฆ‹

02.03.2026 18:48 ๐Ÿ‘ 56 ๐Ÿ” 9 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

You can also use `ts-lex` (if you installed @atproto/lex globally). Running `lex` command from package.json scripts should work fine (if @aptoro/lex is a project dependency). If you did not install it at all, use `npx @atproto/lex `

20.02.2026 13:05 ๐Ÿ‘ 3 ๐Ÿ” 2 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Nothing. This change won't prevent that.

08.02.2026 20:24 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I need to double check this but it feels like Velja is not being triggered at all when opening bsky.app urls

08.02.2026 10:55 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I feel you

07.02.2026 08:13 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Note that we are not updating the spec. Some PDS's might still serve the blobs without that header. Proper handling in apps is still needed to support the whole ecosystem.

Your efforts were not in vain

07.02.2026 08:00 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Should still work too afaik

07.02.2026 07:57 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

This won't prevent using a getBlob url as <img> src.

06.02.2026 15:03 ๐Ÿ‘ 15 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0
Preview
Adding `content-disposition` on `getBlob` HTTP responses ยท bluesky-social atproto ยท Discussion #4618 We are planning on releasing a new version of the PDS that contains this change. Once that has been merged, visiting a getBlob endpoint with a browser will force the browser to download the blob, i...

We're planning to stop rendering blobs in the browser from the com.atproto.sync.getBlob endpoint. Let us know if you have any thoughts on this.

06.02.2026 13:37 ๐Ÿ‘ 68 ๐Ÿ” 14 ๐Ÿ’ฌ 9 ๐Ÿ“Œ 5

Hey @sindresorhus.com , would you consider adding Bluesky (bsky.app) Links to Velja's list of apps ?
Kind of an edge case because it would only apply to users installing the iOS app on their Mac (some of us are weird that way).

05.02.2026 08:25 ๐Ÿ‘ 6 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Waffles?

31.01.2026 09:52 ๐Ÿ‘ 5 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I love your apps. Thanks for yet another one.

31.01.2026 07:53 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Yeah it is known. It's hard making a ui that accurately represents every possible combination of scopes. Though we could special case some of the known uses, the goal was to have those common use cases covered by permission sets (which didn't exist when that screen was designed)

30.01.2026 19:07 ๐Ÿ‘ 19 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

I definitely like this better!

29.01.2026 22:49 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

(you need a prefix in case of conflicting properties with different meaning)

29.01.2026 18:54 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0
A screenshot of a mock lexicon data that uses an `$ns` map to define extra schemas that a particular record supports.

A screenshot of a mock lexicon data that uses an `$ns` map to define extra schemas that a particular record supports.

As in:

29.01.2026 18:29 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Strong XML:NS vibes here

29.01.2026 18:23 ๐Ÿ‘ 9 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
About Lockdown Mode - Apple Support Lockdown Mode helps protect devices against extremely rare and highly sophisticated cyber attacks.

Are you, by any chance, using iOS's Lockdown mode ?

29.01.2026 13:34 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I don't think you can use * as aud here

27.01.2026 19:47 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

This is very cool !

22.01.2026 15:15 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

`repo:*` effectively grants any action on any collection

20.01.2026 09:26 ๐Ÿ‘ 7 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

It would be nice for `rpc` to support multiple `lxm` params.

20.01.2026 09:25 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

"Actions (optional - omit for read-only access)" is incorrect: A `repo` permission with no `action` param means "any action is allowed".

20.01.2026 09:23 ๐Ÿ‘ 8 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Also, atproto oauth allows "private uri scheme" which should work in local dev

16.01.2026 13:35 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Check this out:
bsky.app/profile/this...

16.01.2026 13:33 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Option 3: client generates a service auth token and hands it to the app view that then creates the record. Just like for video uploads.

12.01.2026 10:59 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Account management vs. Account manager

10.01.2026 13:18 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
Small @atproto/lex improvements by matthieusieben ยท Pull Request #4501 ยท bluesky-social/atproto Social networking technology created by Bluesky. Contribute to bluesky-social/atproto development by creating an account on GitHub.

There you go

06.01.2026 10:09 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Note that the oauth client does have both a handle->did and did->handle resolver. You can probably use that! It uses a cache internally so you won't even need a network round-trip.

06.01.2026 07:06 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0