Skip to content

Roadmap

Raine Revere edited this page Apr 12, 2024 · 23 revisions

em is a process-oriented note-taking app that facilitates sensemaking flow.

A flow state... is the mental state in which a person performing an activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment in the process of the activity. [1]

We can experience flow states with anything when the conditions are right. Athletes, musicians, programmers all experience flow. Why not also with sensemaking in our everyday lives? This includes journaling, note-taking, planning, outlining, analyzing, synthesizing, brainstorming, distilling, summarizing, consolidating... any cognitive-linguistic conceptual activity. Pen and paper have always enabled these activities. Yet digital technology is more than simulated paper. We can leverage virtuality to extend our symbolic processing capacities and enable more powerful and fluid sensemaking experiences. As social systems collapse, environmental threats heighten, and cultural change speeds up, we need good sensemaking and good sensemaking tools more than ever before.

em provides a personal thoughtspace coupled with interactive controls that facilitate the emergence of a conceptual flow state. em maps shortcuts and mobile gestures to semantic operations (what your mind is doing) rather than mechanical operations (what the computer is doing), creating a tight feedback loop between thinking and writing.

Vision

An embodied, cybernetic relationship with technology that extends our collective cognitive, linguistic, symbolic, and conceptual capacities so that we may more deeply, thoughtfully, and wisely make sense of ourselves and the world we live in.

Ownership

em is released as public source under the Do No Harm License.

Development of em is funded by the Cybersemics Institute, a U.S.-based 501(c)(3) nonprofit founded by Raine Revere.

Status

em is in alpha status.

Objectives

em development is guided by four major objectives.

⚡️ 1. 100k

em must be speedy and smooth up to 100,000 thoughts. This would allow a reasonably prolific thinker to use the app for 2-3 years.

(For a lifetime of sensemaking, em should eventually support 1,000,000+ thoughts.)

⚖️ 2. Data Integrity

The user's data is sacred. Any risk of data loss or corruption is the highest priority. There are extensive unit tests for the front-end state (reducers), but data integrity issues can be introduced through timing issues with sync, multi-client interaction, undo/redo consistency, and local storage persistence.

  • 🔑 Encryption
  • 🔃 Sync database
  • 📱 Multi-Device Support

📱 3. Mobile App

em has been built mobile-first, offline-first from the start. However, significant work is required to adapt the codebase to work as a native app. The current plan is to use Expo + React Native Web to create a (mostly) shared codebase between native and web.

🧠 4. Fluid Sensemaking

The features and capabilities of a sensemaking tool should be part of an integrated design that affords sensemaking flow. While many more features have been designed, these are the essential features necessary to use em as one's daily sensemaking platform.

  • 🏙 Context View
    • Initial implementation
    • Re-enable with independent editing
    • Decouple context chain
    • Commands work across normal and context views #320
    • Nested context views
  • 🗽 Independent Render #188
    • Thoughts are currently rendered in the DOM as nested elements. Since ancestors are containers of descendants, they cannot be removed, even when they are no longer visible, as that would also remove all of their descendants. Instead, thoughts should be rendered as siblings and their x position controlled programmatically. This will not only allow hidden thoughts to not be rendered, but also more complex animations and transitions.
  • 🙂 Onboarding Experience
    • Test tutorial
    • Improve help system
  • ✏️ Recently Edited
    • Initial implementation #180
    • Not fully merged #323
    • Re-enable after independent editing
    • v3 #729
    • Dynamic context #246
  • 🔍 Search
  • 🗄 Table View
    • Initial implementation
    • Fix nested table positioning #467
    • Table descendants are indented too far #471
  • 🗑 Undo/Redo
    • Initial implementation #105
    • Persistence
    • View History

Future

  • Linking
  • Collaboration
    • Publish
      • Initial implementation
      • IPFS Pinning
      • Self hosting
      • Mutable
    • Share
      • Public
      • Permissioned
    • Collaborative Editing
  • Import/Export
  • Import/Export
    • Clipboard
    • HTML
    • JSON #714
    • Roam #865
    • Plaintext
    • WorkFlowy
    • Google Docs
    • Evernote
    • Notion
    • Roam
  • Integrations
    • API
  • UI
Clone this wiki locally