SaraSoueidan@front-end.social
SaraSoueidan@front-end.social

Not a day goes by when I work on my website that I don't wish for a simpler setup. No SSG. No npm. No tooling. Just simple HTML with partials imports, vanilla CSS, and whatever vanilla JS is necessary for enhancements.

I just want the HTML partials imports. Why don't we have them already?!

|
Embed
Progress spinner
SaraSoueidan@front-end.social
SaraSoueidan@front-end.social

Actually, the main reason I feel uninspired to work on it (I haven't done so since I migrated to 11ty three years ago) is *because* of the tooling I need to use.

I don't want dependencies. I don't want tools with breaking updates. I just want a simple website. πŸ₯Ή

|
Embed
Progress spinner
alan42@mastodon.social
alan42@mastodon.social

@SaraSoueidan I was the same. Still early days for me but I’ve started a journey of learning and moving to Publii (double β€œI”).

Hope it’s inspirational and or helpful πŸ‘

|
Embed
Progress spinner
alan42@mastodon.social
alan42@mastodon.social

@SaraSoueidan PS not tools, just a clean Mac app.

|
Embed
Progress spinner
westbrook@mastodon.social
westbrook@mastodon.social

@SaraSoueidan At the #webComponentsCG we see #HTMLModules and #declarativeWebComponents as the sort of APIs that would open the door to "HTML Macros" in this way. @justinfagnani have we captured that as a specific proposal, or is it still a part of the larger conversation?

|
Embed
Progress spinner
cferdinandi@mastodon.social
cferdinandi@mastodon.social

@SaraSoueidan I never migrated away from Hugo, and while it has its own problems, I'm grateful that it's a binary that doesn't require messing with NPM or any of that stuff.

|
Embed
Progress spinner
achim@social.saarland
achim@social.saarland

@SaraSoueidan Not perfect, but isn't hotwired.dev/ or htmx.org/ quite close to that? Or did I misunderstand the question? It is still a JS library, but you can get a long way without the need for fancy JS tooling.

|
Embed
Progress spinner
junkman@mastodon.social
junkman@mastodon.social

@SaraSoueidan I started tweaking my website again last year after getting rid of all tooling except scss processor.

Granted, I don't have a fancy system nor difficult requirements.

But I feel like you, "modern" web development can be very complex.

|
Embed
Progress spinner
ppk@front-end.social
ppk@front-end.social

@SaraSoueidan Err .. good old SSI does wat HTML partials imports do, right? Or am I misunderstanding something profound here?

|
Embed
Progress spinner
brunogirin@mastodon.me.uk
brunogirin@mastodon.me.uk

@SaraSoueidan yep, agreed. The closest I've found for this is Hugo: the only dependency is the Hugo binary.

|
Embed
Progress spinner
SaraSoueidan@front-end.social
SaraSoueidan@front-end.social

@ppk I literally had to google "SSI". Never used them and no idea how to. πŸ™ˆ

|
Embed
Progress spinner
SaraSoueidan@front-end.social
SaraSoueidan@front-end.social

@achim i haven't looked into either of these to be honest.

|
Embed
Progress spinner
Anneke@front-end.social
Anneke@front-end.social

@SaraSoueidan preach! I was playing around with something as vanilla as possible (a node script that puts stuff together, build pages from markdown but without packages) but I still end up with web components. Not sure how I feel about that yet

|
Embed
Progress spinner
ppk@front-end.social
ppk@front-end.social

@SaraSoueidan Is your server Apache? Can you upload .htaccess files via FTP or edit them via SSH? If Yes it's likely you can use SSI, and once you set it up it'll work forever, as it has done for the past 25 years and you can just use it.

|
Embed
Progress spinner
asuh@mastodon.social
asuh@mastodon.social

@SaraSoueidan I feel similarly! Considering that whatever server I upload to already has default server languages, which is likely PHP (or possible JS via Node), it's very possible to just lightly lean on PHP imports. I am just a couple of decisions away from throwing away external tooling for native @ imports for CSS and JS since they are fully featured today. In fact, I think 2025 will be a banner year for going back to native CSS and JS!

|
Embed
Progress spinner
teleclimber@social.tchncs.de
teleclimber@social.tchncs.de

@SaraSoueidan I agree. A build step would be OK (we usually have a deploy step anyways), it's the fact that a build step involves reams of projects that invariably change or break something on you. If the build tools could be as reliable as running rsync (for example), I'd be OK with it. But as things are, their instability goes completely against the web's stable nature that we enjoy so much.

|
Embed
Progress spinner
SaraSoueidan@front-end.social
SaraSoueidan@front-end.social

@ppk πŸ€” I'll have to look into this. Right now my setup is: 11ty website hosted on Netlify. "Simple". πŸ˜…

|
Embed
Progress spinner
achim@social.saarland
achim@social.saarland

@SaraSoueidan I'm a "backend data juggler" who sometimes does frontend stuff just for "fun" in his spare time, so I'm probably not a qualified source.

But I can say that both libraries (I would give HTMX a try first) can be included in your page and "just work" without the need to touch the annoying JS ecosystem. They reduced my pain in personal projects A LOT.

|
Embed
Progress spinner
asuh@mastodon.social
asuh@mastodon.social

@SaraSoueidan If you do actually rethink for using PHP imports, review Laravel Blade as a light PHP enhancement, even though it requires compiling. The syntax of Blade with combination of HTML is quite ideal to concepts I'd want for HTML imports. To be clear, take an HTML document as is, and sprinkle in some Blade conditionals. It's really nice.

|
Embed
Progress spinner
ppk@front-end.social
ppk@front-end.social

@SaraSoueidan Going back to your original toot, I'm starting to wonder if you even need 11ty and Netlify. Sounds like what you want is old-fashioned Apache web hosting, where a bunch of files are just waiting for an HTTP request to arrive and are sent off to whatever browser needs them.

Then again, switching hosting providers is a serious challenge not to be taken on lightly.

|
Embed
Progress spinner
Meyerweb@mastodon.social
Meyerweb@mastodon.social

@ppk @SaraSoueidan Still running quirksmode on SSIs, PPK? (I’m still running most of meyerweb on them, so no shade.)

|
Embed
Progress spinner
asuh@mastodon.social
asuh@mastodon.social

@ppk @SaraSoueidan Exactly, PPK! All websites run on servers, all servers have default languages to use for imports. CSS and JS both already include @ imports. In theory, there's a present state where there's no compilers, no build steps, no extra packages, if desired. It's crazy to realize this is more or less here, minus some bonus features.

|
Embed
Progress spinner
ppk@front-end.social
ppk@front-end.social

@Meyerweb @SaraSoueidan Oh yes, what would I change a winning combination? Uploading changes with FTP: check. Not using any kind of generator, not even a static site one: check.

|
Embed
Progress spinner
carbontwelve@notacult.social
carbontwelve@notacult.social

@SaraSoueidan many years ago I used to use a free hosting provided by my ISP it was mostly basic aside for one thing, it supported shtml includes and I found them invaluable for having shared parts of each page such as header, footer, etc. For a lot of websites I think that’s all that is required.

|
Embed
Progress spinner
zachleat@fediverse.zachleat.com
zachleat@fediverse.zachleat.com

@SaraSoueidan any issues in particular causing pain? (if you’re just venting that’s fine too!)

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@SaraSoueidan yep that's all I want for most things! Import header, footer, nav. Done.

|
Embed
Progress spinner
teleclimber@social.tchncs.de
teleclimber@social.tchncs.de

@ppk @SaraSoueidan I think if the goal is simplicity and low-maintenance, adopting an internet-facing VM with Apache on it is perhaps not the ideal path. The constant need for security updates and reboots, not to mention the need to set the thing up securely enough in the first place. Even for someone with lots of skills, the fewer VMs one has, the better. Throwing something up on Netlify and walking away is really nice.

(I assume you need a VM? Does apache-only hosting still exist?)

|
Embed
Progress spinner
khalidabuhakmeh@mastodon.social
khalidabuhakmeh@mastodon.social

@sarajw @SaraSoueidan How would this work regarding the critical rendering path? Would rendering be blocked until the HTML is transmitted completely, or do you re-evaluate the DOM as new includes are hit in the HTML stream?

I think it would be a neat spec to propose. I’m sure those are problems that can be solved.

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@SaraSoueidan @ppk OMG this is news to me too. Definitely going to look into this...

|
Embed
Progress spinner
Wilto@front-end.social
Wilto@front-end.social

@SaraSoueidan @ppk @Meyerweb ah, so _this_ is why my beard turned fully grey exactly one hour ago

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@khalidabuhakmeh @SaraSoueidan doesn't html load down the DOM anyway, grabbing images etc as it goes? Could it also do that with includes?

|
Embed
Progress spinner
mro@digitalcourage.social
mro@digitalcourage.social

@SaraSoueidan I am thinking tooling that takes pure html and gently amends it. E.g. I like footnotes and so made a commandline tool to

replace
<a href="#fn_"></a>
with
<a href="#fn_xy" id="ref_0-fn_xy">[1]</a>
and ensure according <li id="fn_xy"> in <ol data-footnotes-generator="mro.name/pagerake"></ol>
in ascending order.

Used e.g. here seppo.social/en/about/#footnot.

I want just html, but also want helpers that complete what I intend and help with consistency. I compile the helper to a single-file, standalone binary for Linux & FreeBSD and have them forever without any further dependencies.

|
Embed
Progress spinner
khalidabuhakmeh@mastodon.social
khalidabuhakmeh@mastodon.social

@sarajw @SaraSoueidan I think the most significant difference is that the idea of HTML includes could have CSS, JavaScript, or potentially more includes. So they would probably have to force a complete re-evaluation of all the DOMs.

It might be simple from a developer experience, but I’m curious what the user experience would be. What happens when an β€œinclude” element is added to the page dynamically?

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@khalidabuhakmeh Mmmm. I guess there had to be a reason why it was complicated and therefore not already a thing πŸ€”

@SaraSoueidan

|
Embed
Progress spinner
khalidabuhakmeh@mastodon.social
khalidabuhakmeh@mastodon.social

@sarajw @SaraSoueidan Oh, another thought. What do you do when you have a circular include chain? This one would be interesting to solve. πŸ˜…

Circular includes

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@khalidabuhakmeh @SaraSoueidan lolol yes ok, so it's not a super simple thing to support. Can CSS do that with its imports?

|
Embed
Progress spinner
siblingpastry@mastodon.world
siblingpastry@mastodon.world

@khalidabuhakmeh

Simple answer would be to say that they can't contain scripting or CSS, and are not evaluated after page-load so they can't be added dynamically.

Those features wouldn't be needed anyway.

@sarajw @SaraSoueidan

|
Embed
Progress spinner
janl@narrativ.es
janl@narrativ.es

@sarajw @SaraSoueidan @ppk it’s an ancient technology built into web servers that we used run ourselves. It was a simpler time.

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@janl @SaraSoueidan @ppk yes! But if it's still there and working then it looks worth exploring for simple people like me :)

Do most non-static/jamstack style hosts (meaning, uh, Netlify) support it? What would I need to look for? For example, I can't see mention of it on @ubernauten documentation.

|
Embed
Progress spinner
CSSence@mas.to
CSSence@mas.to

@SaraSoueidan I can relate. Two years ago I was about to switch to 11ty, but built a zero-dependency setup instead: A nodejs script (=basic SSG) that converts HTML to enriched HTML, so it adds what you would find in partials.

cssence.com/2022/zero-vulnerab

No regrets, although sometimes I miss the simplicity of Markdown.

|
Embed
Progress spinner
janl@narrativ.es
janl@narrativ.es

@sarajw @SaraSoueidan @ppk @ubernauten yes yes, this is worth learning!

Uberspace has web hosting abstracted away a little, but you can configure a few things with a .htacces file:

manual.uberspace.de/web-docume

That points to httpd.apache.org/docs/2.4/mod/

Which we next need to see if it lets us configure SSI.

|
Embed
Progress spinner
janl@narrativ.es
janl@narrativ.es

@sarajw (dropping the CC line)

httpd.apache.org/docs/current/ tells us we need a httpd instance with mod_include enabled. If that’s a thing, we can enable things with `Options +Includes` in .htaccess.

Now to find out if Uberspace runs mod_include.

|
Embed
Progress spinner
janl@narrativ.es
janl@narrativ.es

@sarajw the usual suspects (apachectl -M or -t -D DUMP_MODULES) do not seem to work.

|
Embed
Progress spinner
janl@narrativ.es
janl@narrativ.es

@sarajw looks like it is available:

grep -r mod_include /etc/httpd/* 2>/dev/null
/etc/httpd/conf.d/00-base.conf:LoadModule include_module modules/mod_include.so

|
Embed
Progress spinner
janl@narrativ.es
janl@narrativ.es

@sarajw so yes, httpd.apache.org/docs/current/ should get you going.

LMK if I can assist.

|
Embed
Progress spinner
Dariusz_w@seocommunity.social
Dariusz_w@seocommunity.social

@SaraSoueidan I don’t mind SSG, but also want simplicity and pure approach. Hugo give this to me. As long as I am not using theme but stated from scratch, it’s like going back to 90s with a bit of modern approach. Give a try and you will find that this can be something that you looking for.

|
Embed
Progress spinner
ppk@front-end.social
ppk@front-end.social

@sarajw @janl @SaraSoueidan @ubernauten SSI is an Apache-only feature. I know that old dot.NET had something similar (though much more complex), and that exhaust my knowledge.

|
Embed
Progress spinner
ppk@front-end.social
ppk@front-end.social

@janl @sarajw @SaraSoueidan And it still runs absolutely fine today. It is still a simpler time today.

[Now ... how to order myself a stack of 'Fuck the Build Step' t-shirts?]

|
Embed
Progress spinner
mitten@social.lol
mitten@social.lol

@SaraSoueidan Way way way back in the day, we used to use PHP includes for this. I think PHP fell out of favor because it was β€œtoo easy”, weirdly - but it’s great for simple includes.

|
Embed
Progress spinner
janl@narrativ.es
janl@narrativ.es

@ppk @sarajw @SaraSoueidan

Marty, Lorraine and Doc Brown in the DeLorean Time Machine. Doc closing his metal visor, saying: wheee we’re going, be don’t need a build step.

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@janl I'm not a command line wizard so wouldn't have known to try all that, but yay! Thank you :)

|
Embed
Progress spinner
ppk@front-end.social
ppk@front-end.social

@teleclimber Why would I need a VM? Just about every normal hosting provider uses Apache.

|
Embed
Progress spinner
janl@narrativ.es
janl@narrativ.es

@sarajw there are a few more details missing for a complete picture (where to put .htaccess, what exactly goes in there), but maybe you can take it from here. If not, I can try for a sample project + readme tomorrow.

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@ppk @janl @SaraSoueidan @ubernauten thank you! Ok so first I'd be checking to see whether Apache is being run on the server.

|
Embed
Progress spinner
raganwald@social.bau-ha.us
raganwald@social.bau-ha.us

@janl @ppk @sarajw @SaraSoueidan

Back to the Future featuring a Lisp REPL? Smalltalk's editing the behaviour of classes or meta-classes in running code?

Oh yes, please.

|
Embed
Progress spinner
voxpelli@mastodon.social
voxpelli@mastodon.social

@ppk @sarajw @janl @SaraSoueidan @ubernauten There’s ESI includes as well – only difference is that they are included on the edge (CDN) rather than on the server.

There’s a standard for it: w3.org/TR/esi-lang/

And classic CDN:s like Akamai supports it

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@ppk @janl @SaraSoueidan I'd wear one hahaha

Also yessssss I've just posted asking about SSI on the Melon Land forums (by @mk) because I feel like it fits there

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@janl I kind of know about .htaccess so it's definitely a good start!

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@voxpelli @ppk @janl @SaraSoueidan @ubernauten ooo...

|
Embed
Progress spinner
ppk@front-end.social
ppk@front-end.social

@sarajw Uberspace is an Apache-using host: uberspace.de/en/product/

@janl just seemed to confirm they support SSI (a very few Apache hosting providers don't, but most do).

So ... Apache server found. If you want.

|
Embed
Progress spinner
mez@mastodon.nz
mez@mastodon.nz

@SaraSoueidan @ppk Yeah, server side includes on Apache are the only methods of doing this on the way you want that I’ve ever heard of.

We really need a native in-browser way to do it though that doesn’t rely on server config. Even if it’s not the most performant method.

|
Embed
Progress spinner
janl@narrativ.es
janl@narrativ.es

@sarajw it is, I checked. I’m on Uberspace as well.

|
Embed
Progress spinner
ppk@front-end.social
ppk@front-end.social

@mez @SaraSoueidan No, we don't need a browser method. SSI is objectively better than any client-side solution because it doesn't generate additional HTTP requests.

|
Embed
Progress spinner
voxpelli@mastodon.social
voxpelli@mastodon.social

@sarajw @ppk @janl @SaraSoueidan @ubernauten It’s quite commonly used in micro-frontend scenarios as a stack-independent way of connecting the output of various teams

Used by some very big websites, eg some big e-commerce sites I have been working on

|
Embed
Progress spinner
MerriNet@mastodon.social
MerriNet@mastodon.social

@sarajw @ppk @janl @SaraSoueidan @mk

For the possibly interested here is a post I wrote 4 years ago about SSI. Seems to have some little tips to issues that might come your way when trying out SSI that are not immediately obvious from just the syntax docs.

dev.to/merri/server-side-inclu

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@janl yes thank you! I'm just thinking if searching in general - I plucked Uberspace out first as I gather they're a good place to go :)

|
Embed
Progress spinner
janl@narrativ.es
janl@narrativ.es

@sarajw gotcha!

|
Embed
Progress spinner
mez@mastodon.nz
mez@mastodon.nz

@ppk I get that, but the alternative is Tooling of some sort. Yes Apache has been doing it for decades, but it requires that specific server software and configuration. It also means you local/dev has to match production. What if I want to whip up something for a local demo? I don’t want dockerise Apache just to have to do that :/

Extra request are not ideal (and maybe there isn’t an ideal solution to this issue), but it would be cool to have a built in system.

|
Embed
Progress spinner
ppk@front-end.social
ppk@front-end.social

@mez If you want to make everything much more complicated than necessary ... you do you, I guess.

It's true that you have to maintain a second develop/test system with the same config as the remote one, but that more or less goes for any project.

Local demo: every Mac comes with Apache pre-installed (though setting up SSI is pretty tricky here).

|
Embed
Progress spinner
philsplace@mastodon.sdf.org
philsplace@mastodon.sdf.org

@SaraSoueidan @davatron5000

As a Perl guy I work day in and day out with Template::Toolkit

But, I’ll just drop this here because nobody wants a Perl solution…

css-tricks.com/the-simplest-wa

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@MerriNet @ppk @janl @SaraSoueidan @mk that's great, thank you!

|
Embed
Progress spinner
cferdinandi@mastodon.social
cferdinandi@mastodon.social

@Dariusz_w @SaraSoueidan Sara was on Hugo before moving to 11ty. She’s the one who got me using it.

I’ve had a similarly happy experience with it to be honest.

|
Embed
Progress spinner
cferdinandi@mastodon.social
cferdinandi@mastodon.social

@mitten @SaraSoueidan hell yes!

|
Embed
Progress spinner
dannycolin@floss.social
dannycolin@floss.social

@philsplace @SaraSoueidan @davatron5000@mastodon.sociaYou made me remember about a commandline called filepp (www-users.york.ac.uk/~dm26/fil) :)

|
Embed
Progress spinner
mez@mastodon.nz
mez@mastodon.nz

@ppk Do makes still come with Apache? I thought they’d dropped that but maybe it was only php?

I fail to see how browser supported html includes would make everything much more complicated. Would I use it in a performance-important client site? Probably not, same as CSS imports. Would I use it in a local-first site, or demo, or just prototype for myself while figuring stuff out, definitely! And the extra request cost would be tiny.

|
Embed
Progress spinner
schizanon@mastodon.social
schizanon@mastodon.social

@SaraSoueidan

> Just simple HTML with partials imports, vanilla CSS, and whatever vanilla JS is necessary for enhancements.

That's @enhance_dev !

|
Embed
Progress spinner
JoshuaHamilton@mastodon.cloud
JoshuaHamilton@mastodon.cloud

@SaraSoueidan Apologies if you’re not looking for recommendations, and feel free to disregard, but if you haven’t tried CodeKit (Mac only) I heartily recommend it. I think it’ll do everything you’re looking for. I’ve loved it for years for saving me from tooling and config files.

Anyway, that’s all. Thanks for all the work you do for the communityπŸ™‚

codekitapp.com/

|
Embed
Progress spinner
anniegreens@social.lol
anniegreens@social.lol

@SaraSoueidan it me

|
Embed
Progress spinner
ben@fedi.yaf.ai
ben@fedi.yaf.ai

@sarajw @ppk @janl @SaraSoueidan @ubernauten y’all want some PHP in your lives ;)

phpc.social/@Crell/11271279298

|
Embed
Progress spinner
flamed@social.lol
flamed@social.lol

@sarajw pretty much any shared hosting plan runs Apache 😊

Flamed Fury is running on Apache atm.

I still have early versions of the website (1999) that have SSI in there 😊

|
Embed
Progress spinner
andy_griffin_design@mastodon.social
andy_griffin_design@mastodon.social

@SaraSoueidan part of why I left professional front end dev for UX Design several years ago. Have gone back to vanilla everything for my own indie projects. Pretty much the only reason I use PHP on my sites is for includes.

|
Embed
Progress spinner
Marco@tech.lgbt
Marco@tech.lgbt

@SaraSoueidan Just a question out of curiosity, since I noticed the same when I migrated my blogs to eleventy, effectively archiving them: You ran your site on Hugo before. Was that any better in terms of user or developer experience? I remember you wrote a fantastic article about Hugo a few years ago. In fact it inspired me to play with Hugo back then.

|
Embed
Progress spinner
SaraSoueidan@front-end.social
SaraSoueidan@front-end.social

@Marco Honestly, it's been three years so I barely remember. I do remember that 11ty had features I wanted that Hugo didn't have. But now that I crave simplicity again, I am tempted to look into migrating back to Hugo. Right now I'm waiting for a new laptop to replace my current one. Once it arrives and I record an update for a course chapter, i'll have more free time to experiment again. I'll let you know what I end up with!

|
Embed
Progress spinner
SaraSoueidan@front-end.social
SaraSoueidan@front-end.social

@JoshuaHamilton I installed Codekit months ago but totally forgot about it! I do appreciate the reminder!! πŸ˜…πŸ€

|
Embed
Progress spinner
SaraSoueidan@front-end.social
SaraSoueidan@front-end.social

@schizanon @enhance_dev I didn't know πŸ‘€

|
Embed
Progress spinner
SaraSoueidan@front-end.social
SaraSoueidan@front-end.social

@Wilto @ppk @Meyerweb hahah πŸ™ˆ

|
Embed
Progress spinner
schizanon@mastodon.social
schizanon@mastodon.social

@SaraSoueidan @enhance_dev it's technically tooling, and it comes from NPM, but `enhance-ssr` is a nice way of composing HTML on the backend.

|
Embed
Progress spinner
schrotie@fosstodon.org
schrotie@fosstodon.org

@SaraSoueidan Can be done, I did.

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@ben @ppk @janl @SaraSoueidan @ubernauten oh I know PHP exists and it's all good, I just love finding out about these new old things!

|
Embed
Progress spinner
optimiced@mastodon.social
optimiced@mastodon.social

@SaraSoueidan @ppk Server Side Includes? I have used them in the past when working on some old software (ActionApps) which used SSI and the file extensions were *.shtml. Importing a header or footer was as easy as writing something like
<!-- SSI include: "../header.shtml" -->
(or similar, I really don't remember the syntax now!)
But it was magic, in a way. :)

|
Embed
Progress spinner
robinwhittleton@front-end.social
robinwhittleton@front-end.social

@voxpelli @sarajw @ppk @janl @SaraSoueidan @ubernauten a colleague wrote up this pattern and how it unlocked us at medium.com/flat-pack-tech/hist if you’re interested. But yep, it’s nice simple tech.

|
Embed
Progress spinner
svenja@fedisabled.social
svenja@fedisabled.social

@SaraSoueidan same here.

|
Embed
Progress spinner
cvennevik@hachyderm.io
cvennevik@hachyderm.io

@SaraSoueidan @Marco This really makes me 🀯 because I migrated from Hugo to Eleventy and was delighted by the simplicity and direct control, not having to figure out Hugo's systems, and for now getting to mostly write plain HTML and CSS.

I believe your experience - I'm super curious what makes our experiences so different.

|
Embed
Progress spinner
SaraSoueidan@front-end.social
SaraSoueidan@front-end.social

@cvennevik @Marco But I didn't say 11ty is complex. I'm just yearning for even more simplicity. For just the absolute basics. For something that's easily portable and doesn't require any build steps.

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@SaraSoueidan @cvennevik @Marco I feel that too.

I only reach for some kind of framework when a project gets bigger than one page, because copying and pasting headers and footers etc is no good.

But oh how I wish it didn't need to be so complicated, and that getting over this one hurdle could be achieved while remaining much closer to the web platform.

|
Embed
Progress spinner
SaraSoueidan@front-end.social
SaraSoueidan@front-end.social

@sarajw @cvennevik @Marco YES! Exactly this πŸ₯Ή

|
Embed
Progress spinner
cvennevik@hachyderm.io
cvennevik@hachyderm.io

@SaraSoueidan @Marco Oh, that makes sense to me. I want that too. If I could replace Eleventy with an even simpler and more stable setup, I would.

I think it was the comparison to Hugo that threw me off - my experience was that Hugo was even worse for me in this regard.

|
Embed
Progress spinner
matthiasott@mastodon.social
matthiasott@mastodon.social

@SaraSoueidan Maybe the closest to that could be a @getkirby site. πŸ€” @bastianallgeier and team built the site for Kirby itself with basically zero dependencies, for example. The only thing that happens is a little bundling with esbuild when the site gets deployed.

|
Embed
Progress spinner
netzintelligenz@mastodon.social
netzintelligenz@mastodon.social

@matthiasott is right! Kirby + Staticache Plugin might be everything you need and want, @SaraSoueidan ☺️

@getkirby @bastianallgeier

|
Embed
Progress spinner
bastianallgeier@mastodon.social
bastianallgeier@mastodon.social

@matthiasott @SaraSoueidan @getkirby Still one of the best decisions we made. The entire project feels a lot more enjoyable to work with over a long time. I always hated that feeling of an invisible wall that I need to overcome when we want to change something. That feeling is totally gone.

The build step on deployment is completely optional. I don't think most personal projects need to think about it at all if you are not going too crazy with JS and CSS gimmicks.

|
Embed
Progress spinner
mxbck@front-end.social
mxbck@front-end.social

@SaraSoueidan I love working with 11ty but definitely feel the tooling. A barebones setup with zero build steps would be the dream.

I think with all the progress in CSS and JS, all we really need is HTML partials. The closest I know is Edge Side Includes (ESI), supported by some CDNs out there. en.wikipedia.org/wiki/Edge_Sid

|
Embed
Progress spinner
ak@mastodon.social
ak@mastodon.social

@SaraSoueidan Apache still supports server side includes…

|
Embed
Progress spinner
ysbreker@idlethumbs.social
ysbreker@idlethumbs.social

@ppk @teleclimber Nginx also supports SSI btw

|
Embed
Progress spinner
kev@fosstodon.org
kev@fosstodon.org

@bastianallgeier @matthiasott @SaraSoueidan @getkirby Working on my #Kirby site vs working my #Jekyll sites is like night and day.

I often have to mess around with bundler to get the site to serve/build in Jekyll (and we all know now fun Ruby can be).

With Kirby, I have Laravel Herd chugging away in the background and I have to do absolutely nothing. It’s a joy to use. Even without Herd, it’s a lil php dev server to test stuff.

|
Embed
Progress spinner
stefanfrede@mastodon.social
stefanfrede@mastodon.social

@mxbck @SaraSoueidan Have you come across lume (lume.land)? It is not a zero build step setup, but very fast with a lot less overhead. And Deno is fun.

|
Embed
Progress spinner
SaraSoueidan@front-end.social
SaraSoueidan@front-end.social

@mxbck Exactly my thoughts. Honestly everything server-side feels intimidating sometimes as I've never done any work on that side and feel like there's gonna be a learning curve, which sounds just as exhausting as front-end tooling is now.

|
Embed
Progress spinner
mxbck@front-end.social
mxbck@front-end.social

@SaraSoueidan yeah true - it's just switching node complexity for whatever server-side technology is used 🫠 standard html imports would be so much easier.

for what it's worth, @scottjehl had a pretty clever workaround for them 5 years ago:

filamentgroup.com/lab/html-inc

|
Embed
Progress spinner
In reply to
heyloura
heyloura

@mxbck @SaraSoueidan I've used the disappearing iframe trick a few times. Even built out a little hobby project (calendar + to-do list) as a proof of concept with it.

|
Embed
Progress spinner
dpom@fosstodon.org
dpom@fosstodon.org

@mxbck @SaraSoueidan I don't really understand the blockers to basic HTML imports/includes. It doesn't seem like the sort of addition that would break existing sites, and everyone wants them. What am I missing?

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@SaraSoueidan @cvennevik @Marco in this sense, SSI feels good, but it's still just on Apache servers. PHP also good.

But it does still feel like it should be available in HTML itself somehow!

I remember 'solving' it with a frameset or iframes in 1999+ for my teenaged creations - but that's really not ideal either.

|
Embed
Progress spinner
mattwilcox@mstdn.social
mattwilcox@mstdn.social

@sarajw @SaraSoueidan @cvennevik @Marco FWIW, SSI works on nGinx and Caddy too.

|
Embed
Progress spinner
duncanlock@cosocial.ca
duncanlock@cosocial.ca

@sarajw
I've sometimes wished that you could do "union files" at the filesystem level. Same class of filesystem tricks like symlinks and union mounts - but you'd say "my-unioned-file.html" is the union of header.html, body.html and footer.html. You'd only get complete files and not nestable partials, but it would disappear completely and magically have no tooling.
@SaraSoueidan @cvennevik @Marco

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@mattwilcox @SaraSoueidan @cvennevik @Marco ah! Thank you

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@duncanlock @SaraSoueidan @cvennevik @Marco yessssss

|
Embed
Progress spinner
mattwilcox@mstdn.social
mattwilcox@mstdn.social

@sarajw (also FWIW, I sure don't like npm/node either, and would frankly rather have a single binary install file to run. I don't use node, so it's another abstraction to learn before you can use 11ty.)

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@mattwilcox yeah - I mean that's why people like Hugo :)

I'm enjoying 11ty! But I crave simplicity - like, a craftsperson thing, wanting to work "with my hands" lol

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@mattwilcox (I know that there's a certain irony being that the web platform is itself many layers of abstraction above other stuff, bits and bytes and silicone, but eh)

|
Embed
Progress spinner
tylersticka@social.lol
tylersticka@social.lol

@SaraSoueidan Right???

|
Embed
Progress spinner
mattwilcox@mstdn.social
mattwilcox@mstdn.social

@sarajw I know what you mean.

Honestly, one of the reasons I've not done anything on my own site in ... nearly a decade really... is the sheer "bleh" everytime I think about how *anything* will involve some nested levels of work I just can not be bothered with anymore.

The problem being; I also can't bring myself to put up with some off-the-shelf code / design output.

I'm aiming for super simplistic with 11ty, so I can just write markdown files.

|
Embed
Progress spinner
brianleroux@indieweb.social
brianleroux@indieweb.social

@SaraSoueidan feel like enhance.dev fits these requirements fwiw

|
Embed
Progress spinner
duncanlock@cosocial.ca
duncanlock@cosocial.ca

@sarajw
Thinking about this a bit more, you could do this as a FUSE filesystem, where you mount a folder and it just resolves all your templates so next to all the, for example, .j2 files, there are the .html versions that it's magically created. Once that's setup, there's no tooling at all from your point of view - you just edit the .j2 files and have anything serve up the static .html versions, which are just there in the filesystem.

WebDevFS!

@SaraSoueidan @cvennevik @Marco

|
Embed
Progress spinner
schizanon@mastodon.social
schizanon@mastodon.social

@brianleroux on it πŸ˜‰

mastodon.social/@schizanon/112

|
Embed
Progress spinner
schizanon@mastodon.social
schizanon@mastodon.social

@ak @SaraSoueidan have you considered returning to the forest to live as nature intended? 😜

|
Embed
Progress spinner
scottjehl@mstdn.social
scottjehl@mstdn.social

@mxbck @SaraSoueidan Fun! Here that is code-golfed down a little further using insertAdacentHTML:
```
<object data="my-include.html" onload="this.insertAdjacentHTML('beforebegin', this.contentDocument.body.innerHTML); this.remove();"></object>
```
Of course, before JS runs it'll live in an iframe, which isn't ideal and neither is the client-js dependency of relying on onload. I too wish we had built-in HTML includes.

That said, I'm a big fan of SSI or <? include(...); ?>. Quick and effective.

|
Embed
Progress spinner
kout@mastodonczech.cz
kout@mastodonczech.cz

@JoshuaHamilton @SaraSoueidan Isn't β€œMac only” kinda dependency, too?

|
Embed
Progress spinner
kingkool68@mastodon.social
kingkool68@mastodon.social

@SaraSoueidan Like server side includes?

|
Embed
Progress spinner
lbineau@mastodon.social
lbineau@mastodon.social

@sarajw @khalidabuhakmeh @SaraSoueidan w3.org/TR/html-imports/
There were a draft that was abandonned, I’m not sure why exactly.

|
Embed
Progress spinner
sarajw@front-end.social
sarajw@front-end.social

@lbineau @khalidabuhakmeh @SaraSoueidan some interesting stuff here: webmasters.stackexchange.com/q

|
Embed
Progress spinner
eddiedale@mastodon.social
eddiedale@mastodon.social

@matthiasott @SaraSoueidan @getkirby @bastianallgeier +1 to this. I have exactly the same mindset as the original post by @SaraSoueidan : the less dependencies, the better. I really feel Kirby is a great fit for that mindset. But for sure; html includes would open for even simpler solutions for things like straight up dev blogs.

|
Embed
Progress spinner
remcow@waag.social
remcow@waag.social

@SaraSoueidan My dearest site projects are not far from that, as in no tools. Just editing the PHP, JS en CSS files.
Bit of cheating with SCSS (I love the nesting) and JQuery to make my JS life a bit easier.

So: coding -> FTP -> cross my fingers

The Yeah Right! Museum is my dearest of all
museum.yeahright.org/

|
Embed
Progress spinner
SaraSoueidan@front-end.social
SaraSoueidan@front-end.social

@remcow This sounds great. I'm personally ready to ditch Sass in my projects now that we got nesting in CSS ^_^

|
Embed
Progress spinner
remcow@waag.social
remcow@waag.social

@SaraSoueidan tnx for mentioning that because old habits die hard.

So yeah, gonna work on the dumping of SCSS, starting now.

Now it's said there is no argument for procrastination anymore. πŸ‘

|
Embed
Progress spinner