🎉 The Flow Playground is now stable, bug-free, and blazing fast

:world_map: Context:

In the past year, our Flow Playground succumbed to a mountain of tech debt and didn’t get the attention it needed to keep up with our evolving ecosystem. This resulted in several regressions until it became virtually unusable for many users deviating off the happy path defined by the first couple of tutorials.

:fire: Impact:

Over the past couple of months, the Flow developer experience team has been hard at work refactoring, building, and fixing the whole codebase to address the end-to-end user experience. We’ve been able to launch a stable version of the playground with some huge improvements, including:

  • 99% reduction in critical errors experienced by users :100:
  • 5x speed improvement for smooth and fluid interactions :zap:
  • Battle-tested against all Cadence tutorials and cookbook examples :crossed_swords:
  • Account storage inspection feature is functional again :package:

:arrow_up: Coming up:

We’re working hard to release a V2 of Playground with our new designs that’ll include:

  • Revamped UI that is optimized to be reflective of your local development experience without the hassle of installs, configuration and tooling
  • Folders and files to hold your contracts, transactions and scripts that’s easily exportable, shareable, and more
  • Ability to view, rewind, replay, and share chain state as you run transactions
  • A guided tutorial experience that walks users through
  • Smart suggestions for starter Cadence snippets, templates, and more!

We are expecting a public beta version with some of the above features by end of Q4, stay tuned to this post and Discord to keep up to date!

:point_right: Check it out now! @ play.flow.com

Feel free to post any comments, concerns, or issues here.

:memo: More Details

Key improvements for end users:

  • 13k unhandled errors thrown per day from the Language Server to 0
  • 3.1k unhandled errors thrown from the Playground spread across 18 different issues. All of these have been resolved with errors now thrown sitting in the single digits.
  • Performance jumped up in magnitudes thanks to a move from our non-relational DB to PostgreSQL for persistence.
  • Upgraded infrastructure that now comes with a lot more visibility, logging, monitoring, and notification tooling we need to keep the deployment performant and healthy.
  • We are now releasing on a weekly basis compared to quarterly before. This will ensure regular feature releases, tooling and dependency updates, and overall stability.

Key improvements for contributors:

  • Updated the emulator the playground was using from a customized version to the latest. This will help:
    • Reduce the steep onboarding curve to the codebase for new maintainers
    • Standardize the Playground emulator to use a non-customized version
    • Utilize the latest flow-go release
  • The staging environment is now publicly available
  • Significantly improved test code coverage on the backend API
  • The Playground is now staffed with a dedicated owner and team to improve and maintain it into the future.

Relevant PRs and issues:

:pray: Contributors:

Thank you to all the contributors that made this release possible!