If you’re a Python developer, you’ve probably been the beneficiary of a tool called Rich
, maybe without even realizing it! Used to produce beautiful output in the terminal, Rich has become one of the most rapidly adopted open-source projects by elevating the user experience of thousands of terminal-based tools including Python’s own package manager, pip. Seemingly overnight, Rich and its companion Textual
have become the standard way to build and distribute extraordinary text-based user interfaces, or TUIs.
This success isn’t solely the consequence of beautiful design, though there’s plenty of that to be found. Rather, it’s the result of a real developer frustration — it’s hard to build terminal applications, especially reactive ones — meeting an approach to building software that emphasizes incremental adoption and ease of use. The result is a flourishing ecosystem of TUIs that have all incorporated Rich and Textual to varying degrees: some just to change the color of important text; others (like pip) to introduce informative progress bars; and some to create fully interactive UIs in the terminal. The true power of Rich and Textual isn’t merely that they make building a TUI possible; it’s that they actually make it easier to deploy a quality TUI than the clunky CLI you’d probably build otherwise. The projects have rapidly accumulated tens of thousands of GitHub stars as a testament to that ability.
For all these reasons, we were incredibly excited to meet Will McGugan
in 2021. Will is the author of Rich and Textual, and we were eager to discuss the success of his open-source work and compare notes on building positive developer communities. But we became even more energized when Will shared that his new company, Textualize
, was developing a technology that could take any TUI and instantly distribute it as a browser-based application. Textualize’s vision is to empower Python developers to publish TUIs with the same ease and flexibility that modern front-end developers enjoy.
This idea resonated deeply with us. Prefect makes automation software, and our mission is to eliminate negative engineering
, the often-frustrating litany of tasks that stand between developers and successfully getting their work into the world. Like Rich and Textual, our framework strives to be a good neighbor and prizes incremental adoption so that users can pick and choose only the parts that benefit them, rather than having to commit to an entire platform (you don’t even have to use our scheduler if you don’t want to!). The result is a huge ecosystem of developers applying Prefect to a variety of use cases well beyond anything we imagined ourselves. This diversity of code, applications, and environments means that we frequently encounter the challenge of distribution, or ensuring that code authored in one place can run successfully in another. “But it works on my machine” isn’t just a meme for us - it’s a legitimate support request! We strongly recognize the value of a system, like Textualize, that can not only embrace the tactical need to create positive user experiences but also promise to solve the more strategic issue of distributing software, especially to less technical users who might otherwise be unable to benefit from its power. But more than merely aligning with Prefect’s philosophy, Textualize actually solves a discrete problem with which we’ve been grappling.
Four years ago, Prefect pioneered the hybrid execution model
that separates our orchestration control plane from our users’ execution and data planes. The resulting security and privacy guarantees come at a minor cost, as users must manage a variety of terminal-bound agent processes that run on their own infrastructure. Interacting with agents therefore requires users to gain access to each individual process’s CLI, which isn't always easy to do and can be even more difficult to keep track of. We would prefer to expose this information in our centralized UI, but doing so in a traditional manner requires solving for certain security implications as well as introducing a significant development bottleneck as duplicative work would be performed in both the Prefect CLI and web UI. Even a minor feature like a new diagnostic metric would require a round trip through our entire product team.
Textualize’s technology represents an opportunity for the open-source Prefect team to focus entirely on a positive TUI experience, while simultaneously distributing the exact same interface to any authorized user of our web UI. We are extremely excited to partner on this: in the near future, we expect Prefect’s fleet of agents to become the single largest deployment of Textualize’s technology, turning every agent into a full-featured TUI that can be managed either locally or through the Prefect UI. Python developers will be able to add rich metrics and diagnostics that will immediately become available to all users, even those that are completely removed from agents or related infrastructure and only interact with workflows through the Prefect UI. Being able to scale instantly from a local experience to a global one is part of what makes us so excited about modern software tools, and Textualize represents a very exciting approach to the problem.
The incredible power of Will’s vision and the opportunity to directly impact Prefect’s own objectives are why we decided to do more than just partner with Textualize and made one of Prefect’s largest direct investments to date by participating substantially in the company’s seed round. We are delighted to back Will and his team, to share all of Prefect’s own lessons in building a successful commercial open-source business, and to directly distribute Textualize’s amazing technology to our own users.
This investment is part of a larger Prefect effort to support open-source software more broadly. Every modern company is reliant on OSS and we believe that for open-source communities to continue thriving, companies must incorporate OSS into their strategic vision. This means more than just open-sourcing product code. Direct investments into OSS companies like Textualize and donations to projects without their own financial sponsor are critical to the success of the ecosystem.
Just as we give our teams budgets for purchasing SaaS software, we are proud to share that every one of Prefect’s engineering teams receives a $10,000 annual budget for open-source sponsorships. Each team can allocate those funds to any projects or contributors that they feel are making a positive impact on the technical community. As of this writing, this program has enabled $50,000 of incremental investment into open source efforts, all led by engineers, for engineers. Some of the sponsorships we’ve made to date include the amazing Material Theme for MkDocs
, which we use for our own documentation
, as well as multiple projects in the Vue ecosystem
. Together with Prefect’s own strategic investments in companies like Textualize, we hope that this program becomes a major supporter of the open-source communities on which so many of our companies depend.
And speaking of open-source communities, if you’re hosting a meetup on any open-source topic, the Prefect Pizza Patrol
will provide food for all of your attendees! When we say we want to eliminate negative engineering, we mean all
forms: from writing code to coordinating dinner for hungry developers.
Happy engineering, coming soon to a TUI near you!