jared (@awarm.space) reply parent
Could make it a feed?? @graze.social y'all got filters for formal poetic constructs??
Working on @leaflet.pub in specific and tools for learners and education in general
677 followers 353 following 590 posts
view profile on Bluesky jared (@awarm.space) reply parent
Could make it a feed?? @graze.social y'all got filters for formal poetic constructs??
jared (@awarm.space)
The bean is named after the sauce??
jared (@awarm.space) reply parent
The *lengths* to which we have to go to deal with this on leaflet 😭 they also love to zoom arbitrarily when you focus text
jared (@awarm.space) reply parent
I generally really like the properties smart-contract based ids give you, my only qualm is supporting this massively increases the surface area for any app verifying ids. web/plc are so much simpler to read than on-chain data (at least last I looked into this!)
jared (@awarm.space)
Some quick thoughts prompted by herman.bearblog.dev/slow-social-media/ (ugh i really need to work on the bsky post editor in the publish flow 😭)
jared (@awarm.space) reply parent
snk pk leaflet.pub/18df42cf-450...
jared (@awarm.space)
huh writing blog posts is a great way to procrastinate working on the blogging platform i'm supposed to be working on, nice
jared (@awarm.space) reply parent
Whatever it is, the sax has it
jared (@awarm.space)
:( :( nextjs minor version update leading to ssr hydration errors from radix turbopack leading to mysterious "wrong return type for component: undefined" errors maddening
jared (@awarm.space) reply parent
Right yeah, you could do that w/ everyone writing to their own pds and then merging the state with a service somewhere. Could just be crdt values in there, an appview for shared state basically
jared (@awarm.space) reply parent
could be fun to launch alongside the tiny tags experiment to really show that we don't think there's gonna be one way to organize the social network
jared (@awarm.space) reply parent
I was thinking its literally just the leaflet renderer + a lil prev/next thing at the top... but maybe more fun to do as just a full leaflet thing, you can create, join, moderate rings, and then the prev/next turns up at the bottom of your page? Like tiny proto communities
jared (@awarm.space)
leaflet webring is music to my ears :o makes me want to write a lil view for adding your site to a ring and cycling through them... hmmm
jared (@awarm.space) reply parent
Looks like an "issuer mismatch" error, did you change your pds host lately? If so logging out and back in should fix that! I really need to do better error handling around this sorry!
jared (@awarm.space) reply parent
Is the goal to avoid running a firehose listener to combine things across multiple pds's? imo that's the most "atproto-y" way to do it, users write to their own and some service combines. To avoid consuming the full firehose you could keep a list of pds's somewhere, maybe the website owners pds?
jared (@awarm.space) reply parent
Is there anyway to turn cloudflare proxying off to test? I wonder if the multiple requests are causing it to trigger a captcha or something that then it just waits for? This si the image that's failing btw, but I did see one other earlier as well: bdefzwcumgzjwllsnaej.supabase.co/storage/v1/o...
jared (@awarm.space) reply parent
Hmm super strange. It's not even the same blob that's failing everytime. Also the very last attempt failed with a 524 error instead of 504, which sounds like it might a cloudflare thing? Could be from somewhere in vercel's network pipeline also maybe.
jared (@awarm.space) reply parent
Could it be hitting a rate-limit of some kind? Or is there any proxy in front of this that could be enforcing something like that?
jared (@awarm.space) reply parent
No worries at all, thanks for sticking through it (Sunday night out here for me! Currently in Tokyo) Also, I am seeing a 401 a response for the upload request right before the one that times out, just added some more logging to catch that too.
jared (@awarm.space) reply parent
okay adding a bit more logging and made it sequential, could you give it another try?
jared (@awarm.space) reply parent
Yep, definitely much smaller than that. I am also uploading all the blobs in a bunch of parallel requests which could maybe cause some issues? Can try to do it sequentially and we can see if that helps, I should implement better retry logic and better reporting for this probs
jared (@awarm.space) reply parent
Shouldn't be a browser issue, looks like it's an uploadBlob request to your pds timing out. When I test publishing with the same source document to my tester publication on a bluesky pds seems to work, so I wonder if it's a rate-limit or something configured differently?
jared (@awarm.space) reply parent
Looking into it on our end! Getting an "upstream timeout" error.
jared (@awarm.space) reply parent
Just added 2 and 3! For 1 @cozylittle.house is currently in the midst of a big home/dashboard refresh, so can hopefully get last updated type things in with that! And thanks, really glad you're enjoying leaflet ☺️
jared (@awarm.space)
I know theres no way we're getting around this now lmao but how much more into rsc would people have been if you had to explicitly tag server components with "use backend" vs tagging client components "use client"
jared (@awarm.space) reply parent
Yep! There is also a separate read-only link you can get to from the share menu. We hope to get to richer permissions and access control in the future tho!
jared (@awarm.space) reply parent
Hmm, would it be fine if this was scoped to just whole block? Would be easy enough to include it in the list then!
jared (@awarm.space) reply parent
Yeah! We used a neat API to do all kinds auto embeds from links recently
jared (@awarm.space) reply parent
Should work! There's a "sign in with your handle" button below the sign in with bluesky one
jared (@awarm.space)
jared (@awarm.space)
ookay looks like if we're gonna make our poll blocks publishable on atproto we're gonna have to make a new lexicon / appview. Ideally I want this to be tiny and self-contained, independent from the rest of leaflet...
jared (@awarm.space)
is there an existing poll lexicon/appview on bsky? looking to make leaflet's polls publishable! I remember poll.blue but it seems ip based not account?
jared (@awarm.space)
Looooove a favorite albums list!!! the only one I've listened to from here is ninajirachi's and that is sooo good, iPod Touch is def one of my favorite singles of the year. Will have to listen to the rest!!
jared (@awarm.space) reply parent
Lmao how did that happen to your link preview, it's kinda sick
jared (@awarm.space) reply parent
I thought the kilo logo in there was: github.com/antirez/kilo and was like how did that make the cut over emacs lmao
jared (@awarm.space) reply parent
gotcha super helpful! Interesting on the footnote front, want to get proper support in, but it's a kinda complicated interface for editing
jared (@awarm.space) reply parent
Thank you for helping me debug! For reference, did you create that link from by editing in the leaflet UI? Or pasting it in? Or manually creating the record some other way?
jared (@awarm.space) reply parent
looks like it worked!
jared (@awarm.space) reply parent
hmm we're validating just with the code generated by the bluesky's lex tool, I wonder if at-cute has it's own verification logic that might differ
jared (@awarm.space) reply parent
Ah! Okay figured it out. Your link here: geesawra.leaflet.pub/3lyhwwy26nk2... s a relative path which doesn't parse as a URI and so fails the lexicon validation. I should look into making this less strict I think!
jared (@awarm.space) reply parent
Got it up now!
jared (@awarm.space) reply parent
I'm gonna run our firehose ingestor locally with some additional logging, so if you get a chance, could you try it again. And def will add backdating to our list!
jared (@awarm.space) reply parent
Hmmm wierd, seems to be working when I try, both via just editing and deleting and recreating. I wonder if it's some kinda ordering thing because of a self-hosted PDS? Unsure how to test further but I will dig!
jared (@awarm.space) reply parent
Hmmm I'll look at it further but I think our firehouse consumer has been lagging by a couple minutes, so that might be it?
jared (@awarm.space) reply parent
probably some funding questions around these. Many are legitimately low cost and simple enough they *could* be run as public goods, but will probably still want some legitimacy and reliability around them (eventually ofc) But i am curious what kinds of business can be built there.
jared (@awarm.space)
these kinds pds proxied services I think will end up being *super* useful for the ecosystem. It's nice to be able to build and use things at different points on a trust gradient. Hoping for services for notifications, payments, preferences, and probably a bunch more I'm not thinking of.
Tyler Fisher (@tylerjfisher.com) reposted
I've spent nearly a year with Sill now. I think it's the antidote to doomscrolling. I took Leaflet for a spin to talk about how you can use Sill to make social media more sane.
jared (@awarm.space)
I love the idea of doing more with links too. This quote is one such example, but I think there are even more things possible w/ ATProto. Links are *resources* for us to use to build things.
jared (@awarm.space) reply parent
omg this is awesome, thanks for giving leaflet a try, and really appreciate the thorough look at it fwiw pages *should* render with JS disabled, looks like you got caught by some kinda vercel captcha thing, I'll look into making that less strict if I can
jared (@awarm.space)
Huh pixel 8 just updated and things feel noticeably faster. First time that's happened.
jared (@awarm.space) reply parent
do you have an account with an email or were you just using it locally on one device? Can also move to DMs to debug!
jared (@awarm.space) reply parent
Oh no really sorry about this!! I can look in further but the first question is were you signed in with an account and did you clear your browsers local history or anything ?
jared (@awarm.space) reply parent
just fixed this! Thanks for powering through!
jared (@awarm.space) reply parent
We use yjs under the hood for editing drafts and unpublished docs in leaflet. I think they're really good when editing but when published you want to have a canonical source. They could be useful if people are publishing docs across pdss and u want to merge maybe?
jared (@awarm.space) reply parent
Hmmm maybe we should have an "external" type for post records or something so they can be fully hosted elsewhere but still have an at-uri so stuff can reference
jared (@awarm.space) reply parent
Oooh yes, I 've heard great things about this book. Makes me wonder what else would do well as a By the Numbers type book
jared (@awarm.space) reply parent
Curious what you see as the downsides? Conversion means code to move around, this would entail just putting your markdown in a slightly more nested record. It does push more complexity to renderers, but there'll be fewer of those than publishers, and they should be able to handle more complexity
jared (@awarm.space) reply parent
It's come up a little bit! My line of thinking is that the strength of lexicons is as a coordination/interchange format and while having your editor match 1:1 what you publish is very useful if you're the only consumer of the data, html is not great as a coordination format for others to work with
jared (@awarm.space) reply parent
Rip, I think probably took a minute uploading all the images for the link previews lol. At least added a check to prevent the double posting for now!
brendan (@schlage.town) reposted
Shout out to @ranganaut.bsky.social — impressed with "The Daily Planet" publication they've been writing on @leaflet.pub, daily links to planet-themed essays (etc) + commentary, now up to 18 daily posts & two weekly ones! Threading a few favorite quotes here below…
jared (@awarm.space) reply parent
If you're also using nextjs you can create a opengraph-image route handler to return things: github.com/hyperlink-ac...
jared (@awarm.space)
@jakefee.bsky.social ur on such a good run of terms, theseotomy?? folkification? silver institutions!! all so useful!
jared (@awarm.space) reply parent
APIs are cool man, I love an api that does a thing and does it extremely well (shout out also to microlink.io, which we used before this for page metadata and still use for the kewl link previews images!)
jared (@awarm.space)
atproto.leaflet.pub/3lxv6kfkfps2... @bmann.ca is right, so just started using iframely.com to automatically pull iframe-able things from urls wherever we can. Should be better, just hit the embed button !
jared (@awarm.space)
Now this is my kinda tech still progresses story: www.readonlymemo.com/this-is-the-...
jared (@awarm.space) reply parent
The html property returned for rich/video type responses is what I was referring to sorry!
jared (@awarm.space)
The oembed protocol just specifies that it gives you back html to render?? Why not just give me a url I can stick in an iframe? Since I have to stick that html in an iframe anyway??
jared (@awarm.space) reply parent
V curious what puts you off about leaflet, still early days, but we definitely want it to be extremely malleable, so interested in how it falls short or just doesn't feel right currently
jared (@awarm.space) reply parent
Hmm, what browser/OS are you using on mobile?
jared (@awarm.space) reply parent
lol yeah, it's a solid placeholder but we should do a real one soon
jared (@awarm.space) reply parent
An unexpected treat to open this and see how many of the links were publications on leaflet!!
jared (@awarm.space)
we have a bit of a url problem with leaflets. the *most* canonical url is the atproto uri pointing to a record in one's pds. But these are real ugly and for publishing purposes you really want your blog to have a nice url. We currently put rkeys in that, but that too might be a bit noisy...
Andrés Cuervo (@cwervo.bsky.social) reposted
What if a browser could navigate #ATProto DIDs and 🦋 Bluesky handles? Made a little prototype of Aura, a browser that can navigate between standard websites (🌐), Bluesky handles (@), and permanent DIDs, resolving them all in the same address bar.
jared (@awarm.space) reply parent
I can def see the case for it, but i think it invites a can of worms of where to define the blessed boundaries. doing things in a lexicon makes stuff very explicit, and easier to define how other parties should use the data
jared (@awarm.space) reply parent
No apologies necessary, thanks for doing it! And glad you're enjoying writing ☺️!!
jared (@awarm.space) reply parent
yeah looks like not size issues, since the blobs exist in your pds. I can't tell if I just have literally no way to view heic files or if they corrupted some how lol
jared (@awarm.space) reply parent
Rip, sorry I'll look into it! Might be size issues w/ your pds host if they're over 3mb, or could be a rate limiting thing!
jared (@awarm.space) reply parent
Alright, cleared it!
jared (@awarm.space) reply parent
Hmm, like creating a new pub with the same domain from the UI? It might be still reserved in the backend, I can clear that
jared (@awarm.space)
@jackvalinsky.com (and anyone else dealing w/ leaflet appview issues! made some changes and our appview should be caught up and live now!
jared (@awarm.space) reply parent
Ah thanks for the device info in alt-text , will work on this!
jared (@awarm.space) reply parent
Ugh sorry, was debugging appview problems yesterday still. I'll ping u when I got it synced!!
jared (@awarm.space) reply parent
Appview is still catching up 😭, gotta figure out how to make this faster, I think the URL parsing for getting bsky quotes is the slow thing. And the editable docs *aren't* stored on your pds right now, those are just in our database, only publications and published docs are actual records.
jared (@awarm.space) reply parent
Hmm that looks right! Just checked and looks like our appview listener was down, rebooted it, hopefully will pick it up!
jared (@awarm.space) reply parent
Hmm the publication field seems to not be pointing to a real publication record, that's probably it!
jared (@awarm.space) reply parent
We need to put it more places lol dw you are not the first to miss it today
jared (@awarm.space) reply parent
Oops, was tryna replicate an issue locally!
jared (@awarm.space) reply parent
It's *possible* but not very friendly at all right now sorry! A bunch of dependencies on saas platforms make things annoying. Boiling those down and simplifying is absolutely a goal tho!
jared (@awarm.space) reply parent
Looks like we had some bad auth redirects which were tripping things up, fixed that! Some remaining validation issues according to the w3 org tester, but I think it should still parse fine in most cases. Unsure about the CDATA tag, seems to be an expected XML thing? Can dig deeper!
jared (@awarm.space) reply parent
And ha, I think these specific 10 days are probably the worst for that lol, I have been in the weeds on the sync protocol. Definitely want it to be robust to very old clients (and it was before all this performance optimization 😭)
jared (@awarm.space) reply parent
Ugh okay, I think in that case the data is lost, I'm sorry :( I did push a fix for the underlying issue, but it also shouldn't have commited the changes and cleared your local cache if it didn't apply properly, so there's another error somewhere, which I will try and track down!
jared (@awarm.space) reply parent
just visually do you see the edits in the local tab?
jared (@awarm.space) reply parent
Aghhh sorry! Looking in the logs I can see it failing to apply a whole stack of mutations because of some bad transaction logic, but eventually it seems to give up or get past it somehow? Do you still have the data locally or did it disappear even in that tab?
jared (@awarm.space)
Super cool discussion happening in the comments here: augment.leaflet.pub/3lxcznn4bg22f/ Even stretching across multiple publications and posts!! (And yes, absolutely want to do quoteable comments soon!)
jared (@awarm.space)
Leaflet: mindboggling midblogging
jared (@awarm.space) reply parent
Nvm had to roll some of it back 😭 hopefully will figure it out tn
jared (@awarm.space)
Ookay, just did a bunch of stuff to improve sync perf in leaflet! Still work to do to ensure when you publish it doesn't publish unsynced content, but that case should be *much* rarer now. Let me know if y'all run into any more wierdness, and appreciate any stress testing!
jared (@awarm.space) reply parent
While its buggin out, you can open the edit link in an incognito window to see what's synced (sorrrryyy)
jared (@awarm.space) reply parent
running into some sync issues rn, sorry, working on debugging
jared (@awarm.space)
Sorry about the sync issue w/ leaflet y'all, working on improving!