We have a big announcement to make about Apicurio Studio that I hope some people will be interested in.

Studio has been languishing for quite some time without getting the attention it deserves from us (the maintainers/developers). But that is about to change!

We’re announcing the deprecation of Apicurio Studio 0.2 and the beginning of a new line of development for Apicurio Studio 1.0!


History and Motivation

Apicurio Studio is the first project in the Apicurio open source community, and it was started back in 2016 (this fact makes me feel very old). Studio has been a reasonably popular and helpful project, but was never deeply integrated into Red Hat products (Red Hat sponsors all of the Apicurio projects).

In 2019 the Apicurio Registry project was started, and the majority of our development bandwidth has gone into that project, resulting in two Red Hat products:

  • Red Hat Integration Service Registry (soon to be rebranded as Red Hat build of Apicurio Registry)
  • Red Hat OpenShift Service Registry (a fully managed version of Registry)

Between the core project and the fully managed version, we’ve had plenty to do on the Registry project over these last few years. Couple that with the lack of product urgency around Studio, and we’ve found ourselves in the problematic position of having an old/stale codebase that has atrophied.

However, that is now changing with renewed interest in releasing Studio functionality within at least one new Red Hat product (hopefully more will follow) and with the sunsetting/removal of Red Hat OpenShift Service Registry.

Deprecation of Apicurio Studio 0.2

As of the writing of this blog entry, the current (old?) version of Studio is version 0.2.62.Final. The 0.2 line of development is now officially deprecated. We may choose to fix major bugs, but certainly no new development will happen.

As a result, we will be doing the following:

  • The master branch of the codebase will be deprecated and renamed to 0.2.x
  • Open issues will be closed where appropriate
  • The eval version at https://studio.apicur.io/ will be deprecated
  • An pinned announcement will be added to Zulip
  • A blog post will be written (this thing you’re reading now!)

Introduction of Apicurio Studio 1.0

As part of the Managed Application Services effort (now deceased) at Red Hat, we created a new version of Apicurio Studio that we will now be releasing as version 1.0. We did this because the Studio 0.2 codebase was not well positioned (technically) to be deployed as a Red Hat managed service. As a result, we took a bunch of the core functionality of Studio 0.2 and either re-implemented or re-used it in our new Studio 1.0 codebase. Note that we did this using an updated technical stack and in a way that also leverages common components developed as part of Apicurio Registry.

However, this sword cuts multiple ways: we have preserved as much of the core functionality as possible in the time we had, we have added new functionality that didn’t exist before, but we have also needed to remove some functionality you might have been relying on.

What is being preserved in 1.0

The following functionality/features have been preserved in some capacity in the new Studio 1.0:

  • Core OpenAPI and AsyncAPI editing capabilities
  • Asynchronous collaboration (multiple users can edit the same spec, but not at the same time)
  • Editing history (although with less granularity)
  • Create designs from scratch or imported from file/URL
  • Create designs from template

What has been lost (for now)

The following features did not make it into the new Studio 1.0 reformulation (but may be restored/reimplemented in the future):

  • Importing reusable data types from other OpenAPI docs
  • Synchronous collaboration (multiple users editing the same spec at the same time)
  • Management of user-defined templates
  • Documentation Preview using ReDoc
  • User defined / configured validation profiles
  • Per-user multi-tenancy (all users can see all content for now)
  • GitHub/GitLab/Bitbucket publishing

What is new in 1.0

The fllowing features did not exist in 0.2 and are new and novel to 1.0:

  • Support for Avro, Protobuf, and JSON Schema types (simple text editing only)
  • Show Changes (diff) feature in the editor
  • Modern technical stack: Quarkus, React, Patternfly 5

Summary and Bottom Line

The main takeaway should be that we are finally getting a chance to put some focus back on Studio. I think in the short term we may be taking a step back in terms of functionality, but what we gain is the ability to better maintain and progress both of our main Apicurio projects: Studio and Registry.

This should allow us to once again make steady functional progress on Studio, fixing issues and implementing new features, in a way we haven’t been able to do for a few years.

I’m looking forward to it! Thanks for your interest, and very possibly your patience.