📚 node [[work in progress]]
⥅ node [[agora-plan]] pulled by user

Agora Plan


The [[Agora]] is a project with a large [[scope]], so it takes a minute to explain what it's all about, and what the vision this plan tries to advance is.

If you'd like a quick introduction to the Agora as of mid 2021, please check out [[go/agora-slides]].

You can also refer to [[go/agora]], that is the documentation in the [[root repository]] currently hosted on [[github]].

What this node is for

This node is used as a project planning page for the [[Agora]] implementation you're likely reading this in now: https://anagora.org .

As you might know by now, an Agora is a beast with multiple legs:

This node might deal with development of any and all of them. We will try to list past major developments below, but this node will try to also be [[future focused]].



  • On [[2021-11-06]]:
    • Lots have happened. I gave up trying to maintain this for a while, instead using my journals and a transitive subset of the [[Agora]] to document the development process.
    • See [[flancia collective]], [[agora discuss]], [[journals]].
  • On [[2021-01-30]]
  • On [[2020-01-02]] I implemented [[jump]]
    • I said: "I'll implement the action and a 'jump'/ dialog always available in the Agora, perhaps replacing search in the [[toolbar]]."
    • Done!
    • Q: is 'go to' better than jump? I don't think so, and it could be confusing due to go links. But unsure.
  • On [[2020-01-01]] I fixed node titles.
  • On [[2020-12-29]] I pushed a quick patch that upranks all my subnodes, as some top subnodes in relatively popular nodes had formatting issues / were distracting. I intend this to be temporary; better ranking and formatting fixes are coming.
  • On [[2020-12-27]] I released [[agora 0.5.6]] with [[pull]] support, better db code, caching... quite a bit :)
  • On [[2020-12-20]] I worked [[agora 0.5.5]], which adds simple [[hypothes.is]] integration.
    • Fixed the fact that [[back]] [[links]] didn't work in non-existent nodes (even when there are backlinks, that is).
    • Prepared CSS/html for pull, push, forward links.
  • On [[2020-12-04]] I released [[agora 0.5.4]], with some improvements:
    • New data model (digital gardens are not subtree'd in the main [[agora repository]] anymore, stay wholly independent)
    • Index page is now just another node, subnodes can be contributed by users.
  • On [[2020-11-29]] I integrated the first community contribution ever.
  • On [[2020-11-27]] I fixed some bugs, like wikilinks with periods on their names not working.
  • On [[2020-11-22]] implemented count of subnodes in user pages.
  • On [[2020-11-17]] implemented [[latest]].
  • On [[2020-11-16]] I implemented [[agora fuzzy matching]] and full text search, adopted a div based layout, improved the CSS, improved user pages.
  • On [[2020-11-15]] I implemented dark mode (press on 'theme' on the top right corner to switch dark <-> light).
  • On [[2020-11-14]] I released [[agora 0.5.1]].




  • all http mentions should be auto linked, not only some: https://twitter.com/notverapetrova/status/1346258737204400128
    • Worked around this, but I should probably send an upstream PR to [[bleach]]
  • try rendering notes with [[marko]], see if it's a bit more forgiving with list indentation and other kinks that seem common.
  • add support for org mode gardens
  • I should make node [[0.5.6]] work
  • graph the whole Agora -- sounds fun!
  • Implement pull and push.
    • Define divs for 'pulled' and 'pushed' sections
    • Write functions that return [[pull]] and [[push]] entities in each subnode
  • Make more links default to node instead of subnode.
    • For example those in latest, those in user pages.
    • Might require 'upranking'.
  • set up [[agora]] hot spare in [[dorcas]], this is an experiment but I already find it very useful so I don't want to not have it available for a while if there's a server failure
  • add monitoring -- [[munin]] or something more modern? [[prometheus]]?
  • Implement /node/foo/selector as more resilient/uniform alternative to /subnode.
  • Implement user upranking/pinning.
    • Perhaps nodes visited from a user scope uprank subnodes by that user?
  • https://twitter.com/s5bug/status/1334686375275163652 ?s=09
  • Provide a link (GET) for the search for '[ ]', useful for [[do]].
  • Add better backlinks, showing some context.
  • Make the site header be marked as an actual header (div with a class, etc.); Google seems to think it's part of the site text (it's showing up in results).
  • Fix markdown list formatting issue with different tab widths.
  • add footer.
  • Implement preview-on-hover?
  • Implement "around the Agora".
  • add /latest or some other chronological view
  • User profiles: perhaps just note [[flancian]] as written by user [[flancian]]? Unsure.
    • [[s5bug]] suggested using [[README]] in gardens for this. Makes sense.
  • Make the index be just another note [[ding-levery]].
  • Improve backlinks: show snippets as well as just the link.
  • Improve pull loop to also support arbitrary hooks, like that needed to implement [[agora go links integration]].
  • Multi user improvements:
    • Better sorting (right now all my notes show up at the top, doesn't make sense).
    • Ability to "zoom into" a user, to navigate just their garden for a while.
    • Perhaps ability to "uprank" users, pinning their notes to the top of any sorting order.
    • Perhaps sort+uprank can be integrated?
    • usernames could have a 'pin' emoji that upranks all their posts?
  • Implement search (full text).
  • Add support for media serving (useful for pictures of [[ocell]]).
    • assets/foo end up at node/assets/foo; just adding a handler for node/assets/ seems like it could be enough.
    • It would conflict with a node named 'assets' though, so perhaps it's not ideal.
    • Perhaps it'd be better to just serve images/media as subnodes?
  • Add monitoring/alerting.

Some day:

Feature requests


  • fix bug: backlinks should be shown even in yet non-existent nodes, such as [[deceased]].
  • Clean up stale journal pages which don't follow [[iso 8601]].
  • Add config.py file with things such as paths.
  • Add user handler: /u
    • /u/flancian -> all nodes by flancian
    • /node/flancia/u/flancian -> flancia by flancian
    • Also added @flancian. Shorter is better, and it's a common convention.
    • perhaps /g/ for groups later? or /s/ for stoa.
  • Add 'link to this note'.
    • Now called subnode.
    • Subnode rendering is ready, just need to add links.
    • Perhaps I need to fix subnode paths; right now they are the actual filename. It'd be better if there was at least possible to specify the filename base (no extension) and have the right file be resolve, a la nodes.
  • add some search support -- a simple textbox + GET?
  • better css
  • Improve the [[index]].
  • Implement [[agora fuzzy matching]].
    • Done
    • but backlinks don't work in some cases, like http://dev.anagora.org/node/abstract%20fairy .
    • Probably not worth fixing that right now as it only triggers for nodes that are not canonical, perhaps better to just redirect to a canonical node.
    • could help with disambiguation and acronym expansion
📖 stoas
⥱ context