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.
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.
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!
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 Discoverin 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 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.

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 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.

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.
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.

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.

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.
- 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 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.

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 theaction.paramsobject, andtypenow appears beforeparamsin 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 expressionsrc, 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:

- 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
→