https://www.willmcgugan.com/blog/tech/post/doing-open-source-full-time/ Toggle navigation Will McGugan * Personal * Photography * Tech (current) * About [ ] September 29, 2021 will Why I'm working on Open Source full time Rich Textual open-source python Existential dread kicking in * Pretty printing JSON with Rich Why I'm working on Open Source full time I recently came to a decision which will have a big impact on my open source work. In particular Rich and Textual, but also pyfilesystem and lomond. For the foreseeable future, possibly up to a year, I'll be working on them essentially full time. Rich is a very popular project now, with over 29K stars on Github. It has near 100% coverage and a stable API, but no codebase is ever really finished so there will be on-going work. Textual is Rich's sister project which is brand new and under active development, but already has 4.8K stars. It is also a much larger project than Rich. To do Textual justice I'm going to need to put in some serious time over and above what I could realistically do for a hobby project. [5d0d8fc0-2109-11ec-943f-f23c91845b44png] (c) 2021 Will McGugan Some of the applications in the Textual examples directory The end-goal with Textual is to make it the best way to create applications in the terminal (with Python or any other language). I want to do this by borrowing the best techniques from the web world which have been the intense focus of development for over a decade, but have rarely been applied to the terminal. I would also like to push the boundaries of what you would typically imagine a terminal application to be capable of. Terminals these days use video-game technology to support 16.7 million colors and can push updates at 60 frames per second or higher. I want to see what we can build if we allow ourselves to dip in to that power. As much as I love flashy effects in the terminal, my main motivation with Textual is to make it easier to build Text User Interfaces (TUIs). The lowest common denominator for a (human) interface would be a command line interface. Python is not short of ways of adding a CLI (I like Typer), but what if it was at least as easy (or easier) to build a TUI? Maybe apps would be TUI first, or have --tui switch if you want a more discoverable way of working with an application. In addition to working on Rich and Textual, I would also like to contribute to open source in other ways. One way is to offer code reviews to open source projects, with a particular focus on API design. Additionally, since my time will be my own I can contribute PRs to other projects, which I am looking forward to doing! While I'm doing this I will have no income. Now I'm too old and too risk averse to do this without having put some savings aside, but I am hoping to delay the inevitable return to a day job with Github Sponsors. I signed up a while ago and had been donating it to Bowel Cancer UK, but now it could help me pay some bills. If any of my work has made your life easier, or you want to support development of Rich and Textual, consider sponsoring me. Full disclosure though, my motivation for this is more mutual than selfless. I think that there are commercial applications of Textual down the line, which may become a business. Textual itself will of course always be free and open source forever. If you would like to follow my progress on Textual (I post regular updates), follow @willmcgugan on Twitter. Before I go, here are a couple of recent updates to Textual: Update 9 This examples demonstrates the easing functions borrowed from CSS. Update 8 This example shows a tree control linked to a scroll view containing syntax highlighted code. * Comment * Preview [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] Use Markdown for formatting *Italic* **Bold** `inline code` Links to [Google](http://www.google.com) > This is a quote > ```python import this ``` your comment will be previewed here [Comment] gravatar pj -- You might set up a patreon or liberapay to make it easier to pull in monetary contributions from willing contributors. Reply to pj * Reply * Preview [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] Use Markdown for formatting *Italic* **Bold** `inline code` Links to [Google](http://www.google.com) > This is a quote > ```python import this ``` your comment will be previewed here [Comment] Cancel RELATED POST -- 4 months ago Introducing Textual RELATED POST -- 1 month ago Pretty printing JSON with Rich RELATED POST -- 8 months ago Building Rich terminal dashboards RELATED POST -- 9 months ago Rendering a tree view in the terminal with Python and Rich RELATED POST -- 1 year ago A prettier Python REPL with Rich RELATED POST -- 1 year ago Richer Django logging (c) 2015 Will McGugan Sign In A Moya Techblog