FlingWords Trebuchet

About FlingWords


Why?

FlingWords came about because I thought it would be interesting to make a microblogging site for use from the EMFCamp 2022 dial-up ISP, CuTEL. Then much scope-creep happened, and this is (some of) the result.


What?

FlingWords is a (very) simple microblogging site, inspired heavily by a popular bird-based site as it was around about 2008/2009. It currently has far fewer features, but it does also probably work on more devices!

It has been tested, and seems to work reasonably well on:

  • Internet Explorer 5.0 on Windows 2000
  • Internet Explorer 6 on Windows XP
  • Firefox 95 on Fedora 35

A key goal of FlingWords was to support old browsers, so it is possible to use it without TLS (sometimes called SSL or HTTPS) however this is not recommended unless you have no other choice, hence the red warning banner!


Is There A Desktop Client?

Not yet, but I did spent a lot of time working on one. The goal was to support Windows 98 upwards, and the scope creep made it even more complicated than it needed to be, so it isn't yet finished. In case you're wondering what it looks like though, here's a preview:
Partial FlingWords Client Running on Windows 2000


How Is It Hosted?

The hosting is just as over-complicated as every other part of this idea. There is more than one host, with DNS round-robin records sending traffic to them, where haproxy sends the traffic to the webserver process itself. If the webserver process is down, it is configured to forward traffic to another host. This can result in quite some scenic routing of requests!

There is also a cluster of RabbitMQ instances running between the instances, this isn't used much right now, but the intention at least is to use it for any cache-invalidation or maybe to provide a firehose API to get a feed of incoming word flingings.

To top off all of this insanity, database and MQ traffic between the nodes is protected with mutual TLS, and there is a half-finished deployment tool written to set up all of this on a node. Right now it's a little manual in parts though!


Is It Really Written In PHP4?

Maybe, maybe not! :-)

Once it has been running for a while, I do plan to open-source the whole code base, then you will be able to see for yourself!


Is There An API?

Not yet. It's actually something I need to finish the desktop client though, so I hope to get one sorted in time.