@@ 3,3 3,36 @@
Written in Tcl, using Jetstream.
Deployed @ <https://bsky.app/profile/aleteoryx.me/feed/tclposting>.
+
+Makes heavy use of `tcllib` and `tcltls`, both need to be installed for it to work.
+Run `main.tcl` with a configured config as the argument.
+All paths are resolved relative to the install directory.
+
+This implementation doesn't support `did:plc:` feedGenerator IDs because im too lazy.
+
+`bin/up.tcl` is a rough carbon copy of the `scripts/publishFeedGen.ts` present in
+the official example repo.
+
+## Directory Structure
+
+- `/bin` - misc scripts
+- `/lib` - code used only by `/bin`
+- `/src` - application code
+- `/src/algos` - algorithms, `*.tcl` is autoloaded, see `src/algos.tcl` for details.
+
+## Potential Improvements
+
+- there's something up with the websocket implementation (`src/ws.tcl`)?
+ we get disconnected frequently.
+ - `src/jetstream.tcl` solves this with reconnection code, but it doesn't
+ send a cursor, so posts may get missed.
+ - said reconnection code is god-awful, and would benefit from a refactor
+- there's probably not a foolproof way to deal with the fact that TCL is
+ a brand, but it would be nice
+- `src/httpd.tcl` is just enough webserver to handle requests, and very
+ little else. it's unfit for exposure to the public internet. this is
+ low-prio cause it works fine behind mod_proxy.
+- the API for `lib/atpagent.tcl` could be nicer, but I don't feel like
+ doing codegen.
+- `src/httpd.tcl`'s API should probably be subcommand-based instead of
+ token-based, to fit `lib/atpagent.tcl`