#dev 2023-03-15

2023-03-15 UTC
#
IWDiscordRelay
<j​acky#7226> gRegor: haa
IWSlackGateway, bterry and [tantek] joined the channel
#
[tantek]
what is Zap
#
Loqi
It looks like we don't have a page for "Zap" yet. Would you like to create it? (Or just say "Zap is ____", a sentence describing the term)
#
IWDiscordRelay
<j​acky#7226> is that for BlueSky's zaps? or the protocol?
#
Loqi
[snarfed] has 79 karma in this channel over the last year (123 in all channels)
#
[tantek]
I may experiment with implementing later tonight or tomorrow. Notes here for now: https://indieweb.org/Falcon#linked_hashtags (the big a-ha was considering using indieweb.social’s tag pages as a tag space for linking to)
[snarfed] joined the channel
#
[snarfed]
I wonder if any custom site search provider indexes special characters like #
#
[0x3b0b]
<[tantek]> "what is Zap" <- If my brief hunting around based on what I thought I remembered (partly prompted by recognizing Mike Macgirvin's name) has not led me astray, it was sort of a successor of Hubzilla from at least 2018 until the beginning of this year, at which point it is apparently considered end of life and succeeded by something called Streams
[aciccarello] joined the channel
#
[aciccarello]
I was wondering what they were running too. Lots of history around frendica and diaspora in their messages.
#
[0x3b0b]
Mike is, if I'm not mistaken, essentially The Main Guy behind Friendica, Hubzilla, the Zot protocol and its iterations, the Nomad protocol which is apparently the successor to Zot6, Osada and Zap and Streams which are apparently a subset of what happened after Hubzilla, and a whole lot of stuff around the concept of Nomadic Identity in general
#
[tantek]
I feel like I need a diagram and timeline to understand what evolved/forked into what and when (and hopefully why)
#
[tantek]
I think we have a page in maybe a couple of those but certainly not all
#
[0x3b0b]
I have, on occasion, for a few hours after each time I've researched it, had a vague grasp on the reasons for the differences between Friendica and Hubzilla. Apparently at one time the reason for the Osada/Zap split was that Osada was for if you wanted "a really good ActivityPub server, Zap was for if you "want or need nomadic identity and much stronger privacy than the Fediverse can offer," and Hubzilla was for people who "actually
#
[0x3b0b]
know what a ‘platform’ is and want to build something great (decentralised communities and cities with shoppes and businesses that all respect your freedom) rather than than just waste your life in idle chit-chat." But then later Osada stopped development and Zap learned to speak ActivityPub I guess and...yeah this entire family of projects is really hard for me to follow too.
[schmarty], sivoais, gRegor, geoffo, IWSlackGateway, jonnybarnes, [tantek], Oi, [jgarber] and barnaby joined the channel
#
prologic
May I ask y'all, for those that have used a static site generator (SSG) or two over the years, what are the most useful features that you find you really need? What do you find generally missing from some SSGs?
#
prologic
Context: I want to ensure that Zen Static (https://git.mills.io/prologic/zs) has all the feature/flexibility you'd need to create almost anything really
#
IWDiscordRelay
<c​apjamesg#4492> That sounds like a challenge prologic 😄
#
IWDiscordRelay
<c​apjamesg#4492> My SSG is far from normal in its design, but now that I think about it with some work I could probably fix the complexity.
#
prologic
It is :)
#
IWDiscordRelay
<c​apjamesg#4492> The biggest thing for me is good date-based pagination.
#
IWDiscordRelay
<c​apjamesg#4492> I ran into a lot of walls with the extensions available for Jekyll and that was part of the reason I decided to build my own SSG.
#
prologic
Like being able to spit content up by date and then render navigation for it?
#
IWDiscordRelay
<c​apjamesg#4492> I would want pages like /YYYY/MM/DD, /YYYY/MM/ and /YYYY/ to be generated automatically.
#
IWDiscordRelay
<c​apjamesg#4492> If someone asks "James, what posts did you write in 2018?" I could say "hey, check out example.com/2018/ for those posts."
#
prologic
Yeah rightio, fair enough, I guess you're more speaking from a blog perspective right?
#
IWDiscordRelay
<c​apjamesg#4492> Yeah.
#
prologic
Yup makes sense
#
IWDiscordRelay
<c​apjamesg#4492> It's a feature I wish was easier to integrate with SSGs.
#
prologic
One of the things I'm very deliberately trying to maintain and keep fairly simple in zs, is the extensibility
#
IWDiscordRelay
<c​apjamesg#4492> In my SSG, I have a feature flag called "pagination" that, if applied, enables pagination.
#
prologic
Basically you have a couple of drivers, YAML frontmatter that drive variables you can use in your content and layouts, pre/post hook and extensions
#
prologic
In content (and in layouts) zs expands {{ foo }} to a variable named foo or an extension by the same name in .zs/foo (executable)
#
IWDiscordRelay
<c​apjamesg#4492> My implementation for this is, in hindsight, clunky.
#
prologic
so if I were to build some kind of pagination feature I would build it as a prehook I guess, collect all content pages with a date variable defined and process those into categories of collections
#
IWDiscordRelay
<c​apjamesg#4492> Yep.
#
prologic
What else? :)
#
prologic
This is good, something for me to think about
#
prologic
What about corporate/landing page style stuff?
[Joel_Auterson] joined the channel
#
[Joel_Auterson]
Incremental builds would be great
#
[Joel_Auterson]
Hugo is super fast but even it can get a bit cranky if there are thousands of pages, as those of us who write 'notes' often have
#
IWDiscordRelay
<c​apjamesg#4492> +1 re: incremental builds
#
sknebel
Soupault has some interesting ideas in the ssg space
[jamietanna] joined the channel
#
[jamietanna]
Yeah my site takes ages (many minutes) to build now on Hugo 😅 rather painful
#
prologic
Thanks all! This is great 👌
[Murray] joined the channel
#
[Murray]
@prologic another +1 for both incremental builds and robust route architecture (which is what I'd put things like automatic date folder structures under). In terms of the SSGs I've used, I can run through a few 😄 (I'll do it message-by-message to avoid bridging limits)
#
[Murray]
Gatsby: the best part here was the shared data layer. Anything you ingest is made available by an internal GQL API, which makes data pipelines very simple and easy to standardise. Worst part was being stuck with React, and some clunky routing logic (which may have been fixed in more recent versions)
#
[Murray]
NextJS: Best bits are the modularity of build options. Any given page can be statically rendered, server rendered, a mixture, etc. It's not as modular as Astro, but it makes it very powerful, and gives you the best of both worlds. Cons are still React, and I personally find it overly opinionated about things like its own routing and image components
#
[Murray]
Astro: generally great, very modular, island architecture is super useful and the ability to import components from Vue, React, Svelte etc. alongside fully "vanilla" Astro components, web components, or even Markdown pages, just makes it incredibly flexible. My biggest irritation with Astro is the way it handles styling, which makes it very hard to implement dynamic, cascading styles
#
[Murray]
Eleventy: very flexible in terms of how you structure your data and files, but I've found it a little clunky to work out data pipelines. I haven't tried it in a while, either, so may have missed some bits
#
[Murray]
Overall, I'd say the biggest wins are flexibility in rendering (incremental and the option to render on the server/edge are now pretty much baseline requirements for a lot of projects that I work on), a strong and consistent route-building method, and a good ecosystem of third-party extensions. Astro is particularly good at that last part, because of how it bundles extensions, which makes installation very simple (great DX all
#
[Murray]
around)
#
[Murray]
Biggest pain point is always CSS 😄 What I'd ideally want is automatically scoped styles to a component level, but with the ability to easily override them. Astro does this broadly well, in that it gives you the opportunity to have global styles and then auto-scopes all other style fragments to the page or component level, but it actively removes the ability for a parent component to modify the styling of children, which is deeply
#
[Murray]
frustrating.
#
[Murray]
(though their use of `:where` is clever in terms of keeping specificity low, but that does mean that global styles are often higher in the cascade)
geoffo joined the channel
#
[Murray]
So for me, any SSG that manages to have: global styles that are automatically overridden by page styles, which are also overridden in turn by component styles, which can then be referenced from _other components_ would be amazing. Add auto-scoping and the ability to use props during the build step to modify styles based on stuff like data checking or state (another thing Astro largely lacks, but which CSS-in-JS makes trivial) would
#
[Murray]
be ideal
[benatwork], gRegor, gRegorLove_, [jacky], geoffo and [aciccarello] joined the channel
#
[aciccarello]
I've been using eleventy for my site. I'll second that pagination is a little constrained. There has been some work on incremental support but it feels pretty alpha to me. The strength and weakness of eleventy is it's flexibility. I switched from Jekyll since I don't use Ruby otherwise.
[KevinMarks] joined the channel
#
[KevinMarks]
[Murray] - the Hugo styles inheritance does that kind of thing, but it can make it a bit confusing to work out where the template you need to edit it
#
[Murray]
Oh interesting, I've never actually tried Hugo but maybe I should. That's definitely a fair criticism (and one of the cited reasons Astro takes the approach it does) but I often work in codebases using atomic component principles, and it makes layout components a bit of a nightmare, because you often _have to_ modify the placement of child components, but can't. (utility classes like how CUBE and Every Layout use them are a good
#
[Murray]
intermediate option, IMO)
#
[Joel_Auterson]
I moved from Jekyll to Hugo recently and have been very impressed with it so far
#
[aciccarello]
I like that eleventy supports different templating engines. I've messed around with hugo and found Go templates a little confusing.
#
[aciccarello]
But the speed is unparalleled
#
[Joel_Auterson]
go templates are weird even as a Go programmer
mouse[d], IWDiscordRelay and petermolnar joined the channel
#
[KevinMarks]
I use a lot of different templating languages, and Hugos is a bit complex. There is a coherent logic to it, I just forget it inbetween using it. https://gohugo.io/templates/lookup-order/
[schmarty] joined the channel
#
[schmarty]
i can co-sign that Hugo's templating is weird/hard (but powerful). and that Hugo is fast! my site still takes a minutes or two to build on the little VPS that runs my micropub service, though, so incremental builds are very much on my mind.
#
[schmarty]
also Go's Date parser is a complete menace and while I used to be able to work around that with template hacks, those no longer work. so i need an extra layer of date sanitization to fix up /reply_context mf2 data.
#
[schmarty]
(for example when it sees a `published` date like this one from one of tantek's posts: `2023-02-20 19:16-0800` it completely chokes and kills my build process)
#
[KevinMarks]
is it wanting a T in that? I have the same problem with observeable's date parser
#
[schmarty]
it wants a seconds value 😒
#
[aciccarello]
Here's a static site builder comparison from the creator of 11ty https://www.zachleat.com/web/build-benchmark/
#
IWDiscordRelay
<c​apjamesg#4492> Mine takes 7 minutes.
#
IWDiscordRelay
<c​apjamesg#4492> You could maybe ask Jamesbot about that.
#
IWDiscordRelay
<c​apjamesg#4492> Well, 4. The other 3 is deployment overhead.
gRegorLove_ and gRegorLove__ joined the channel
#
[tantek]
I'm a bit confused by text transformation taking minutes, not seconds, with today's processors/IO etc.
#
[tantek]
s/text transformation/string manipulation
#
[tantek]
I mean it's not like it's rendering 3D raytrace images or anything
#
[Joel_Auterson]
well i don't have dedicated hardware in my machine for string wrangling 😉
#
IWDiscordRelay
<c​apjamesg#4492> It’s the read writes and the network requests that are the issues 😅
#
IWDiscordRelay
<c​apjamesg#4492> Retrieving hover cards (not implemented caching yet), writing 4k files, each of which involves template logic.
geoffo joined the channel
#
[aciccarello]
My total build takes 1m 19.158s but a lot of that is running lighthouse and secondary stuff. The actual site build is pretty fast
#
[aciccarello]
[11ty] Copied 437 files / Wrote 376 files in 3.48 seconds (9.3ms each, v2.0.0)
#
[schmarty]
My site builds 8000 pages. it takes 3s on my dev machine (64GB ram, 12th gen intel i7). it takes ~63 seconds on my VPS (digitalocean single core 1GB ram)
#
IWDiscordRelay
<c​apjamesg#4492> What is going on? 🤣
#
IWDiscordRelay
<c​apjamesg#4492> My generator isn’t doing great 😅
#
[schmarty]
those are just my hugo build times. i also have a bit of overhead for each new and updated post to commit and push stuff to git, fetch reply-context info for the new post, preview info for any new mentions, etc.
#
[schmarty]
(that stuff is small compared to >60s builds tho)
#
[tantek]
lol The Cure is trending and I'm wondering why the web hasn't made Ticketmaster obsolete (there's an IndieWeb angle to this just wait)
#
[tantek]
Shouldn't the web have made Ticketmaster obsolete? I.e. each band being able to use their website to sell tickets to shows? Or at least provide direct links to each venue they are playing at and have each venue sell tickets directly from their website? What am I missing? (edited)
#
[tantek]
I guess I was hoping to explore what are the indieweb dev challenges in building these things but ok
geoffo and [snarfed] joined the channel
#
[snarfed]
from chat, [jacky] re FediForum, I'm going, [j12t] invited me to demo Bridgy Fed
#
[snarfed]
I vaguely remember the ticket cost being optional originally, recommended donation etc, but not sure
#
[snarfed]
I don't have too much experience with IIW or its crowd, but j12t had obviously been a community member here for a while
#
[snarfed]
Agenda seems broadly similar to DecentSocial a month ago, people building the fediverse in various ways
#
[snarfed]
(er sorry, j12t _has_ been)
#
[jacky]
gotcha!
#
[tantek]
glad to hear it [snarfed]!
#
[tantek]
when is FediForum
#
gRegor
"If you are unable to afford a ticket, please get in touch; we have a limited number of scholarships available" https://fediforum.org/venue-and-pricing/
#
[tantek]
what is FediForum
#
Loqi
It looks like we don't have a page for "FediForum" yet. Would you like to create it? (Or just say "FediForum is ____", a sentence describing the term)
#
[tantek]
gRegor, I still think signing in with your own domain should be enough to get you a ticket discount price of 0
#
gRegor
Agreed
#
[tantek]
at least for any conference that is seeking to attract web builders
#
[tantek]
maybe that's the thing we need to help build, an IndieAuth-based ticketing system for events
#
gRegor
backs away slowly
#
[tantek]
so folks that are IndieWeb-friendly or community members can do their own conferences without having to build that piece from scratch
#
[tantek]
like a very minimalist Tito / Brownpapertickets but with IndieAuth support
#
[tantek]
good connections [snarfed]
#
[snarfed]
[KevinMarks]++ ^
#
Loqi
[KevinMarks] has 13 karma in this channel over the last year (53 in all channels)
#
[KevinMarks]
js;dr << “These are examples of progressive enhancement acting as a kind of technical credit—the opposite of the (much) more common technical debt.” https://medium.com/@jason.godesky/when-javascript-fails-52eef47e90db
#
Loqi
ok, I added "“These are examples of progressive enhancement acting as a kind of technical credit—the opposite of the (much) more common technical debt.” https://medium.com/@jason.godesky/when-javascript-fails-52eef47e90db" to the "See Also" section of /js;dr https://indieweb.org/wiki/index.php?diff=87016&oldid=84956
#
[tantek]
[snarfed] I thought we had brainstormed about RSPVing for a +1 or saying you are bringing a guest but I can't find anything about that either! this is related to but not dependent on the capacity/tickets thinking. i.e. there are many informal parties (evite etc.) where you can RSVP with a +1 but it has no impact on capacity/ticketing
#
[snarfed]
maybe! iirc my brainstorm w/[KevinMarks] (second link) was different, more for events with fixed capacity
#
[snarfed]
all useful though
geoffo joined the channel
#
[tantek]
Indieweb replacement for free/basic evite
#
aaronpk
I have a whole list of feature requests to turn Meetable into that
#
aaronpk
I wanted to leave out the ticketing part first to try out just the directory aspect, but it's been like 3 years of using it now so maybe it's time 😅
#
[KevinMarks]
venue limits have been less of an issue in the last 3 years
jo3 joined the channel
#
[tantek]
[KevinMarks] no the opposite is true. When we have organized anything in-person, we have had had MORE venue limits, not fewer.
#
[tantek]
e.g. all IndieWebCamps in the last 3 years
#
[tantek]
I'd be interesting in hearing the personal experience(s) of anyone else who has helped organize an in-person event in the last three years. And if you haven't, then you're kinda hand-waving.
#
[KevinMarks]
I meant that most events have been online only for three years, so didn't have venue limits
[jeremycherfas], IWSlackGateway, gxt__ and bterry joined the channel