Skip to content

openapi-typescript in maintenance mode #2874

Description

@drwpow

Hello, just posting an update many of you suspected: openapi-typescript is in maintenance mode and won’t be getting any more updates. Please migrate to another project.

This will be a rather long post, so I’ll try and frontload the more practical bits:

  • Any more updates? Like, security patches, too?
    Yes—no updates. As of Sep 19, 2026 (this post), this project will not receive updates. Fortunately, this project has largely been handwritten and has little-to-no external code, so it’s not a deep dependency chain with constant vulnerabilities being discovered.
  • What does this mean for my project?
    Please use an alternative. In the future this may be updated with a recommendation, but I don’t want to carelessly recommend something yet without fully vetting it.
  • Can this project be passed off?
    No. The maintainers I’ve worked with on the project are unable to take over in full capacity, and I am no longer able to lead it. With the rise of shai-hulud attacks, I won’t hand off this project to someone I don’t trust completely. This project is a target and will continue to be, and halting updates is a much more preferable alternative to a widespread compromise.
  • Can we just pay more to fund it?
    Sadly, no, it’s a matter of time, not money.
  • What happens to the funding this project has taken in?
    TBD. All the funds are transparently-tracked in OpenCollective, so nothing is vanishing. The first step is just announcing the project’s end (this post), all subscriptions have been cancelled. The maintainers and I will decide on how to allocate the funds, which could be helping another project get started (keeping money in open source), refunding payments during periods of no maintenance, or something comparable. We’ll have updates at a future date on the decision.

Background

This project had its start back in 2018 with @enmand’s sage guidance, and was in many ways my first “real” open source project. It’s very near and dear to my heart, and I learned so much working on this over the years. What comes to mind:

  • If you have a problem, others do too. Simply sharing your work can have a bigger audience than you intended.
  • People care about quality, too. In the same vein, if there is a partial or wonky solution, making a better one is valuable.
  • Code generation is an underrated skill. Even in a world where agents are writing code, writing code that writes code is a skill too few engineers hone. It’s a huge stepping stone to working on bigger problems like compiling, transpilation, and even things like making your own DSL.
  • Boring problems are fertile ground for creativity. Let’s admit it—very few people are passionate and excited about API schema tooling. It’s a boring necessity. But when passion may not be in the core problem, it can be found instead in the method. Every major rewrite of openapi-typescript yielded benefits, but was also a creative exercise where I would try a new approach, and were a source of fulfillment for me.

And just putting out the basic idea, you all showed up. The level of contribution to a project this technical is some of the best work I’ve ever seen. The level of genius, expertise, and class constantly surprised me. This code is immaculate, thanks to @duncanbeevers, @kerwanp, @htunnicliff, @gr2m, @gzm0, @dnalborczyk, @phk422, and so many others. I’ve seen TypeScript pushed to its limits. We collectively huddled and found creative solutions to really (really) hard problems. And we came up with something so good it’s been used in GitHub, Netlify, Supabase, Fedora, The Company Formerly Known as Twitter and more.

After I left the company I started this at, I took it with me to the next one, and the next one, working on it on the side. Sometimes we were using OpenAPI for something, sometimes we weren’t. But either way, every contribution to this project from me came from something I learned from the company I was at. At Snyk, there were large Zoom calls with engineering demos each week, and it tickled me to see a dev I didn’t know showing off how they added openapi-typescript to the new API rewrite at the time, met with applause. I wasn’t mad at all I didn’t get credit in the moment—quite the opposite—it was surreal to see the impact of this project in everyday engineering.

In Aug 2024, openapi-typescript passed 1M downloads/day, Jan 2025 it was 2M/day, and I don’t even understand now it seems to be at 7M/day in Sep 2026!?!? I even have this commemorative email saved from npm:

Image

Again, this was not an accident—it was all from your high-quality work.

At the end of 2025, beginning of 2026, I’ve had some health issues combined with life events that have left me with diminishing time to contribute to open source outside my day job. The maintainers, prolific as they are, have also had changes over the years where they aren’t able to lead the project. As mentioned at the beginning, it’s not a matter of funding being able to buy more time. And for as involved as I’ve been in the open source community, I’ve never been in a position where I’m able to work on it full time (very very few are—much fewer than it may seem from an outside perspective).

So that’s the long and short of it—openapi-typescript is a longrunning project I didn’t want to drop, and it’s a hard decision I’ve wrestled with for almost a year, but it’s the only option available to take care of my health. The only thing I have to apologize for is the radio silence on the issues and PRs. I have gotten the notifications and pings, and the “what’s happening” questions, and I chose to not respond rather than reply “I don’t know,” or “I’ll get to it next month (lie),” or “I don’t have the time to review your PR (rude, unhelpful).” So hopefully this long post is an adequate reply to dozens of you asking.

Thanks for reading, thanks for being a part of this project, and thanks for making open source possible, and making it a warm community of super smart people. You all are the best (yes, you!). 💙

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions