Looks cool! I think there is a huge need for tools like this, especially as AI turns more subject matter experts into programmers who can code a bit of python.
At my company we have recently started using NiceGUI which is a python wrapper for quasars+tailwind and seems like a very similar product. I’ve found it has a great level of abstraction that enables you to do Python only web App development without too much magic, but also lets you sprinkle in some CSS and javascript if needed.
> as AI turns more subject matter experts into programmers who can code a bit of python
I also think there's a good number of people who have basic Python skills coming from data analytics and data science backgrounds, who might not be doing hardcore ML research but who nonetheless want to build simple web apps. One of our hypotheses is that our product would be a good fit for them.
I work on a Bioinformatics team, so we are a bunch of programmers, but not fully-fledged software engineers. We know Python well but have no front-end experience.
Some examples:
- Another non-technical team needs to know if our test covers specific genetic variants. The code to answer this is 10 lines of Python + a 100 line CSV. We can solve this with a CLI on our local computers but to serve it to the other team was a huge blocker until we started using NiceGUI. Now its 10 lines of Python + 10 more lines of NiceGUI Python and they have a website to go to so they can self-serve the answer to that question. All done in a 2-4 hours.
- More complicated, we have a workflow where we want to select data from a database via a series of filters, run some automated algorithms on it to generate new data, denormalize and view the data, manipulate it using an Excel-like interface, and then update the database with the edits that were made. NiceGUI + their AG Grid integration let me build an application that has all the great GUI features of Excel when it comes to grid-based data manipulation but is fully programmable with 99% Python (and like 1% JavaScript).
- I also built a data hub that integrates and displays data from a bunch of our different data sources and displays it based on some queries. If I can write a tool in Python to do something, I can now easily deploy an internal app that does that too, without knowing any front-end code. It even has the flexibility that when needed I could dive into a bit of HTML with the help of ChatGPT to embed iframes of PDF files getting served directly from S3 links.
The great thing is that this is all done in Python, all version controlled in the same repo as the rest of our codebase, uses open source software, and can be deployed easily within our VPC using terraform+docker. So it's a very maintainable dev ops experience compared to most other no-code/low-code tools, while at the same time enabling people who have programming (but not really engineering) experience and are subject matter experts in other areas to build fairly complex and customized GUIs.
It's also using FastAPI under the hood so you can implement some things at that layer as well. I know that's how they suggest implementing Auth, but I haven't dabbled with that as well.
these are great examples, thanks for sharing! the second one is particularly interesting. python seems like a perfect fit for that use case.
are there any limitations you encounter with NiceGUI? do you need a user permission feature or does each user get admin access? can you see it scaling up easily?
Auth is a big limitation. It's not a built-in component, they have an example [1] using the FastAPI layer for auth, but I haven't had the time to try implementing it. It's definitely not something you get out of the box with NiceGUI.
For scaling, I am viewing it mostly as an internal tool builder. I wouldn't recommend it for external applications. So as far as scaling an internal app I think it works fine. Their website [2] is built with NiceGUI, and it works fine, but you can feel the lag occasionally on some of their larger demo pages.
At my company we have recently started using NiceGUI which is a python wrapper for quasars+tailwind and seems like a very similar product. I’ve found it has a great level of abstraction that enables you to do Python only web App development without too much magic, but also lets you sprinkle in some CSS and javascript if needed.