Roadmap
Changelog

new

improved

fixed

Pro

The Stately team has had another busy week. The editor now has event schemas, and we’ve made many more improvements. Let’s dig in!
Event schemas
Event schemas are now available in the editor. You can access the event schemas from the
Machine details
panel. The event schema enables you to define events for the current machine, including all of the events’ properties, including, but not limited to, the event description.
The machine details panel showing a list of events in the current machine, including retry, filter, search, load_more, and remove_filter. There is an unused event called Event 1.
You can search for available events from the event schema panel, edit their details, and create new events. Any events you aren’t using in your machine have less opacity, and you can delete all unused events from the
...
button and choose
Delete all unused
.
You can also view the schema for any event by selecting that event on the canvas and opening the
Event details
panel.
Team viewer role is now free
The
Viewer
role in Stately Teams is now free and does not count towards your number of seats. You can now see how many available seats you have left on your team from the Team page and the Billing page.
Stately Demos team Members page. Showing Anders being invited to the team with the Viewer role.
Improvements to generating flows
We’ve improved the interface for generating flows to make it easier and faster. You can now access the history of text descriptions you used for your current machine from the
View history
button in the
Generate flow
dialog. Use the
Copy to prompt
button to copy a preview prompt into the description field to try it again!
Prompt history in Generate flows dialog which shows two text descriptions previously used to generate flows, with buttons to open flow and copy to prompt.
Improvements to the machines list
  • Machines are now sorted alphabetically from A to Z in the machines list.
  • Locked machines now have a locked icon alongside their name in the machines list.
More improvements
The machine’s root state now has a minimal borderless appearance by default, giving you more space to focus on your machine. If you change the root state’s color or add a description, action, or any other block type, the root state will revert to its classic bordered design and the same features as any other parent state.
  • Annotations are now borderless, so they appear directly on the canvas.
  • Transition labels now have more definition to make them easier to read.
  • You can now jump directly to the Discover page from
    Discover
    in the Editor menu.
Bug fixes
We fixed a bug where a machine name was not correctly updated when you renamed its root state.

new

Pro

Beta

Our Pro users can now export state machines to Markdown and as stories. These formats give you more options for sharing your flows with non-developer teammates and in other environments, such as documentation. Access these formats from the dropdown menu in the
Code
panel.
Export to Markdown
Export to Markdown has been a long-requested feature. The Markdown-formatted flow contains a flattened list of states and transitions, where each transition is linked to its target state, enabling you to click through a text version of your state machine. Each state and transition includes descriptions, guards, and a list of actions and invoked actors.
Export to Markdown (beta) from the Code panel gives you the option to Copy code, and displays the machine in markdown with descriptions formatted as quotes.
Export to stories
At Stately, we believe state machines are incredibly valuable for generating user stories. Exporting to the stories format lists all the happy paths from the initial state to other states in your flow. These happy paths help document use cases against project requirements and generate test cases.
Export to Stories (beta) from the Code panel gives you the option to Copy code, and displays the machine in markdown with headings for each happy path and a numbered list of states in that path.
These new export formats are in beta. If you have any feedback, please let us know on Discord.

new

Pro

Yet another new Pro feature for you this week: you can now lock machines to prevent accidental edits. Lock a machine using the lock icon button in the machine Details panel.
Locking the machine from the lock icon button in the Machine Details panel.
Locking a machine prevents you or anyone else on your team, from editing, deleting, or renaming a machine. It will also prevent anyone from importing code to replace the machine or restoring a past version of the machine.
Locked machines have a Locked status displayed in the editor’s top bar. If you hover over the Locked status, you’ll get a tooltip detailing who locked the machine and when.
Hovering over the Locked status to read that the machine was Locked by Laura Kalbag a few seconds ago.
If somebody else is viewing or editing the machine when it is locked, their changes will not be saved, and they will be notified that the machine is now locked.

new

Pro

Beta

As a Stately Pro user, you can now auto-create machines from text descriptions with our new experimental feature,
Generate flow
. You can generate a flow for a new machine or use the flow description to describe how you want to modify your current flow.
Generate flow dialog: Experimental feature. With the flow description of “a debounce flow”, hovering over the button to Generate new flow. The generated flow is visible in the background.
There are so many reasons you might want to generate your flows, including:
  • You have a complex machine in mind and want to get started quickly
  • You want an example of a state machine for a particular flow
  • You’re new and want to get an idea of how you can model state machines
With 1000 calls a month, and a free 30-day Pro trial, get ready to create state machines in no time!

improved

fixed

Bug fixes
  • Default action implementations have now been fixed so that the correct default implementation is applied for both XState V4 and XState V5.
  • The Learn Stately video modal will no longer show in machine images.
Improvements
  • If you’re new to Stately, you’ll now get a notification with the option to view the Learn Stately videos instead of the modal opening immediately.
  • A plethora of internal fixes and improvements.

new

improved

fixed

You can now choose to export state and event descriptions and meta fields with your exported code.
Stately code panel with show descriptions and show meta toggles enabled.
Find the
Show descriptions
and
Show meta
toggles in the Code panel.
Bug fixes
  • Guarded eventless (always) transitions will now work as expected in Simulation mode.
  • We fixed a bug where the layout would sometimes shift in the Version History panel if there were many versions in the list and the user clicked to view one of those versions.
  • You are now able to copy the selected text inside the editor again.
  • Deleting meta values will no longer affect other meta entries.
Improvements
  • In read-only mode, selected states and events are now highlighted green rather than blue.
  • We changed the wording on the new version banner to reassure users their changes have been saved locally, and they’re safe to refresh the page.
  • A host of internal fixes and improvements working towards exciting future features!

new

improved

fixed

Pro

Our new Learn Stately guidance got its own changelog this week, but there’s more that’s new to Stately:
Bug fixes
  • Transition handles now always appear over warning and danger icons rather than being hidden behind them.
  • Annotations are no longer editable in view-only mode.
  • The icon used for keyboard shortcuts now renders better in light mode.
  • Multiline descriptions no longer break exporting to code.
  • We fixed a brief bug where saving new machines to existing projects would fail.
Improvements
You can now reorder guarded transitions by moving them up or down in order.
Right-clicking the second guarded transition and selecting reorder guard, then move up.
And the options to add a guard and add a transition to an existing transition have been split into two distinct actions in the
+
menu.
The plus icon menu for a transition, showing the options to add a Guard, Transition, Action, or Description.
  • Personal projects are now private by default for our Pro subscribers.
  • We no longer show a warning to Safari users as the editor is working well in Safari!
  • A miscellany of internal fixes and improvements.

new

We’ve just released a new way for new users to learn Stately. We’ve designed our Learn Stately guidance and accompanying tutorials to introduce the basic concepts of state machines, demonstrate how to build them, simulate them, export them to code, and implement them with the exported code.
Learn Stately modal in the editor, with a video of the editor in action.
Learn Stately guidance
The highlight of our Learn Stately guidance is two short videos (less than 8 minutes total!) that provide a step-by-step guide to using Stately and cover the basics of state machines.
The Learn Stately guidance is triggered automatically when a new user visits the Stately editor or if they haven’t viewed the guidance before. You can also relaunch the modal anytime from the Editor menu by selecting Help > Learn Stately or from the Help drawer by selecting Learn Stately.
Updated tutorials
We’ve also updated the tutorials in the Help drawer. We designed the tutorials as a refresher for the concepts learned in the videos and a quick start guide to Stately. They offer a brief overview of the features and functions of Stately, including how to create, edit, and simulate state machines.
You can always check out our Stately and XState docs if you need further tutorials and examples. The docs cover everything from the basics of state machines to advanced implementation with XState.

new

improved

fixed

This week’s headlines are that annotations now support markdown, and we’ve made many performance improvements…
New
Markdown is now supported in annotations! Previously you could only use plain text in your annotations; now, you can use markdown, like in descriptions.
Markdown being entered into an annotation, and that same annotation with bold text, italic text, a link, and a cute goldfish image.
Create an annotation by right-clicking anywhere on the canvas.
Bug fixes
  • Simulation mode has been fixed for embedded machines.
  • You now only need to press the back button once to return to the Projects list from the editor.
  • Share image URLs were quickly fixed after being broken by a previous release.
  • Renamed machines can now be filtered by their new names when filtered in the machines list.
  • Initial states are now correctly assigned when copying and pasting states.
  • The keyboard shortcuts button in the help drawer is now fixed.
  • The Give Feedback button in the help drawer is now easier to click.
Improvements
  • We have spent some time improving the performance of the canvas and UI, and your large machines should now be much smoother. Please let us know if you have any machines which need more attention!
  • You can now rename your project by double-clicking its name in the editor’s breadcrumb.
  • Old context values with type array or object are now migrated correctly. Arrays and objects in the old machine context structure were stored as strings, and now when the user opens their machines, they’re correctly converted to JavaScript arrays and objects, respectively.
  • The starter machine description is now an annotation, making it easier to delete all the states and transitions inside a starter machine if you want a fresh start.
  • The left panel width is now persisted when you reload the page.
  • Custom actions are now correctly handled in
    Import Code
    ; top-level action parameters are moved inside the
    action.params
    object, and
    type
    now appears before
    params
    in exported code.
  • The following machine options are no longer included in exported code: Do not include these in machine options in the exported code: actions with expression
    type
    , actors with expression
    src
    , guards with expression names, and delays with expression values.
  • A motley collection of internal fixes and improvements.

improved

fixed

We have more fixes and improvements for you this week:
Bug fixes
  • The previously over-eager logged out toast will now only show after successfully signing out.
Improvements
  • We now use the XState logo for built-in actions to distinguish them from custom actions:
State with built-in XState entry actions, including assign, raise, log, send, and stop. These all have a corresponding XState X icon. The custom action has a lightning icon.
  • We’ve labeled the Export to Mermaid option as “Beta” as we continuously improve this feature.
  • When a user shares a direct team link with another user who has been invited to the team but has yet to accept the invitation, we will now redirect that recipient to their team invitation page, where they can accept or decline the invitation.
  • After a user has created a new machine, the editor will always switch back to Design mode, even if the user was previously in Simulation mode.
  • We’ve improved the page titles so that browser tab text is easier to read and understand.
  • A melange of internal fixes and improvements.
Load More