My favourite Textual demo at the moment is this one: <a href="https://github.com/1j01/textual-paint">https://github.com/1j01/textual-paint</a><p>It's a very decent Microsoft Paint imitation that runs in your terminal!
I am working on a new python project and one of the first things I added was <a href="https://github.com/Textualize/rich">https://github.com/Textualize/rich</a> because of how easy it is to make things look good in the terminal.
This looks really cool.<p>In the past I used lanterna (<a href="https://github.com/mabe02/lanterna/tree/master">https://github.com/mabe02/lanterna/tree/master</a>) to develop a text UI for a critical process at the trading firm I worked at. It was essentially a process that would take updated market data and handle things that changed between the last trading session and today - like symbol renames (PCLN to BKNG), changes to market cap that make it change what "category" it fell into (they were based on market cap and volatility measures etc). Things of that nature, that the realtime system didn't handle but happened too often or were too hairy for us to just handle manually.<p>The system had a desktop UI component that was oriented towards use by our trading staff. We didn't really have notion of a "server UI" and the server was headless.<p>Nobody at our firm was a frontend developer, just backend, systems and data programmers who occasionally dabbled in frontend. So web UIs were very simplistic or highly specific to their use-case, we had no shared tooling.<p>In 2023 with things like create-react-app and whatever next.js does, I probably would've opted for one of those. I could've made another desktop app but I wanted to be able to easily get to this from a shitty ssh connection over tethered 4g when I was on-call. So X11 forwarding and RDP were out. So i looked around for a TUI-builder in the project's language, Java.<p>What i really liked about Lanterna was that it had a Swing-based implementation which meant I could easily run it from IntelliJ, and that would let me iterate rapidly, and then in production I could run it in a terminal via SSH directly on the machine the server was on (which had certain advantages).<p>I'll keep an eye on this to see if I can think of anything neat to build on it. I still generally don't like web apps because they feel like they take a lot of effort to get something compared to a functionally-equivalent product built in something non-browser-based like a TUI or desktop GUI.
Unfortunately, the "Rapid Application Development" thing also seems to apply to the library itself: you get a new release every other week, and stuff breaks in somewhat unpredictable places. So it's easy to prototype something with Textual, but hard to maintain it afterwards.
Looks amazing! Not a seasoned Python developer, so I ask how easy it is to build a binary from this without any (major) dependencies?<p>I’m looking for something that helps me build installation packages of my product for Windows and Linux. There are a set of configurations that must be done before and after my customers install my software - write to INI files, check db connection, check http servers and so on.
This looks great. I just finished an internal devops and change control app using unicurses and python and although it works, it will not scale well. Initially, I tried doing TK and QT but they both have their quirks with initial installation. My experience with QT is that its works well but useful documentation is sparse.<p>I'll definitely be giving textual a try as it fits my requirement space perfectly.
Did a cursory dive through, check: <a href="https://textual.textualize.io/tutorial/" rel="nofollow noreferrer">https://textual.textualize.io/tutorial/</a> and <a href="https://github.com/Textualize/textual/blob/main/docs/examples/tutorial/stopwatch.py">https://github.com/Textualize/textual/blob/main/docs/example...</a><p>...what have people had success with in golang-world? Anything reasonably equivalent someone could recommend? There's a fair amount of "stuff" for TUI's in golang, the thing that's very attractive about 'textualize' is it feels very "web-browser-y" and has a nice (scrollable!) table view.<p>`tview` seems interesting (eg: check `brew install dbui`), but feels a bit more like _you're_ doing all the imperative `if KeyPress.A: do_something()` instead of declarative, nesting navigation, etc. (perhaps that's the difference between an "application-centric/SPA" view of "control all the things!" vs. a document centric: "add components to a page and let them flow").<p>Any feedback on the items in this list? <a href="https://codeberg.org/tecras/awesome-go#advanced-console-uis" rel="nofollow noreferrer">https://codeberg.org/tecras/awesome-go#advanced-console-uis</a>
Question: How do projects like these sustain themselves? This project is being developed from 2 years and I see no sources of revenue. Do the developers get any form of compensation for creating this?
I was looking for a python graphical interface library and came across this, I came to the conclusion that it is way too resource greedy and anything you build with it will be heavy.
I would love to find a way to get some sort of emulation layer to get Textual apps running in the browser. Does anyone know of any projects that might aid in this silly goal?
This looks very cool.<p>For the web browser version which is coming soon, will the “DirectoryTree” feature be supported? Any idea when the web view will be in beta/launch?
After a few decades of developing applications, I am convinced that frameworks are the wrong approach.<p>You gain development speed in the beginning, but you lose it later on when the framework introduces breaking changes and you have to keep working around a changing stack. Or the framework gets abandoned and it would be too much work to maintain it. Because it has so much bells and whistles you don't need. This one for example contains 1298 files without dependencies.<p>Both, coding everything yourself or using lean libraries are better. There are very few lean libraries unfortunately. Keeping code elegant and simple is a rare skill.<p>When there is a lean, well done library for my use case, I use it. Because if shit hits the fan, I can maintain the library myself.
I tried this a while back but was put off by the fake "css".<p>They say "The dialect of CSS used in Textual is greatly simplified over web based CSS and much easier to learn." But I immediately ran into issues trying to use css that I'm familiar with (and it wasn’t even fancy). They should have called it something else and used different syntax.
Rapid application development is probably the wrong description. That’s already used by systems that have UI builders and code integrated, like Delphi etc and early systems like VB.<p>I went looking for such a thing in this project and only found examples in Python scripts.
I know textualize/rich are HN darling projects, but do we really want full-color mouse driven gui applications full with superfluous animations in our terminals?
They say they support typing but I was weary as soon as they had a class field which defined actions. Python severely disappoints in its type system when compared to flow or typescript which are turning complete.