Roadmap
Planned | Started |
---|---|
|
|
Development Updates
Early Access v20
15 days ago
This change introduces a new literal type to CoCube - Component.
Previously, components were represented as Maps, where the map key indicated the name of a Cell, and the value indicated the cell's expression. This was done to keep the number of types low and to keep things simple, but had some drawbacks:
Determining if a Map was being used as a Component, a set of subcomponents, or just regular data became difficult.
The Map type had to follow cell invariants (only indexed by Text).
The Map type had to follow subcomponents invariants (only indexed by Text, ordering representing layers).
By creating the new component type, much of this complexity has been reduced. This allows users to edit this data more easily in expressions without having to keep track of what they are representing. This also moves the tool one step closer to freeing up the Map type to use more than just Text as keys.
Notes for updating components:
The Children cell has been renamed to Components. Existing components must have this cell redefined for their subcomponents to be visible. The Components cell now expects a Map of Component/ComponentRef values. Defining a subcomponent using a Map no longer works. This release also ships with many updates to the UI/UX as well as various fixes, some of which are mentioned below.
All updates:
Added the Component literal type.
Renamed Children Idx to Components (breaking).
Expect children components to be defined as Component literals (breaking).
Updated quick start documentation with more info and better formatting.
Fixed UI spacing on subcomponents panel.
Fixed scroll area being scrollable outside of content bound.
Fixed time since last development update.
Fixed crash on removing Array items via expr editor.
Early Access v19
49 days ago
This is the first of many development updates meant to go into more detail about how CoCube is being created. This post covers covers the update to version 0.19.
Long term persistence.
Custom components should behave the same way through any change or feature update that CoCube goes through. This problem is simple and obvious to state but is challenging to solve. How do you ensure that if a function is removed, components that used that function are successfully migrated to a new function (or an expression) that does the same thing? What about when an attribute is updated with new functionality or even the type of data it expects to receive needs to be changed? These kinds of problems often come up when building software, and while there are solutions in many cases, sometimes the only way forward is to force the user to update their existing work. Most of the changes in v0.19 are to give attribute cells more information about the data they are storing so that future updates do not break existing components. Unfortunately, these updates have the side effect of breaking existing components, but they bring CoCube one step closer to preventing these kinds of breakages in the future.
More data types.
Before, expressions were limited to Bool, Number, Text, Map, Array, Component, and Function types. This update introduces multiple new data types: Angle, FixPoint, Anchor, Color, EventHandler, and Shape. These types each have their own editors in the expression editor, making them easier than ever to work with.
Removing the sidebar.
With the updated types and their associated expression editors, the left-hand sidebar is no longer needed. Now, all changes are made via the Node panel.
All updates:
Added Color type.
Added EventHandler type.
Added FixPoint type.
Added Angle type.
Added Anchor type.
Added Shape type.
Can now edit all fields of event handler arguments.
Reactivity panel now directly displays event handler function.
Added ScrollArea builtin component.
Removed left sidebar in node editor.
Fixed editor not always showing computed value of function calls.
Updated home navigation button appearance.
No longer require a username.
Fixed issue with backspace not always registering on text edit.
Early Access v18
79 days ago
Added Ref/Expr indicator for node children.
Fixed Reactivity panel issue when using SetCell with a referenced cell.
Fixed render order issue on refs.
Added ScreenHeight and ScreenWidth functions.
Scale node editor to screen size.
Set NodeRef overrides when editing a ref node.
See overrideable cells (inputs) when editing a ref node.
Early Access v17
105 days ago
Node editor UX.
UX for publishing, sharing, and adding collaborators.
Url driven navigation.
Faster incremental updating.
CubeRef type.
Stable persistance format so future changes do not break existing cube definitions.
Various bugfixes.
Early Access v16
136 days ago
Updated landing page.
Implemented subscription management via Stripe from account page.
Show current plan on pricing page.
Updated pricing page layout.
Updated account page layout.
Fixed login delay on console.
Scrollable cube now takes max height.
Better validation on login and create account screens.
Updated nav bar.
Cubes are now owned locally.
Early Access v15
149 days ago
Implemented delete support for remote cubes.
Replace nav bar buttons in console with single account button with icon.
Clicking user account info in console navigates to user account page.
Fix error when navigating from console back to landing page.
Console is now started when the page is visited, so it is much faster to open.
Navigating away from the console does not cause it to unload.
Updated roadmap to reflect 2024 vision document.
Fix issue with text cursor not always appearing when clicking.
Remove text highlight when changing cursor position.
Fix vertical text alignment to be more centered on all rendered text.
Fix vertical alignment on icons.
Update console navigation bar layout to be more consistently sized.
Wrote and posted CoCube Vision for 2024.
Early Access v14
155 days ago
Canonicalized domain name across all api calls.
Automatically redirect to canonicalized domain with www prefix.
Fix CORS issue in safari when using non-canonicalized domain name.
Updated landing page copy.
Prevent multiple POST requests on sign in and create account form submissions.
Update mobile navigation menu styling.
Update roadmap feature request form styling.
Moved to non-icon font for faster page load.
Moved to using SVG for icons.
Added CSP headers.
Updated quick start copy.
Early Access v13
159 days ago
Implemented account information page.
Fixed sign in and create user flows on unsupported platforms, will no longer freeze.
Prevent auto-zoom on input forms on iOS by using larger font.
Updated UI for sign in and create account forms.
Added Terms and Conditions and Privacy Policy links to create account form.
Added current payment plan display to user account page.
Added logout button to user account page.
Added hints to login and create account page inputs.
Updated logo on html page to show version.
Fixed issue when logging in where response was incorrectly seen as error.
Early Access v12
163 days ago
Added support for deleting cubes from local SQLite database.
Updated cells panel per-cell button interface to be more readable.
Simplified event handlers to have only one type of cell update (breaking change).
Changed navigation to HTML login/create account pages.
Implemented remove buttons for MatchOn statements and for Actions in the reactivity panel.
Updated error messages during login and account creation to be more informative.
Fixed login failure issue.
Early Access v11
180 days ago
Implemented first version of Learn and Reference pages.
Updated website styling across all pages.
Restructured top level site navigation to focus on Roadmap and Learn pages.
Implemented better error diagnostics for clients during crashes.
Fixed log in forms setting URL parameters.
Early Access v10
184 days ago
Updated cube name displays on the cube explorer.
Fixed freeze when unable to persist local doc due to worker thread channel being full.
Updated cube explorer and cube insert panels to use scrollable lists.
Updated insert cube panel to allow filtering by User / Common cubes.
Added static notification to home page for non-WebGPU and mobile browsers.
Fixed number editors not displaying target cell value after modification.
Added vertical scroll to nodes panel.
Decluttered cells panel. Expressions and type info are only shown on hover now.
Implemented better UX for mobile website.
Early Release v9
190 days ago
Fix incorrect text length on non-ascii UTF8 strings.
Updated menu drop down layout.
Mouse and key events now support matching on specific button state changes.
Fix display mode shown as map on drop down in Display panel of the node editor.
Fix user account info sometimes not being received on login.
Early Release v8
194 days ago
Rendering is now smoother and has less delay.
Clip masks are implemented allowing for things like scroll bars.
Layers implemented, allowing a component to pop itself out of a clip mask.
Updated cells panel to take advantage of clip masks and layers with a new scroll window.
Landing page animation and formatting updates.
Navigate to /console to start interactive editor.
Early Release v7
204 days ago
Implemented server side rendering for HTML home page.
Animation and navigation added to HTML site.
Updated pricing page.
Starting the editor is now dependent on user having WebGPU and clicking a button.
Geared landing page more towards showing how the reactive cell system works.
User can log in using HTML site.
Early Release v6
215 days ago
Clients may request gzipped versions of files, lowering startup time.
Web workers now moved to module syntax.
Fix scrolling getting too slow with page zoom.
Fix hover over letters firing whenever mouse is to the left of the letter.
Move layout to CPU. Updated rendering engine.
Early Release v5
235 days ago
Better performance via an updated execution model looks-ahead to minimize re-evals.
Better performance from compilation optimizations.
Nodes can now listen to mouse scroll events.
Smaller binary size. 7mb -> 5mb.
Early Release v4
248 days ago
Better error messages when logging in.
Fixed issue with expr edit staying open when navigating nodes.
Reactivity panel formatting.
Fixed bumpy rendering for rounded rectangle.
Updated Nodes and Cells panels display.
V1 blog implementation.
Early Release v3
252 days ago
Added RemoveCell to reactivity panel builder.
Added Var function for accessing matched value from event handlers.
Early Release v2
258 days ago
Return to only evaluating Children cell with eval_container.
Early Release v1
263 days ago
Removed automatic application of eval_container function to Children cell.
Fixed anti-aliasing on text and corners causing blurring.
Added initial auto-completion to cells panel.
Learning track updates.
Fixed document parsing crash on failure.
Alpha Release v13
268 days ago
Landing page wording updates. Focusing on generality instead of targeted notes.
Eval model updates.
Alpha Release v12
290 days ago
Improved performance in general by 15%.
Fixed nested expression evaluation when using EvalContainer function.
Updated menu selection UI.
Updated landing page spacing and content.
Updated table formatting and added some functionality for creating rows and columns.
Note template now allows inserting of additional blocks, currently Text and Table.
Reduced startup time by about 30%.
Fixed text-box cursors causing issues when accessed from non-focused roots.
Alpha Release v11
297 days ago
Implemented initial functionality for local persistence using sqlite.
Alpha Release v10
304 days ago
Added click-and-drag events. Nodes may now react to being dragged across the screen.
Added support for highlighting text. Text may now be selected and removed via highlight.
Added functions for tracking the position of a cursor in a text cell.
- Cursor positions are updated when changes are made locally and non-locally, i.e. when collaborating.
Alpha Release v9
311 days ago
Updated the UI to be less pointy.
Added rounded rectangle and circle sector display modes.
Once logged in, the component explorer no longer (confusingly) shows built-in components.
Updated the text edit component to behave more like what you would expect from an editable text component.
- Scrolling horizontally and moving the cursor now works correctly.
Added a "new note" template to quickly create a new note.
Alpha Release v8
318 days ago
Persistence and collaboration features are now functional and usable.
All changes you make to components you own or are a collaborator on are saved to the server.
If you have added collaborators to a component, they will see your changes in real-time (and vice versa).
Alpha Release v7
325 days ago
Work on persistence and collaboration features.
Landing page updates.
Alpha Release v6
332 days ago
Page load time is reduced by ~50%.
General performance improved by ~4%.
Work towards releasing collaborative editing and persistence.
- The local component database has been moved to a separate node tree, allowing for more incremental dependencies on edited components and providing a more straightforward user experience since it is no longer editable.
- Modifications to collaborative components only trigger updates to associated cells in the database.
New insert component panel. Note: Needs more work on usability.
New display panel. Better color selection. Note: RGBA editors will be fixed in a follow-up update.
Text and EditText are now insertable / included as built-in components.
The base font size increased for better legibility, resulting in minor UI updates across the app.
Alpha Release v5
339 days ago
Increased overall performance by ~16 percent.
Separated 'Application' tree to simplify UX, event handling, and collaborative editing.
Children cell now accepts expressions on each index.
Updated changelog formatting.
Updated some learning path steps.
Updated landing page wording and nav bar formatting.
Learn and changelog pages keep the nav bar when they are navigated to.
Updated internal rendering pipeline dependencies.
Fixed browser events (zoom, reload) sometimes being captured unintentionally.
Alpha Release v4
347 days ago
Added learning/tutorial cube with navigation from landing page.
Display panel of node editor can be used individually.
Added beta sign up flow.
Updated page for non-webgpu enabled browsers.
Alpha Release v3
354 days ago
Added ChangeLog page.
Landing page updates.
Quote function.
Updated Button component to use EmitTag.
Cubes are now editable in expr editor.
Can now set cell overrides on children Cubes.