Text is a substrate for pretty much all digital information; it's the most flexible medium for computing and communication, as it's the core standard behind pretty much all source files and content. I want to make a good text editor and programming environment! Here are some interesting ones I've seen. # Work [Xi](https://github.com/xi-editor/xi-editor) is a flexible editor with a modular approach to construction; if you implement Xi's protocol, you can use any user interface that calls back to Xi on the backend. However, it's plagued with latency issues. [xi-editor retrospective \| Raph Levien’s blog](https://raphlinus.github.io/xi/2020/06/27/xi-retrospective.html). [Left](https://github.com/hundredrabbits/Left) A simple, minimal writing tool without the distractions [Yi](https://github.com/yi-editor/yi) A modular collection of packages for creating your own text editor in Haskell. [Leo](https://github.com/leo-editor/leo-editor) Python-based personal information manager # Writing Tools [Hemingway Editor](https://hemingwayapp.com/) A text editor that gives you feedback on your work and words, using common conventions, "hard to read" metrics, etc. to help you improve your writing as much and as interactively as possible. [GitHub - ianstormtaylor/slate: A completely customizable framework for buildi…](https://github.com/ianstormtaylor/slate) A rich, JS-first text editor library that's super ergonomic to use. [Poemage](http://www.sci.utah.edu/~nmccurdy/Poemage/) mostly a reading tool. Maps out poem topologies of files while reading or composing! [Home \| Penrose](https://penrose.cs.cmu.edu/) Visualize math notation with bubbles by using succinct math phrasing. [Unker Non-Linear Writing System](https://s.ai/nlws/) Some thoughts on what a nonlinear writing system can, should, and might look like. [CryptPad: Zero Knowledge, Collaborative Real Time Editing](https://cryptpad.fr/) This is sick! How does this work? # Software Environments - – incredibly powerful editor - [Pharo](https://pharo.org/) :: A Smalltalk editor that's an 'IDE and OS rolled into one' with killer runtime code inspection. - [Squeak](https://squeak.org/) :: A fascinating smalltalk editor! - [glisp](https://glisp.app) :: An incredible layout environment for structured design and editing. this site seems to autogenerate documentation, taking color cues from the environment to do so! The source is . - hazel - [Code Bubbles Project: Rethinking the User Interface Paradigm of Integrated De…](http://www.andrewbragdon.com/codebubbles_site.asp) - - [natto - write JavaScript on a 2D canvas](https://natto.dev/) - [Glitch: The friendly community where everyone builds the web](https://glitch.com/) - [Replit: the collaborative browser based IDE - Replit](https://replit.com/) - [mmm.page — Dead Simple, Drag & Drop Websites](https://build.mmm.page/) - [Observable - Explore, analyze, and explain data. As a team.](https://observablehq.com/) - [Potluck: Dynamic documents as personal software](https://www.inkandswitch.com/potluck/). ## Blog-based [txt.fyi](https://txt.fyi/) [Telegraph](https://telegra.ph/) [txti - Fast web pages for everybody](http://txti.es/) [Write.as — A place for focused writing.](https://write.as/) : command-line pastebin [rwtxt](https://rwtxt.com/public): space for reading or writing text [comment parade](https://commentpara.de/): anonymous backquotes and other such comments. # Interactive Documents Unclear how this is distinct from some of those 2D node editors with interactive components. - [Coda \| Everything evolves, the evolution of documents.](https://coda.io/welcome) # Programming Editors [the ACME text editor](http://acme.cat-v.org/) default for plan-9. interesting mobile system incorporating mouse usage and chording! it's different from traditional text editors and worth trying. [research!rsc: A Tour of Acme](https://research.swtch.com/acme) might reveal some cool secrets to incorporate in more traditional text editors. # Pedagogic The ideal editor is petagogic - with a learning curve that can be explored without having to ever leave the ecosystem - but these are developed solely for teaching in mind. - [maria: a clojurescript envvironment for beginners. try it out!](https://www.maria.cloud/) - [DrScheme](https://parentheticallyspeaking.org/articles/pedagogic-ide/#%28part._.At_the_.Beginning%29) :: Sriram krishnamurthi's work on developing editors for education to help students learn without overwhelming them - at the same time helping them 'unlearn' bad habits from utilities like visual studio and intellij. - [olive](https://github.com/olive-editor/olive): nonlinear video editor # Fun Ideas - Abandon source files for a database of functions, or nodes with connections, or some other abstraction with visual input - Indenting on the Z axis, increasing font size as you continue - : what's the best way to navigate a codebase? this is one of the most important parts of the software development experience, yet it's one that largely is not focused on. - [Textreme](https://ash-k.itch.io/textreme) :: A text editor that looks and feels just like a game. - [What would a text editor look like without a keyboard?](https://twitter.com/azlenelza/status/1331623011049500678) - # Thinkpieces - [metablog: Maybe Visual Programming is The Answer. Maybe Not](https://blog.metaobject.com/2020/04/maybe-visual-programming-is-answer.html?m=1) - [How can we develop transformative tools for thought?](https://numinous.productions/ttft/) - [Kartik Agaram](http://akkartik.name/about)