We seek a perspective that appreciates the potential for humans to communicate and balance that with the natural limits of internet software.
We're attracted to the systematic reconciliation of failures in Fred Heberts Crash-Restart Patterns which we model. Here we think of things that have gone wrong looking for ways to abstract latitude for these fails.
# Deviances
Markup. Internal form is readable. Syntax errors show as themselves. Formatted json. Missing or failing plugin shows markup and help.
Serialize. Some corruptions can kill server. Truncation is imbalance and total loss.
Move. Must address location with id that may not be present. Defaults to top which is poor choice.
DOM Sync. Fork forgets some updates. Competing panels sharing page.
Server Sync. Login doesn't clear read-only. Write fails on fork of large page.
Factory. User chooses wrong plugin that mostly works. Confused that all plugins aren't listed.
Items. In many cases, but not all, the unit of refractoring is the paragraph like thing that is "whole". This breaks down with lists.
Editors. We have a common editor but allow a plugin to do something different or better. Graph, Map. Any freeze/thaw.
Markup. The convention of KEYWORDS being easily recognizable makes parsers within reach using just regex. But Microsoft Code takes another approach.
Forecast. Want to see the impact of markup, or at least a prediction of impact, while editing.
Persistence. The author's and the communities long term interests do not have to align to be welcome.
Purity. The nature of the lower layers should not be overcome or otherwise polluted for some lessor purpose above.
# Strategy
We will continue mapping the space of opportunity before pushing any of these observations toward design principles. When ready, we will incorporate advice from other quarters.