Vision for 2024

CoCube's purpose is to make creating collaborative tools as easy as possible. Why? So that anyone can build and share software that directly solves the problems they need to solve. The second half of 2024 will focus on finishing the baseline set of stable features that will be built upon long-term. This document describes the goals and values that will guide development for the rest of the year as the product moves out of early release.

Core Values

Build cutting-edge, unique technology with an emphasis on simple yet flexible systems that can be used in creative ways. Respect the user's privacy and let them own their data. Be transparent.

Looking Ahead

The long-term vision is for CoCube to excel at helping users create tools for any problem, from a student wanting to create their own flashcard app to a professional building an interactive diagram to share with their team to an organization building an operating system for their business. This is a lofty goal, and it will take some time for the product to mature to that level. So the rest of the document focuses on the short-term vision over the next year.

The remainder of 2024 will focus on making CoCube as useful as possible for creating highly customized document-based tools. Emphasis will be placed on creating a rich, customizable text editing experience with support for creating custom data types and displays for those types, allowing for fast type-driven local search of these documents. The rendering, data storage, and reactive cell system will support these features, allowing CoCube to provide a uniquely customizable experience compared to other tools in the market. Early adopters will be able to use CoCube to create collaborative knowledge bases with fully personalized block-like dynamic components. Nailing the user experience for making these documents will require features that will remain relevant to the long-term goals of the product.

The Ideal Customer

Who should be interested in CoCube?

This small group of people should love what CoCube is becoming.

Design Principles

Configurability, extensibility, and introspectability.

If a user can imagine component or behavior that would help them solve their problem more effectively, then they should be able to create it.

Soundness and completeness.

Functional programming, declarative definitions, and strong type systems result in reliable systems. Updating a component should never cause anxiety.

The user owns the data.

Your data is always stored locally and can be painlessly exported.

Build for power users.

Editing, traversing, building, and viewing data in the system should require little more than thinking of what you want to do next. Leverage keyboard shortcuts and search. Build for performance and efficiency. CoCube should have a high skill ceiling, like an e-sport or an instrument. It's Steinway, not a Kazoo.

Induce flow state.

Some applications allow you to enter a flow state while using them. This happens when you feel you aren't limited by the tool you are using. Your production occurs as fast as you can think of the next step. Building an application with this in mind means placing tremendous value on increasing performance (user actions should happen in 10 ms or less) and creating a fully keyboard-navigable system. The only way to get into a flow state is by having every interaction with the software feel instant. CoCube should eliminate the time it takes to "get in position to think".

Fundamentally searchable.

Finding what you have done before is just as important as producing the next thing. Building CoCube to be local-first provides excellent opportunities to implement extremely fast search.

Always collaborative.

Never isolate a user from being able to work with the people around them. Collaboration should always be possible and always be easy.

Summary

In short, the remainder of 2024 will focus on making CoCube an incredible tool for creating and sharing high-performance, flexible, collaborative knowledge bases.