Whilst both Stainless and Speakeasy ended up with a very different configuration paradigm, they can generate very similar code once the configuration is migrated from Stainless-form (stainless.yml) to Speakeasy-form (OpenAPI Overlays). This process is not entirely deterministic, but a good few prompts into a coding agent can do the vast bulk of the work.
We've already been working with a few companies to:
1. Do a seamless migration where we apply a few custom code patches to tighten the delta between the generated code to the point that this becomes as close to a backwards compatible a change as feasible.
2. Re-build workflow configuration from the Stainless paradigm (cloud based) to the Speakeasy paradigm (CLI/GitHub Action based) so this is extremely hands-off.
My experience was very similar: I built an application using a GraphQL schema file that powered AppSync templated VTL/DynamoDB tables, as well as automatically generating GraphQL operations/types. When I cleaned up the application's template for reuse, I erroneously decided to try out Yarn 3/Lerna/PnP, and then lost an embarrassingly long time to make it work.
Each [1] tool [2] seemed [3] to break differently, and needed some form of manual massaging to make it work. That manual massaging meant learning a new configuration file syntax, multiple times.
When it worked, it felt magical. Weaving together an entire web app, powered by a small bit of GraphQL schema [4] means building at a high level of abstraction (hence can be very productive). The only issue is the muddy forest of the NPM ecosystem you're surrounded by: any step towards upgrading your external dependencies seems to cost far more time than promised.
[2] Getting TypeScript to work cleanly both in an IDE (IntelliJ) and when imported across backend/frontend packages was really cumbersome: I ended up just emitting .gitignored JS files next to their associated TS.
[3] Whispering into the IDE to make it understand GraphQL required learning the .graphqlconfig syntax, and fine-tuning it.
Whilst both Stainless and Speakeasy ended up with a very different configuration paradigm, they can generate very similar code once the configuration is migrated from Stainless-form (stainless.yml) to Speakeasy-form (OpenAPI Overlays). This process is not entirely deterministic, but a good few prompts into a coding agent can do the vast bulk of the work.
We've already been working with a few companies to:
Source: I work at Speakeasy.
2. There are a lot of OSS SDK generators -- this one is probably the biggest aggregator https://openapi.tools/categories/sdk-generators