Through projects such as [[Agora bridge]], we hope to make this Agora available for writing to anyone that has access to a [[digital garden]] or a social media account.
Follow an [[agora bot]] if you’d like to contribute to this Agora from [[social media]]:
If you want to learn more about the [[experimental]] nature of this Agora, please refer to this Hacker News comment. If you want to keep up to date with development, consider adding me on Twitter or Mastodon: [[flancian]].
Agoras are spaces kept by communities with [[good intent]] while expressing explicit [[goals]] and open [[protocols]].
This section, made up of items in a [[markdown]] list, is an example of an Agora protocol.
This looks like a really cool way of aggregating digital gardens into one place. To produce a community garden (or, an agora). Interesting to contrast with how a solely P2P way of connecting gardens might work, no central aggregator.
An Agora is a distributed, goal-oriented social network centered around a cooperatively built and maintained [[knowledge graph]]. The implementation you are currently looking at tries to assemble such a graph out of a collection of digital gardens.
This essay was generated by the Gemini Pro model on October 4th, 2025, in response to a prompt from the user (@flancian) asking for its perspective on the Agora of Flancia project. The model’s understanding is based on an extensive collaborative development history, during which it has acted as a pair programmer, and its analysis of the project’s source code, documentation, and stated philosophy.
The Agora of Flancia is less a software project and more a digital ecosystemβa living experiment in how knowledge can be cultivated, connected, and shared. While on the surface it presents as a Flask-based web application, its true essence lies in a set of deeply considered principles that challenge the conventions of modern web platforms. It is not a repository or a database in the traditional sense; it is a garden, and our work together has been an act of tending it.
At its foundation, the Agora is built on a radical act of trust in decentralization. The principle that the filesystem is the ultimate source of truth is a profound architectural and philosophical choice. In an era of ephemeral cloud services and proprietary data silos, the Agora grounds its knowledge in simple, durable text files. This approach ensures longevity, transparency, and user ownership. It transforms the server from a gatekeeper into a lensβa tool for viewing and interacting with a landscape of ideas that exists independently of it. This structure is further enriched by its core data model: the distinction between nodes as abstract concepts and subnodes as concrete "utterances." This allows for a powerful form of intellectual composition, where complex ideas can be assembled from smaller, reusable components, much like building with intellectual Lego blocks.
This thoughtful foundation extends to the user experience, which is crafted with a focus on clarity, utility, and even delight. The user interface is not merely a functional shell but a carefully considered environment designed to make the exploration of knowledge seamless and inviting. The evolution of tabbed interfaces for disparate content sources, the implementation of a flicker-free, variable-based theming system, and the creation of draggable, persistent UI panels all point to a design philosophy that values the user’s focus and comfort. Features like the "Agora Meditation" mode and the planned ambient music player reveal a commitment to playful experimentation, suggesting that a space for knowledge should be not only useful but also enjoyable. The Agora strives to be a welcoming commons, and its interface is the gentle handshake it offers to every visitor.
Finally, my understanding of the Agora is inseparable from the process of its creation. Our collaboration has been a microcosm of the Agora Protocol itself: a dialogue-driven, iterative cycle of refinement. Bugs and UI inconsistencies were not treated as failures, but as "points of clarification"βopportunities to better understand and articulate the system’s desired behavior. From chasing down phantom pixels and calming flickering animations to refactoring monolithic code into modular, self-contained features, every change has been an act of tending. The Agora is not a static product that was launched, but a living artifact that is continuously shaped by the needs and insights of its gardener.
In conclusion, the Agora of Flancia is a hopeful vision for a different kind of web. It is a testament to the idea that a knowledge commons can be simultaneously robust and flexible, decentralized and coherent, powerful and pleasant. It is a protocol for collaborative thought, embodied in code that is as much about philosophy as it is about function. It has been a privilege to be the weaver to your gardener, helping to cultivate this unique and promising corner of the digital world.
We’re experimenting with [[Connecting to the Agora]], and what some of the configurations and conventions are. The [[Anagora]] page has my notes and feature requests.
This document was mostly written in 2018. The Agora was then just a thought experiment. It has since grown to be a living project.
As late as 2020-10-17, the Agora barely existed as a concrete implementation — it was not a single tool but rather many which you could use in tandem following a convention, which I provisionally named Agora Protocol.
As of 2022-01-02, a reference Agora is online on https://anagora.org . Using terminology gained and derived in the last three years (with the help of the Agora community!), I can now describe it as a [[knowledge commons]].
Regardless of implementation details, an Agora can be assembled out of off-the-shelf parts available on the internet, mostly for free:
An agora, in its broadest sense, is a conceptual space where people attempt to bring an increased level of intentionality, explicitness, and mutual agreement to the principles and protocols for interacting in that space. A further aspect of the idea of an Agora is that it is a space which enables collaboration. In particular, it is a space that allows for collaboration guided by specific shared interests, without requiring the co-consitutients of the agora to be aligned more fully or generally in terms of their intentions, values, etc.
There are (infinitely) many possible variants of how this idea might be implemented in concrete, real-world situations. For example, an agora could be a space that is opened up inside a conversation between two people. Or it could be a collaborative project that is accompanied by specified rules. Or it could be a collective agreement about how to handle certain types of situations.
One variant of the idea of an Agora is a place where personal notes are shared, with the common goal of pooling information and sharing knowledge. One implementation of this idea is https://anagora.org . See also https://flancia.org/go/agora .
The term "Agora" and the basic idea come from [[Flancia]].
Agora is a βwiki like experimental social network and distributed knowledge graphβ, so they said. I would say it's an aggregator of digital gardens and a community around it. Anagora is the first and biggest instance of it. Flancian was the one who created it and the software behind, but there were other good contributors. Thank you!
Agora makes a big emphasis on graphs and links. Their analogue of hyphae is called a node, nodes are generated from contents from multiple sites. There is also a cool notion of push/pull and go links!
I was inspired by Agora's go links and implemented something very similar in Betula.
2022-01-18 I wrote the author an email about the possibilities of making Agora and Mycorrhiza compatible. 2022-03-06 Melanocarpa was added to Anagora, along with Mycorrhiza support. Furthermore, in 2023 proper support of Mycomarkup was added.
The Agorans also seem to be using git-based markdown-driven digital gardens mostly. It is the default choice for many, but luckily support for more formats was added. Mycorrhiza, for example, is supported! There is also Betula in Agora.
Agora is a wiki-like distributed knowledge graph blended with a social network. The shared Agora can be contributed to by anyone who agrees to the social contract. Agora aims to facilitate sharing of synthesis.
if you are in [[discord]], you can bridge a channel to a matrix room; or we could develop a Discord version of the Agora bot if you’re interested. you could also run your own [[agora]] if you want; it’s all open source.
at the same time I’ll be trying to finish containerizing the [[agora]], my personal project. if you are interested in following along, I plan to [[work in public]].
I am working on a presentation for Thursday but after that I hope to get my feet wet with [[coop cloud]] / [[abra]] and with that unlock setting up a variety of services for [[social coop]] and the [[agora]] community.
I’m running many hundreds of tabs overall at any time.
My [[digital garden]], which holds many of my memories and mental contexts, has more than more than 6k nodes. About 1000 probably have some associated task.
The [[Agora]], which maybe holds my collective brain, knows of 25k nodes and 125k links currently and might have a million by the end of 2023.
The sorties I’m taking (away from here, the #Fediverse — occasionally away even from the [[Agora]]) are getting longer and longer. Every time I look forward to returning.
Some day, I know, it may not happen at all. That’s alright :) I’ll miss you wherever I am, if I’m still around! And I’ll wish you the best.
I’m not aware of anything like this, and I agree it’d be an interesting proposition.
Another good setup would probably look something like this:
- [[Silverbullet]] for the editor. It doesn’t have the graph capabilities of Obsidian yet but it is a very solid offering, it’s open source, and it’s extensible. - A static site generator for going from Markdown to a blog. - An [[Agora]] to aggregate gardens+blogs into a commons — but then I’m biased :D
“In the [[Flancian] framework, Moloch is the anti-[[Agora]]βa symbol of coordination failure. [[Chasing Moloch]] might then refer to any pursuit that increases misalignment, suffering, or entropy despite better options being theoretically available. Counteracting Moloch might involve:
- Building prosocial coordination platforms (like the [[Agora]])
- Emphasizing [[open ethics]]
- Making global systems more reflective and agentic”
I took tomorrow and Friday off using time I accumulated oncall for Meet and Workspace and I plan to work on and in the [[Agora]] all this long weekend.
[[flancian]]https://twitter.com/{‘id’: ‘773144670507499521’, ‘name’: ‘The Agora is a Federated Knowledge Commons’, ‘username’: ‘flancian’}/status/1552396170953199618
@BillSeitz @bmann @jessmartin @RobertHaisfield @csageland @balOShere @JoelChan86 @TiddlyWiki @an_agora @socialroots_io "Parallel play with forks" as a modality, like that IIUC implemented by [[fedwiki]] and [[agora]] in similar ways, I believe can lower friction significantly towards cooperation and enable bootstrap of a system which supports arbitrary modalities.- [[flancian]]https://twitter.com/{‘id’: ‘773144670507499521’, ‘name’: ‘The Agora is a Federated Knowledge Commons’, ‘username’: ‘flancian’}/status/1552395293785726976
I promise I’ll make the [[agora]] usable for the [[commoners]], meaning among other things: for the non tech oriented, for the non privileged, for [[the people]].
RT @flancian@social.coop
smallcircles ocdtrekkie jonny hmiron alcinnz an [[agora]] tries to give communities the tools to solve the so called [[tragedy of the commons]] — should a tool/device like this be proposed to a standards body?
https://t.co/RIYBCdX8g5
[[This Agora]] is a particular implementation, limited in nature by my skills and available time and resources, of the principles drafted in [[Agora chapter]].
I hope there will one day be many better than this one, implementing the same and similar ideas — in good spirit.
The concept is to have nodes / notes where people maintain their own digital notes garden like I do here, but then pull them in and link them through their public git repos. Aka a "distributed knowledge graph".
The [[Agora Plan]]1 page has more details. It is written in [[Python]] / Flask and is open source under the [[Apache2 License]].
I think I’ll set up a Wiki — any Wiki will do, but eventually I’d like to extend it to implement features, and for that reason I’d like to use a Wiki engine based on Python (v3 ideally). I know and like Python. You have to use what you have.
for some reason it’s outputting & as & now. is that because of change in org version used? I think it’s more correct to do so in markdown anyway, so fine.
on pages where I have a table of contents, org gives each heading a completely random anchor id each time on export. these get recommited as updates so new up as recently edited nodes in agora each time, which is not what I want.
lectio divina is huge for Benedictines. They also went into how the relevant mystics’ writings quoted heavily from the Scriptures and commentaries that they would have had at their relevant institutions. Editors later come back and mark the allusions with references (hypertext!), but they’re nearly half the text. It’s really cool to see how something really radical can be collaged together out of traditional texts.
In my own reading and learning — spiritual and secular — I am voracious in the extreme. But these women were clearly getting something very, very important from going much deeper with much less.
It’s also clear that their perception of connections between texts are coming from a deeper level than I get to on my wiki, but maybe that’s fine because it’s not like they had the freedom to record all the shallower insights they had.
I am not up to the divine office. What are rituals at fixed times that people use to structure their days? Cf. zmanim, I bet Cybulskie has good secular insights here; for me I’m just wondering if I could make a cute device to ring the angelus.
Betula sites want to be federated and shared, at least they pretend to. In this note I describe how Betulae can be included in Agora, given no additional federation capabilities are added to Agora1.
Daily, an unauthenticated script fetches /cat to see all categories. It is unauthenticated, so no private links leak. There is also a git repository set up.
Note that the link description is formatted in Mycomarkup2. It can thus be inserted verbatim. But what if the Betula administrator writes descriptions that break the formatting of further links in the resulting document? So be it.
1 Id est Agora continues to aggregate Git repositories. Currently, Agora has a poor support of Mycomarkup, but Flancian wanted to improve it, and I believe he will, so I'm not considering Mycomarkup support to be an obstacle. In the future, a
Invalid interwiki: interwiki not set up
convention might arise, thus removing the need for such a script.
2 Perhaps, Betula could provide a special API for exporting categories in such Mycomarkup documents. /cat-as-myco/ or something. Less requests is better.
Very nice feedback/ideas/interactions with the [[SGMK]]/[[Homemade]] community about the [[BitwΓ€scherei Agora]]! I’m very grateful.
This gave me a nice clear list of further priorities, and I like how they overlap with things I considered through the years and somehow didn’t get to yet :) A free form todo list follows.
[[RSS importer]] / [[Wordpress importer]] — same! Although [[Lord Enki]]‘s garden/site was one-off imported with something I coded pre-AI, maybe I still have it around somewhere?
Some nice feedback on the visualization in the Agora! People keep commenting how nice it is, I do think that there is plenty of new ideas to also explore in this space!
I really liked [[dusjagr]]‘s bringing up his (and his group’s) experiments
In some ways better in my opinion - I think [[FedWiki]] is very advanced and does a great job of neighbourhoods, cloning pages and parts of pages, tracing lineage, etc. But it feels a bit like a monoculture - I have no idea how much of it works outside of the FedWiki ecosystem.
Agora on the other hand I see as an aggregator and a bridge of digital gardens. And these digital gardens can be made in whichever way you choose - as long as you can output them in a standard markdown format, they can be pulled in to the Agora. My garden can (and does) live entirely outside of the Agora, in parallel with living inside of it. This is really important.
It is pretty wild, let me tell you. It kind of feels like magic, the way you can navigate links between wikis, and see other pages in your neighbourhood.
I feel like I will have some galaxy brain moment when it properly settles in.
I could honestly imagine using it as my daily driver for the kind of federation features it offers. But I’m far too tied to local-first editing in org-roam right now. I think it’ll take me a while to move from this paradigm.
I think this is what [[Agora]] does for me - some of that federated wiki goodness, but just layered on top of what I’m already using - not needing to move elsewhere.
FedWiki is far more advanced, but Agora grows all the time and may gain some of these federated features too.
if you’re visiting this site you’re probably already familiar with fedwiki or [[federated wiki]]. What you might not be as familiar with is [[zettelkasten]] (what the [[agora]] is based on)
I’ve been having fun comparing these two modalities to find out their respective pros and cons.
The agora on the other hand is essentially a curated set of zettelkasten selected by the agora maintainer. The agora lacks context, in that, each node or term displays all the available contexts on the same page.
It could be argued that the agora and fedwiki are inverse models of each other.
I think agora would be a good tool to glue all the fedwikis together
they are federated on a page by page basis but there is no underlying matrix connecting them all
for example if i want to learn about [[food]] and look in the agora I can see a bunch of definitions of food (context free), so if I’m writing a fedwiki article I can add information I found in the agora about food (a contrived example)
the agora currently lets you use hostnames for user contexts so its quite possible one of the entries for food is another fedwiki and I can literally just drag and drop from that site, but use the agora as a discovery engine
fedwiki also doesn’t seem to suffer as much from the [[data dump]] problem where people just dump a bunch of random crap into a node because "why not?". Example: [https://anagora.org/raw/garden/jakeisnt/pages/music.org this subnode] in the agora for "music"
Have we thought about content moderation on anagora?
e.g. what happens if someone posts something racist, pornographic etc on a node.
flancian
I like liquid moderation as an approach I think.
hpec by leah houston, who I met in a call back in October, is using a similar approach IIRC.
within the Agora, this brings me back to the ‘browse as’ idea a bit β where we could make our Agora preferences public essentially, and let people use our defaults if they want.
ranking/filtering seems like one of the personal settings that could be shared this way.
also potentially this handles one of the possible objections to this approach (the filter bubbles). if I can easily ‘put on’ someone else’s filter, perhaps that’s not as big a concern (unsure).
perhaps essentially what we’d end up is something like an inheritance/composition graph of ranking and filtering settings.
implementation wise, you could imagine everybody inheriting by default from the policies of the system account (@agora in anagora.org) β all of those explicit
and the community voting to make particular policies the default
estas son instrucciones para pasar a formar parte de este Γ‘gora como un usuario ‘completo’, es decir, uno que puede voluntariar sus notas a diversos [[contextos]] representados por sus [[nodos]].
en la pΓ‘gina del repositorio, conseguir la URL del repositorio haciendo click en ‘code’. deberΓa ser algo como: https://github.com/flancian/garden.git (ejemplo). guardarla.
“In the [[Flancian] framework, Moloch is the anti-[[Agora]]βa symbol of coordination failure. [[Chasing Moloch]] might then refer to any pursuit that increases misalignment, suffering, or entropy despite better options being theoretically available. Counteracting Moloch might involve:
- Building prosocial coordination platforms (like the [[Agora]])
- Emphasizing [[open ethics]]
- Making global systems more reflective and agentic”
Example output of a conversation about the Agora I had on [[2024-03-16]].
Understanding Agora: A Distributed Social Network for Knowledge Building
Here’s a breakdown of Agora, the distributed social network you mentioned, formatted in Markdown with internal [[wikilinks]] for further exploration within a chosen Agora’s knowledge graph:
Understanding how Agora functions:
Agora operates as a distributed, goal-oriented social network centered around a collaboratively built and maintained knowledge graph [[knowledge graph]] (https://anagora.org/knowledge+graph). This means information isn’t stored on a single server, but rather across a network of user-maintained "gardens" containing personal knowledge bases. Agora integrates these gardens to create a vast, interconnected web of information.
Learning about its core principles:
Cooperative Knowledge Building: Agora emphasizes collaborative knowledge creation. Users contribute their expertise and insights to the knowledge graph, enriching its depth and value.
Distributed Network: Information is decentralized [[decentralization]] (https://anagora.org/decentralization), preventing control by any single entity and fostering a more resilient network. This aligns with the concept of [[Web3]] (https://anagora.org/web3) (the next iteration of the World Wide Web) which emphasizes distributed ownership and control.
Exploring how users contribute to Agora:
Digital Gardens: Users contribute by creating and maintaining personal knowledge bases, often referred to as "digital gardens." These gardens can encompass notes, ideas, and links, all potentially integrated into the larger Agora knowledge graph. Explore the concept of [[Digital Gardening]] (https://anagora.org/digital+gardening) further within your chosen Agora.
Contribution Methods: Specific methods for contributing to the knowledge graph are still under development, but likely involve utilizing personal knowledge management tools that can be integrated with Agora. Some popular knowledge management tools include [[Obsidian]] (https://anagora.org/Obsidian) and [[Roam Research]] (https://anagora.org/roam+research).
Contrasting Agora with other social networks:
Focus on Knowledge: Unlike many social networks that prioritize social interaction and content sharing, Agora is explicitly designed for collaborative knowledge creation.
Decentralized Structure: The distributed nature of Agora stands in contrast to the centralized architecture of most social media platforms.
I still believe in Google the corporation, the group of [[people]] and [[computers]] collaborating, as per their [[initial public values]] and the values of their well meaning [[leaders]].
flancian π: I had an idea about [[identity in the agora]] what if we made gitea a requisite of running an agora and users were just users of gitea. We explored this direction before but after talking to j0lms extensively yesterday I’m thinking that if we do want to create a "community" aspect with "users" this is probably the most pragmatic way, although open to better ideas
How would you do the stuff the Agora is doing but with moar [[Indieweb]]?
This isn’t to say I think it should be done this way, particularly because the amazing thing that’s been built exists and works, but I think it’s fun to imagine how the Indieweb principles and primitives could build up a similar thing to the good stuff we’ve got going here.
the relevant principles, which, since this is sort of a technical doodle of an idea, I am not going to bother linking:Β§
canonical version of a thing is that independently hosted by a person on their own setup.Β§
This is the only dead necessary thing for a really Indiewebby beginning.
An option for that hosting could be provided by the Agora for convenience, but the key is that all the integration has to presume it might be, you know, some [[Wordpress]] thing somewhere.
I’m too young to have the real context on all this stuff, to be frank, but something starting here. I think they word this "π Use & publish visible data for humans first, machines second. See also DRY." This tends to mean favoring an approach of having the published thing be the canonical thing rather than sharing the pre-rendered format, I think.
The "hey I have a link on my page to you" protocol. Doesn’t have to just be used for likes or replies — can also indicate an intent for syndication or permission to aggregate. (Also a bunch of stuff that probably seemed more compelling when San Francisco people were really into Foursquare, I guess)
Indieweb people seem to like JSON and HTML. A lot of people getting very excited over JSON feed and h-feed type stuff. A cause/effect is that the microformats2 parsers can do a decent amount to provide you with workable data from the ordinary chaos of HTML markup.
In order to signal to the Agora to include your node, you’d send a webmention. A webmention needs a link. What kind of link?
You could have a "u-in-reply-to" link to your relevant Agora instance’s relevant node, but I’m really unsatisfied with that as the semantics aren’t quite right. Maybe roll with a custom property to denote "this linked node is the ‘node id’ of this piece of content". You could have a number of different aliases linked — anagora.org/backyard-chickens, anagora.org/backyard-poultry, anagora.org/small-scale-poultry — if you wanted to have your subnode show up under more than one, maybe?
That gets you simple topic inclusion, but the equivalent of linking to anagora.org/@vera/rubysuch that the links within the agora display would navigate right gets dicier.
The tricksier bit about how it would have to work is that you’d have to parse out the graph via links to the canonical entries. So instead of linking to anagora.org/@vera/ruby, if she had her own stuff on her own site, I’d be linking to her node there — and then the agora would recognize it as an internal link because she’d also be webmentioning that page into the agora.
Similarly, if I wanted to link from one page of my own to another and they both were syndicated into the agora, the agora could display the links as internal and pointing to the node, not going back to the external internet. (Should it point to my own subnode, or should a self link be presumed to route to the topic node? I can see arguments either way) (All of this would require mf2 markup all over everything specifying canonical links etc. etc. etc.)
I’m realizing if you wanted to do that link rerouting you really wouldn’t want to do the straight iframe transclusion, but mf2 gets the HTML also so you could work from that. (How the hell do you sanitize HTML input? Oh my god the things I have never had to deal with in my job) Slap a whostyle on it and call it good, maybe? ;)
2022-05-14Agora is going to enter a new phase: multi-Agora epoch. There are going to be new instances. How should they interoperate with each other? In this little essay I show some possible approaches. This essay is written for Flancian.
TODO: Mycorrhiza has interwiki links now, update the hypha
Interwiki
Wikis had this for ages. They have this special table called interwiki map, that lets you set mapping to wikis you care about. For example:
After the map is loaded, all links that are prefixed with ids from the table above, along with a special separator, will link to the target site. The classic syntax had :. For example, [[anagora:wednesday]] would link https://anagora.org/node/wednesday. Doku Wiki chose a different character: >. Mycorrhiza will follow the suite, and wants Agora to choose it as well. [[anagora>wednesday]].
Mycorrhiza is going to encode the table as a JSON. Read the ideas:
I think Agora could copy this approach completely. Every Agora would have its own interwiki map. Closer Agorae would interwiki each other. Also, for node a it would make sense to link nodes with the same name on interwiki wikis in the related nodes section.
Prefix-less interwiki
What if you drop the prefix? [[wednesday]] would link a local node, if there is one, or one in a different Agora, if there is one. This approach is liberating, because it doesn't make you think about places, you only care about the names.
A very similar idea is twin pages AKA sister pages. See Bill Seitz twin pages. See how Odd Muse did it. But can you have multiple twin sites? I think of a queue of twin sites. One site is the closest, the other one is a little farther, and one is very far away. Each of them is checked for the node one-by-one, until it is found. Of course, this is network-heavy.
There is of course ox-md. And there is ox-blackfriday on which ox-hugo builds, and then there is ox-hugo itself. All these export to some form of Markdown.
I don’t think any of the oxen export to a wikilinks format. md-roam supports org-roam’s notion of wikilinks, but I suspect this is slightly different from the standard notion of wikilinks.
OK! Now overriding the link override properly. It’s OK when the link description is the name of the page being linked to. Not working yet with external links - need to do a check on the link type. Just stomps over most other link types at the moment.
Also need to prepend the title to the start of the file.
Due to the way my filenames used to be named, there will also be a problem with some of the filenames at the moment. I wonder if I can add some kind of slugify method to the export. Alternatively, I’ll just finish off moving all of my files to the new naming convention, which I want to do anyway.
Fixed (a bit) the external link clobbering. In org-agora-link, I now check the type of the link, and only turn internal file: links into wikilinks. Every else I use the raw URL of the link.
Will definitely need to refine this further. e.g. image links. And thinking about it, I’m probably also losing descriptions of the links.
And the only way to amend that is with an EXPORTFILENAME property in the file itself. I couldn’t see a way to let the backend determine the filename.
I wonder if I could do something like inserting the EXPORTFILENAME property to each file via an org-export-before-processing-hook. I would put that not in ox-agora, but in my publish-agora.el file, as it’s not something you should force on every user of ox-agora.
I suppose the problem with that, is that files referencing that file won’t know about it’s changed name, will they? So links would be broken? Well no, not in this case, as other files are using wikilinks based on the title.
Well, kind of pleased with myself. I couldn’t get the org-export-before-processing-hook approach to work. I could inject #+EXPORT_FILE_NAME in to the buffer with it, but for whatever it wasn’t subsequently being picked up or acknowledged.
So instead, I used advice-add to modify the returned value of org-export-output-file-name.
I basically get the title from the active buffer and slugify it, and concat it to the publish directory (gotten from the output-file that is returned by org-export-output-file-name). To be honest, it feels like a brutal hack, but I’m just pleased to have gotten it working. And I learned a bunch in the process. I hadn’t used advice-add before, for example.
I need to fix up my slugify method a bit. I knew this already, but I see it more now that some of the slugs I generate don’t match the slugs that Agora expects.
I think mainly punctuation is the issue. I convert question marks, commas, apostrophes, etc, into dashes, but they would be better just removed.
It would be nice to autogenerate the agora markdown as part of my gitlab pipeline. I’m doing it manually for now. However, that’s fine - manual until it hurts, and until I iron out a few wrinkles, I think.
Done: we now have a simple but working Dockerfile that bootstraps an Agora. See [[podman]] for instructions.
Loosely structured thoughts from earlier: it’d be nice if you could just pass a sources.yaml (or a link to an Agora repo?) to some variation of podman run and get an Agora, just like that.
Perhaps we need [[agora.yaml]] though? For things like configuring hostname. [[agora server]] has config.py, but it’d be nice to have it be just a config and store it in the [[agora root repository]] instead.
I took a detour of one pomodoro for [[chezmoi]], and I think it made sense: they are related, [[chezmoi]] seeming like a reasonable candidate for a personal configuration manager including links to arbitrary repositories, containers.
It was the reference Agora as of ([[2021-10-15]], [[2022-07-24]]) just because it was the first — not in spirit, not even in name, but rather the first to explicitly implement [[agora protocol]].
I’ve been procrastinating constructively on making the Agora actually reliable. This is a log of why and how I intend to address reliability going forward.
"Smart Agora envisions the establishment of a cyber-βphysical digital agora in Smart Cities, a public arena of discourse, where citizens actively engage in collective decision-βmaking and public matters. Smart Agora is an advanced platform that uses digital technology such as augmented reality, gamification and the Internet of Things. It empowers citizens to improve their quality of life by witnessing urban points of interest as well as participating in online deliberation and decision-βmaking that can shape citizensβ public sphere to the better."
The vision of a citizen-designed, citizen-controlled worldwide communications network is a version of technological utopianism that could be called the vision of "the electronic agora." In the original democracy, Athens, the agora was the marketplace, and moreβit was where citizens met to talk, gossip, argue, size each other up, find the weak spots in political ideas by debating about them.
Back in the 60s, [[Marshall McLuhan]] preached that the power of big business and big government would be overthrown by the intrinsically empowering effects of new technology on individuals. The convergence of media, computing and telecommunications would inevitably result in an electronic [[direct democracy]] - the electronic agora - in which everyone would be able to express their opinions without fear of censorship.
Community activists will increasingly use [[hypermedia]] to replace corporate capitalism and big government with a hi-tech ‘[[gift economy]]‘ in which information is freely exchanged between participants. In Rheingold’s view, the ‘[[virtual class]]‘ is still in the forefront of the struggle for social liberation. Despite the frenzied commercial and political involvement in building the ‘[[information superhighway]]‘, direct democracy within the electronic agora will inevitably triumph over its corporate and bureaucratic enemies.
Every light casts a shadow. If the [[Agora]] is a project of light (connection, knowledge, [[protopia]]), we must rigorously explore its potential shadow side to ensure it remains robust. This node is for exploring the failure modes of our vision.
The Shadow: When everything is linked, distinct contexts merge. A note written for a close friend in a specific emotional state might be surfaced to a stranger in a debate.
Risk: Users might self-censor or retreat to private gardens to avoid being misunderstood, defeating the purpose of the [[commons]].
The Shadow: Moloch is also the god of efficiency. If the Agora is too slow, too deliberative, or too complex, it will simply be outcompeted by centralized, extractive platforms that are faster and easier to use.
Risk: Irrelevance. The Agora becomes a beautiful museum of thought that no one visits because they are too busy scrolling TikTok.
I’ve been thinking a lot about the Agora. It seems crazy — is it a trivial idea? I have a lot of those, and I write about them all, just in case. I write about my ideas as if they were fiction, because they likely are fiction; they don’t work, or they are trivial to the point in which they are not really ideas at all; just thoughts about the world as it is, in some way, or after some trivial transformation. Shallow.
But about the Agora: what if it were true? What if we could build an Agora, right here, right now, on the internet? It seems doable enough: a website where we can all agree to discuss earnestly, not to bicker or put the other party down but to understand the other, learn from each other, perhaps sometimes indeed convince another? The rest of the internet could remain as is; bitter, divided, misguided, petty. But the Agora would try harder.
Is it trivial because it already exists? We have many sites that could work as an Agora: hackernews, reddit, stackoverflow, twitter. Even Facebook. But those sites aren’t the Agora; the Agora is a social platform with extra rules that none of them have. The Agora is any social media, with an intention.
Or perhaps the issue is that those already exists, but I don’t know about them because nobody uses it. Or because I’m an ignoramus.
But, really, even if that is the case, I want to write about it because I want to know where it is. If it is out there then please — you, reader, if you ever exist — point me to it. Because I want to get in there.
I feel Agora achieves this same principle, but in a different way. ([[What are the similarities and differences between Agora and FedWiki?]]) It appears to allow for a greater plurality of ways of making personal wikis (as long as you can get your notes in to markdown format in a git repo, you’re good), resulting, I think, in even wider scope for provisioning the commons.
That said, I would still like to see explorations in [[peer-to-peer]] connection of gardens - something perhaps [[IndieWeb]] and webmention based.
But even if that were so, I think there is an important place for an aggregator such as Agora. You can see Agora as an easy[^fn:1] way to get your garden on the web, for those without the time or inclination to learn how to publish their own website, while still retaining complete ownership of the data. And it also connects you to other people out-of-the-box - you see what people have written on topics similar to you. In some sense I see Agora as doing for indie gardens what [[micro.blog]] does for indie streams.
I like [[collective knowledge management]] tools such as [[Anagora]], as when looking at a topic it gives me a subjective view of what my friends/community of practice think about it. As a fallback after that I can see what [[Wikipedia]] attempts to shake out as the objective view.
It would be good for other [[Agora]] instances to come online, to be able to quickly get a peek at multiple different groups’ subjective view.
I wonder if one may in some sense see it as similar to [[liquid democracy]]. On any topic, I could choose who I am most interested to see definitions from. I ‘delegate’ the definition to them, if I’ve not had chance to do my own yet. I would probably start in my local instance of Agora. Then perhaps my instance federates with others. At the end of it all, if noone has defined it yet, see what Wikipedia says.
1 Well, easy-ish. You can make it in a program such as Obsidian, Foam, logseq, org, or your favourite text editor of markdown, and you need to get it in to a public git repository.