My M1 Mac froze in the end (had to hard-reboot), but that was so much fun! I guess there’s a reason Figma uses WASM and a custom renderer, though I guess your implementation should work fine for most cases (i.e. not when all of HN are trying to edit everything simultaneously :^)
Two notes:
1. It would be nice if another person changing something unrelated to what I’m doing didn’t reset the focus for me.
2. WAY too llm-y copy both on the landing page and the example deck. Your HN submission text is way easier and more pleasant to read.
Thanks! I had to reset the guestbook because it's being spammed. It's on epoch 4 now, hopefully people will be better behaved moving forward!
1. Yes, that's a good point that somebody else raised also. It went pass testing as I was only testing with 1 or 2 other people at once. Will fix this tonight.
2. Yeah, agreed and fair point. But I don't write well and I don't have time between day job and being a dad. Will try to fix this gradually.
1. I’ve added the ⌘V remark on the first slide (it was the only way I could add anything in the previous epoch at all!). Hope it helps others have fun in the meanwhile.
2. Absolutely fair point, and it’s okay – the demo speaks for itself :-) Although if you wrote that submission text yourself, you do write pretty well! But obviously no pressure here.
I would say the design is the most human thing about this page. (It has its charm somehow, even if it’s obviously “flavour of the week LLM design”. Also, I don’t think an LLM would choose colours so poorly unless nudged in that direction – accidentally, I suppose.)
If you think (or care), that the LLM wrote all of the subheaders, the category names etc, then you might be spending too much time focused on the wrong thing.
I don’t think anybody really cares, the reaction is because you praised some copy that was obviously written by an LLM and either not edited or barely edited.
├─ chill radio, classical, and guest stations
├─ the arcade (2048, sudoku, nonograms, solitaire)
├─ collaborative artboard
├─ daily challenges & streaks
├─ live chat
├─ share & discuss news
└─ multiplayer games (coming soon)
^This didn’t feel like LLM to me.
& for the category descriptions, I’m used to way more convoluted word-choice places like…here, lol, so that didn’t stand out to me the way it did for everyone else.
I don’t really care. I’m just... disappointed a bit? It seems like a cool project, but those “concise sentences” don’t make it easier to learn about it.
no passwords. no OAuth. no accounts.
your ssh key is your identity.
chats, scores, and streaks are tied to your public key fingerprint. same key, same data.
No accounts? How is that possible? You literally store my data! Is that not an account?
And what the fuck is OAuth? (Okay, this clearly is oriented at developers, but on its own the sentence just doesn’t make sense. For me as a user, what pain is removed by not having a “Sign in with GitHub” button? Why should I care?)
How about you tell me why you decided to do it that way:
all your data – chats, scores, streaks – is tied to your ssh public key.
no need to come up with a password or verify your email – just ssh in.
It took me a couple of minutes to write this, sure, but at least it now makes sense. And it’s more concise, no? (It still sounds llm-y to me, but whatever.)
Now, for bonus points, there’s two obvious questions to answer:
• what do I do if I lose my SSH key?
• what do I do if I use more than one device?
(The obvious answers are “you can add other SSH keys in your account settings” and “you can add other SSH keys in your account settings”.)
---
Okay, one more, and then I need to go grab a beer.
a read-only peek at the TUI in your browser.
tab around, see what's inside.
no typing, no chat, no games — just a window
into a shared demo session.
for the real thing, `ssh late.sh`.
Concise?
a read-only preview of late.sh in your browser.
poke around and see what's inside. `ssh late.sh` when you’re ready to chat and play.
> The goal of the lander is to get you to use the clubhouse. Not get you to become a contributor, or intrigued/turned away by their stack choice.
Yep! That’s the idea. When writing, think about what your users want to know. If there is some technical detail you want to clarify – show how it helps the user.
> use the same key across devices!
That’s easier for sure! But if I lose a device, revoking one key on every server/service is a PITA already, and reissuing and replacing it on every server and client is even more so. (Also, this wouldn’t work with HSM-backed key stores like https://github.com/maxgoedjen/secretive :-)
They could do Telegram at least, which has a non-zero user base (not sure about India, though, which seems to be their target market), and supports third party clients. Rolling their own chat app is... well, good luck with that.
It makes sense to talk about “RSS aggregators”. Especially it makes sense to talk about “RSS aggregators that speak a specific vocabulary on top of RSS, host 99% of content using that vocabulary, and if you host your own RSS feed with said vocabulary they’ll show it in their aggregator but can ban it any minute”.
Did I just describe Apple Podcasts? Huh. Regardless, yeah, there’s no “ATProto instances” technically, but there are ATProto apps and the single biggest one now owns the trademark to the protocol name.
i guess that's fair, but i've never listened to a podcast from a non-foss app; i'm not really "in" the podcast sphere, but from where i'm sitting it seems podcasting would survive and migrate just fine if apple podcasts had to go away suddenly
I guess that’s fair, too. I’m not really into podcasts either, and the ecosystem seems healthy enough. Many FOSS podcast clients use Apple for discovery, which I guess make sense; but there’s probably other databases, and the contents themselves aren’t usually hosted by Apple, just the metadata.
So yeah, podcasts are in good shape. In fact, they are probably the most used decentralized media right now (apart from torrents, maybe). I hope Bluesky gets to that point, and I do wish them luck, but we’ve got to see the incentives are not that well aligned. As for the trademark... it’s surely weird, it’s not the end of the world if they continue to hold it, but setting up a non-profit (not in US, perhaps) for the protocol itself would probably be more appropriate down the road.
The thing with ATProto is, there is little incentive in creating apps that speak the app.bsky vocabulary. If I understand correctly, there is one other full-fledged app that does that, Blacksky [0]. By full-fledged, I mean they host a PDS, a relay, an app view, a moderation service, and a bunch of feeds and other doodads. If Bluesky goes down, Blacksky will probably be fine. They are, however, yet another US company [1], which is not ideal.
This is very cool and thanks for sharing the workflow, buuuuuut... Could you please rewrite the README in your own words? If not for this comment, I would have just flagged this submission without looking into it further, because no matter how useful the premise is, it feels like one of the millions “I’ve burnt a bunch of tokens and thrown the result on GitHub” kinda projects you see nowadays. Clearly that’s not the case here, but an LLM-generated README really does your project a disservice.
Forgejo is fairly simple to run – way lighter and simpler than GitLab even. (GitLab is quite okay, too!)
If you want a hosted service, go for Codeberg. It’s run by a German non-profit (so it’ll be hard to bite and switch OpenAI-style). Only free/open source projects are accepted, though.
I’m leaning towards vendoring for all my new projects.
Grabbing an off-the-shelf UI library is easy in the short term, but it’s usually overcomplicated, implements things I won’t ever need, is hard to tweak if/when you want to distinguish your app from the thousand others using the same library, and when you do decide to upgrade it, all your tweaks break in subtle ways.
What I think would be the best approach is building your own UI library. You own it, you get to reuse it across different projects and maintain the same visual style (if desired), and you add features when you need them.
It's one more thing to maintain, and it's also difficult to push back on things. If you use off the shelf components it's much easier to say to designers and managers that a UX pattern is not available or not valid. You can point to the mature well known community owned UI library you use and make it authoritative. It's harder to do it if you build your own, suddenly each designer and developer is throwing things in there, adding features etc. It's also difficult to agree on the structure, so the components are well thought out, flexible, but also not so flexible to lose semantics. It's not an easy job, do you use slots, composition, rendering callbacks, there are too many decisions and you spend time building the UI library instead of actually shipping features.
It is true, yeah. But it allows you to own the brand identity, which is kinda useful if you have a brand.
I think we’ve found the holy grail with one of my clients recently. Our UI kit follows https://mui.com/ wherever makes sense, but we implement the components ourselves. This means (1) we don’t have to make too many architecture decisions – we just do whatever MUI does, and (2) it’s fairly easy to push back against adding features that don’t add a lot of value and deviate too much from, well, whatever MUI does.
Odd to me when I read stuff like this but also posts about how AI is making everything trivial. Surely a thing that almost every company did in the early 2000s should not be hard today, but of course today you can’t just write HTML + CSS, you must consider every front end framework introduced in the last decade.
I remember the 2000s web, it was primitive. It's not hard to combine some html and css, it is hard to support more complex dynamic actions and components, all with consistent theming and behaviors and have them composable and reusable.
To me, that's the value of shadcn (conceptually) - it's nothing more than a tool to bootstrap your own UI library.
It let's you copy in snapshots and change/edit/refine as you go. You own the UI kit the moment you copy it in. I see Shadcn 'upgrades' as nothing more than a stranger's PR to my UI kit, which usually means useless noise, unless there's a specific feature/bug that I need.
Honestly that’s about the only thing I like in shadcn. It makes scaffolding your UI kit extremely easy, but then you own it and can extend it in whatever way makes sense for you. Unfortunately I’m allergic to Tailwind, and React-only makes it a no-go for me, too :(
There are alternatives, of course, but what I’d like to see is a kinda unified component API spec that you can implement however you like, which both humans and AI can pick up without having to learn whatever idiosyncratic props you might have chosen. So I guess, I’d like to see other libraries use shadcn props with “sane”¹ implementation under the hood?
(¹ – in my case, just plain old Svelte components with inline CSS and/or CSS modules :-)
My M1 Mac froze in the end (had to hard-reboot), but that was so much fun! I guess there’s a reason Figma uses WASM and a custom renderer, though I guess your implementation should work fine for most cases (i.e. not when all of HN are trying to edit everything simultaneously :^)
Two notes:
1. It would be nice if another person changing something unrelated to what I’m doing didn’t reset the focus for me.
2. WAY too llm-y copy both on the landing page and the example deck. Your HN submission text is way easier and more pleasant to read.
And huge kudos for releasing this as FOSS!
reply