We built the federation based on the promiscuous sharing of simple things with the hope that this would lead the community to save indefinitely things worth saving. Within a year we had moved from ruby to node without leaving ruby sites behind. Now, in the federation's ninth year, we consider how this process might be further distributed.
digraph { rankdir=LR node [shape=box style=filled fillcolor=bisque] "Outpost\nThinking" node [fillcolor=white] "JSON\nSchema" -> "Federating\nForeign\nServers" -> "Federation\nFriendly\nOutposts" -> "Outpost\nThinking" "Javascript\nModules" -> "Node's\nMistakes" -> "Outpost\nThinking" }
We've been itching to embrace the ES6 module structures and maybe leave jQuery and CoffeeScript behind in the process. When node inventor Ryan Dahl announced that he was taking a similar fresh look at server-side javascript runtimes, of course we were interested.
See Node's Mistakes
Our first metaphoric steps into deno land started when we agreed to spend two lunch hours a week coding to see where it would go. Our first commit was on the last day of January. Our most recent, as of this writing, was the last day of March. In two months we've established that we have a process and a tempo that lets us think broadly about graceful extension of our federation. github
We've named this outpost Seran, after the Star Trek federation outpost known for its excellent engineers. We'll build on a new implementation of both server and client by implementing small projects and then bending the foundational codebase to make these look easy.
digraph { rankdir=LR node [shape=box style=filled fillcolor=bisque] "Outpost\nThinking" "Meta\nSites\nand\nPages" "Modular\nClient" "Serving\nExecutables" "Smallest\nWiki\nRevisited" node [fillcolor=white] "Outpost\nThinking" -> "Meta\nSites\nand\nPages" -> "Federation\nScraper" "Outpost\nThinking" -> "Modular\nClient" -> "Abstraction\nin\nTurtle\nGeometry" -> "Turtle\nSpirals" "Meta\nSites\nand\nPages" -> "Content\nTransformation" "Making\nGrowing\nRegions\nWiki" -> "Content\nTransformation" -> "DIG\nHandbook" "Making\nGrowing\nRegions\nWiki" -> "Production\nTools" -> "DIG\nHandbook" "Region\nScraping\nand\nIndexing" -> "Federation\nScraper" "Outpost\nThinking" -> "Serving\nExecutables" -> "Sudoku\nHelper" "Sudokant" -> "Sudoku\nHelper" "Outpost\nThinking" -> "Smallest\nWiki\nRevisited" -> "Client\nType\nModules" }
Our work has explored several organizational structures unified by deno and ES6 modules.
Meta Sites and Pages add routes when the seran-wiki server starts.
Modular Client built with modules for lineup parts and custom elements for plugins.
Serving Executables by running them just long enough to get a response.
Smallest Wiki Revisited where host and view are modules easily incorporated into other applications.
.
See Deno in 2020 for a summary of their year. post