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?

24 visible replies; 6 more replies hidden or not public

back to top

@bortzmeyer elegant solution...
I could also use GitNex on my android devices, it could be a good idea.
And the forge could automatically deploy markdown files to my server.
I will think about this way, thanks

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...

julientaq , @julientaq@mastodon.social
(open profile)

@adele i agree, but having a cms transforming markdown to HTML or serving the page for each visitor is not either.

One options could be a simple js that transform markdown on the fly and populate a static HTML page. You could have a simple file that would be your site map in yaml and all links would be created from that file, and the MD could be the content.

But then it's js all the way, not the perfect solution either.

HashBang (#!⌨) , @hashbang@mastodon.scop.coop
(open profile)

@ailepet @adele we have developed a tool called ColdCMS, a static website generator from a dynamic admin ui

the generated website is free of JS and everything (html, css, images) is minimized

the tool is based on wagtail, a Python/Django #CMS and we used PostgreSQL as database server. These seems to be away from your wishes...

The project has been left over for some time now...

@nick Perfect!
but it didn't meet my expectations at all. I really don't want to use all those proprietary solutions: AWS, Netlify, Github, Obsidian, CloudWatch, iCloud, iPhone, iPad...
I only use open source software and I self-host my sites and tools.