Profile avatar
mrloh.io
18 posts 32 followers 82 following
Regular Contributor
comment in response to post
Yeah there’s a few blogs using it as the commenting system these days. You could build much more with the AT Protocol, but my current implementation is pretty simple github.com/MrLoh/mrloh....
comment in response to post
Any replies you leave here on Bluesky will show up as comments on the blog post.
comment in response to post
I think the biggest gap is the lack of a server side middleware for actions. I’m currently rolling my own, but it requires a lot of documentation and is a steeper learning curve for other devs on the team than if react had something built in that would allow injecting context via middleware.
comment in response to post
Yeah that’s one of the downsides of not having HTTP verbs with standardized idempotency. I’m currently handling this by sending results over the wire and having shared functions which handle appropriate error UX and could do things like retried.
comment in response to post
I wouldn’t write an API without a framework that helps with handling session/db/etc. context management and I don’t usually call fetch without a client that handles retry logic and standard errors.
comment in response to post
I think the directives are a great evolution from tRPC and use client feels very intuitive. The only thing I struggle with is the lack of middleware on both the client and server side of the action.
comment in response to post
I moved on to ai.pydantic.dev now which looks like it’s built by engineers who actually know modern Python well.
comment in response to post
Also the whole event thing is build in a way that you have to declare types that you don’t adhere to if you use parallel dispatching of events and collecting them. Tons of different examples in the docs and examples raise type errors. It’s embarrassing.
comment in response to post
`llm.structured_predict` wraps an OpenAI method that has proper generics and drops them to return `BaseModel` that is way way worse than returning Any since it means now you can’t use this code without doing a cast or type ignore statement.