Single post

jump to replies

I haven't found the right tool to build a smolweb site, yet

read on my blog

There are plenty of tools out there to build static websites such as Hugo, Zola, Pelican, Publii… they're powerful and well-made. But they all assume you're building your site locally. You install them on your computer, write and edit your content there, and then push the result to a server. That's fine if you always write from the same machine. But I don't. I write from different devices, depending on where I am and what I have on hand, so relying on a local setup doesn't fit my workflow.

On the other side, you have all classic CMS tools running directly on a server. But most of them are bloated, over-engineered, or just too heavy for what I consider a proper smolweb site.

I've tried to make my own workarounds. I wrote small scripts like ergol-http, which converts Gemini capsules to HTML on the fly, and smolmd (used on pages.casa), which just publishes a directory full of Markdown files. These helped me get closer to what I want, but they still rely on direct server access (FTP, SSH…), and that's not always ideal or accessible.

What I'm looking for is a lightweight tool, something minimal yet functional. A simple PHP app (because PHP is still one of the easiest languages to deploy on a shared server) that offers a Markdown editor/textarea in the browser. It should permit to upload images, store files in a structured directory tree that reflects the site's hierarchy, and take care of rendering clean, simple, and semantic HTML pages, and its rss feed. That's all. No JavaScript frameworks, no databases, no unnecessary features, just something small and sustainable that follows the smolweb.org approach: simplicity, readability, and low resource usage.

I haven't found it yet. But maybe I'll end up building it.

Have you some ideas?

4 replies

back to top
Torf und Schnee , @torf@c.im
(open profile)

@adele have been thinking for a while about a script which will process upcoming emails and parse them to pages. EML format can incapsulate everything necessary, I guess. Hierarchy may be a problem, though - despite the site may generate correct mailto links to assist editing, even statically.

@torf the more I think, the more I find that this email feeding seems to be a really good idea.

Maybe, the process the mail could be conditioned by the presence of an expect token in the mail (that would be removed before publishing).

subject may contain some instruction (folder or type of post)

mail in plain text would be considered as markdown directly, and html mail could be converted to markdown. Attached files grabbed and saved in the same folder.

Torf und Schnee , @torf@c.im
(open profile)

@adele obviously, any open port and any processing of user-provided data is a threat.

If I were implementing something like this, I would start from whitelisting the sender adresses and enforcement of GPG signatures with known fingerprints pre-shared with the server - doable upon registration. Then it will maybe need something similar to a CSRF cookie - probably a token generated by the site and inserted into the mailto link - to avoid repetition attacks. However, the latter will require a bit non-static site and is a bit paranoid (not that it were bad). Alternatively, the system may require to manually add a timestamp into the body of the message and check it against the current time and the headers, allowing for some short discrepancy. And, obviously, payload verification, sanitization etc., as usual...