Kshitij
@haroldadmin.com
Software Engineer @letsdothis.com | @atproto-browser.dev
Definitely Nextra, as I’m already deep into the Next.js ecosystem. Site looks great, has built in search with Pagefind, great internationalisation support too.
May 26, 2025 at 10:24 AM
Definitely Nextra, as I’m already deep into the Next.js ecosystem. Site looks great, has built in search with Pagefind, great internationalisation support too.
I also wrote a plugin to help you run remote MCP servers over a Fastify app!
github.com/haroldadmin/...
github.com/haroldadmin/...
GitHub - haroldadmin/fastify-mcp: Run Model Context Protocol servers using Fastify
Run Model Context Protocol servers using Fastify. Contribute to haroldadmin/fastify-mcp development by creating an account on GitHub.
github.com
April 20, 2025 at 7:53 PM
I also wrote a plugin to help you run remote MCP servers over a Fastify app!
github.com/haroldadmin/...
github.com/haroldadmin/...
Interesting idea!
The feed is built on top of Jetstream which does not support filtering on regexes. However, it shouldn’t be too hard to support this client side.
I’ll see what I can do 😊
The feed is built on top of Jetstream which does not support filtering on regexes. However, it shouldn’t be too hard to support this client side.
I’ll see what I can do 😊
December 10, 2024 at 1:34 PM
Interesting idea!
The feed is built on top of Jetstream which does not support filtering on regexes. However, it shouldn’t be too hard to support this client side.
I’ll see what I can do 😊
The feed is built on top of Jetstream which does not support filtering on regexes. However, it shouldn’t be too hard to support this client side.
I’ll see what I can do 😊
The idea of the project is based on this, yep!
December 7, 2024 at 7:41 PM
The idea of the project is based on this, yep!
I might add support for specifying a custom sampling rate in the future, as well as increasing the number of posts buffered in memory.
In the meantime, feel free to look around the code on Github
github.com/haroldadmin/...
In the meantime, feel free to look around the code on Github
github.com/haroldadmin/...
GitHub - haroldadmin/atproto-browser: Browser for files stored on the ATProto network
Browser for files stored on the ATProto network. Contribute to haroldadmin/atproto-browser development by creating an account on GitHub.
github.com
December 5, 2024 at 11:11 PM
I might add support for specifying a custom sampling rate in the future, as well as increasing the number of posts buffered in memory.
In the meantime, feel free to look around the code on Github
github.com/haroldadmin/...
In the meantime, feel free to look around the code on Github
github.com/haroldadmin/...
At the end of the pipeline is a Writable Stream, which is just fake wrapper around something that a React component can subscribe to.
The Feed component takes care of buffering the latest posts in memory, and discards the rest. GC is great, isn't it?
The Feed component takes care of buffering the latest posts in memory, and discards the rest. GC is great, isn't it?
December 5, 2024 at 11:11 PM
At the end of the pipeline is a Writable Stream, which is just fake wrapper around something that a React component can subscribe to.
The Feed component takes care of buffering the latest posts in memory, and discards the rest. GC is great, isn't it?
The Feed component takes care of buffering the latest posts in memory, and discards the rest. GC is great, isn't it?
The pipeline roughly looks like this: Web Socket -> Readable Stream -> Transforms -> Writable Stream.
This lets me use the built-in backpressure support in web streams, but I also sample incoming updates to keep things running smoothly.
This lets me use the built-in backpressure support in web streams, but I also sample incoming updates to keep things running smoothly.
December 5, 2024 at 11:11 PM
The pipeline roughly looks like this: Web Socket -> Readable Stream -> Transforms -> Writable Stream.
This lets me use the built-in backpressure support in web streams, but I also sample incoming updates to keep things running smoothly.
This lets me use the built-in backpressure support in web streams, but I also sample incoming updates to keep things running smoothly.
Jetstream's Web Socket API emits hundreds of updates every second -- enough to overwhelm the browser if not managed carefully. Unfortunately, there is no standard way to solve backpressure in Web Sockets on the browser.
The feed solves this by using a Web Streams layer.
The feed solves this by using a Web Streams layer.
December 5, 2024 at 11:11 PM
Jetstream's Web Socket API emits hundreds of updates every second -- enough to overwhelm the browser if not managed carefully. Unfortunately, there is no standard way to solve backpressure in Web Sockets on the browser.
The feed solves this by using a Web Streams layer.
The feed solves this by using a Web Streams layer.
While this might look similar to Firesky.tv, the technical implementation is very different. ATProto Browser uses a fully client-side feed built on top of Bluesky's Jetstream project - no polling required! More details in 🧵
Firesky
Watch every Bluesky post in real-time – filter the firehose
Firesky.tv
December 5, 2024 at 11:11 PM
While this might look similar to Firesky.tv, the technical implementation is very different. ATProto Browser uses a fully client-side feed built on top of Bluesky's Jetstream project - no polling required! More details in 🧵
That is weird. Will investigate.
December 2, 2024 at 9:15 AM
That is weird. Will investigate.
Also shout out to pdsls.dev!
PDSls
Browse AtProto repositories
pdsls.dev
December 1, 2024 at 11:08 PM
Also shout out to pdsls.dev!
I know, i know, this is yet another atproto browser. I built it as a way to learn more about the protocol itself, and it was quite a fun exercise.
The source code for OG atproto browser was very useful when I couldn't figure something out on my own.
The source code for OG atproto browser was very useful when I couldn't figure something out on my own.
December 1, 2024 at 11:08 PM
I know, i know, this is yet another atproto browser. I built it as a way to learn more about the protocol itself, and it was quite a fun exercise.
The source code for OG atproto browser was very useful when I couldn't figure something out on my own.
The source code for OG atproto browser was very useful when I couldn't figure something out on my own.