💾 Archived View for drawk.cab › projects › gemini-site › index.gmi captured on 2023-06-14 at 13:57:55. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-01-29)

➡️ Next capture (2024-02-05)

-=-=-=-=-=-=-

DRAWK.​CAB, the 2023 edition

It's a tradition whenever I'm between jobs for me to rip up the software running my website and start over.

This is for two main reasons

For a long time my Web presence was at `colourcountry.net` but this time I am moving over to an exciting new domain.

So what is the wacky and experimental new direction this time?

2023's vibe is about simplifying the important things. And maybe even finishing some things. I'm not a tech startup, it's OK to say something is complete. (Some things won't get finished. 2023's sub-vibe is spotting those things sooner.)

(cough) That doesn't sound very wacky or experimental.

Well, I have also based the whole site around a Gemini "capsule".

The Gemini project

My reflections on Gemini

Why?

I found I wasn't putting projects up on the site, even when I'd finished (or shelved) them. There was an extra step of writing some content and then building the site, which often didn't get done.

The second important new feature is that if I do want to do something fancy on the Web, I still have a way to incorporate that onto the site. Previous designs wanted me to work within the framework I'd built, using templates and things for new content types. I've come to believe this is a fundamental mistake which may be the subject of a whole piece someday. I've tried it on strangers in coffeeshops, so it's probably ready for the internet?

TODO: the content is the product, a rant.

Finally, the Gemini capsule is served over its proper protocol, for those who are interested in that.

How?

This is the nerdy section.

TODO: everyone needs a block diagram

Web browsers are served by a SvelteKit app, using all the funky tech it can muster to make the browsing experience sweet. If you don't have Javascript and CSS and things, Svelte serves plain HTML pages. If you have, you get preloaded links and transitions and bookmarks and all the rest of it.

I don't run the SvelteKit app, Vercel does it for me in "serverless" fashion. The app fetches all the content from an "Apollo" server, which is just serving up static files from a folder.

Navillus' post showed me how to keep the site working nicely without js.

SvelteKit

Vercel

I have a big Git repo full of many projects that will never see the light of day. When I push to this (which I was doing anyway), a hook collects any folders called `pub` into the web server's directory. These folders contain content or artifacts that I wouldn't be embarrassed to share down the pub, hence the name. That content goes live right away.

There's no metadata about times in this setup, so I can't organise posts by date or provide an RSS feed;—I think I'm OK with this, but having a bit of YAML at the end of the page is a possibility.

why yes, that is a semi-colash

What about navigation?

I've reconciled myself to managing links manually. I've spent way too long exploring different ways of automating connections between pages, both on this site and professionally. It has been fun in its way, but at the scale I'm working at here it really doesn't save any time, and it leads to sites which feel more like a maze with very little treasure to be found. This time I'm going to aim to make every page worth the effort to get there.

You'll find the links on these pages are separated from the text, in asides or at the ends of sections. This is enforced by the Gemtext format, but I'm happy with it. I prefer reading content without being distracted by links in the middle, and I suspect this policy plays better with assistive technologies too.

Incidentally it was standard policy of BBC News Online in the 90s to separate links from articles, although probably the editorial tools at the time didn't support links, so they will have had to be added by someone else.

To-do list

TODO: 12 (3221) Images are just served straight out of the source bucket, so I have to resize them manually. I'd prefer to be able to offer responsive images.

vite-imagetools

sharp

imgproxy

TODO: 4 (2112) there's no caching anywhere. I'm relying on staying obscure for the moment.

Previous iterations

2020: doing things just SKOS

The 2020 iteration was statically generated using templates, so the site was just a bunch of files. Very easy to serve. But this meant I had to move a lot of complexity into a build step. There could be bugs in the build process or in the files I was building the site from. Basically I had to debug my own content.

The design suffered from severe framework disease. Pages had lots of stuff that the framework made easy, and not much actually interesting stuff. The CSS was a bit horrible, there was no component encapsulation, and I'm pretty sure it had some severe accessibility issues.

The framework used a triple store of linked data, with an ontology to back it up. That was cool! But completely unnecessary for a website targeted at sentient beings. It's nice to have an ontology because it helps you think through the concepts you're using and apply them consistently, but use cases for the technical part are thin on the ground.

Most importantly though, it was just too hard to update, so I didn't. In three years I didn't even transfer everything worth saving from the previous site.

2013: static generation

This iteration was also statically generated but was much simpler. It was very visual. I miss this one a bit.

Testing section

Kitchen sink page