From Woozle Writes Code
Jump to navigation Jump to search

The Need-Cases

I'd been trying to think of a minimal way to use existing tools to create a VCS-based serverless forum for structured dialogue (call it a "social network") -- most urgently for conducting discussions on complex matters with Tessa, though I'd long had other uses for something similar.

I'd also had a long-standing need for a way to write GUI applications in the scripting language in which I'm currently fluent, PHP.

More recently, I've wanted to have some way to turn folders into web-like pages where things could be organized in multiple, user-friendly ways (e.g. so Harena and I can each organize our shared photos and documents however we want without confusing the other, as well as making them more findable by support metadata entry/search).

The Idea

It starts with a web browser component, but add one thing: the ability to run scripts locally, and render the markup they emit.

Your device then becomes a serverless web site that's only accessible locally -- which means that you can allow trusted scripts full system access. (Later we'll want some trust controls.)


  • AppDesk sets up a folder for the script's shareable data, has the ability to use a VCS for packing that up and shipping it to a shared repo, and for fetching/merging the latest changes -- make that a single button each: [publish] / [retrieve], or similar.
  • Write a script which lets the enduser create or respond to a post. Each post or reply/comment is a separate data-file stored in the repo area, so merging is simple. Each file specifies author, timestamp, parent-post, and any other metadata; the script converts that into some friendly format with links and buttons, and automates the generation of the data-file for each post/reply.

So now you have a system which allows a shared conversation/stream, with VCS-mediated merging of actions and history-management.


The trick now is finding a good embeddable component for rendering HTML and/or Markdown. I remember Visual Basic had one, and that was 1999? maybe Gambas or Lazarus has one. I'll see what I can find,. but let me know if you're aware of anything. (The obvious answer is "just use a regular web browser", but I'm not sure that's workable; I can't quickly think of a way to get a browser to execute a local script from a URL... but maybe there's a way.)

Further discussion with Tessa suggests that Godot might be suitable, but it's not clear whether it can render HTML (or any other markup) out of the box.


  • 2022-10-11 Arrived at the basic concept last night; typed it up this afternoon.