16 ms·
Show HN: Dropbase – Build internal web apps with just Python
Hey HN, I’m Jimmy, co-founder of Dropbase (https://www.dropbase.io https://www.dropbase.io). We are an internal tools builder for Python developers. All you have to do is import any Python scripts/libraries, declare UI components, and layer app permissions so you can share them with others.
We’re a middle ground between Airplane and Retool—simpler UI creation than Airplane, more code-centered than Retool. UI building is declarative and you can bind Python scripts/functions to UI components. You can write Python scripts/functions using our App Studio with support from a Python Language Server Protocol (LSP) for linting. Since the self-hosted worker directly references .py or .sql files in the filesystem, you can even write them on VSCode directly or import any other Python script or library.
Our app layout is highly opinionated to speed up app building. Instead of an open canvas for UI building, we just give you a main table view and a widget sidebar. This approach significantly reduces app-building time while still covering what most tools need: see some data and take actions based on it. It’s not flexible enough to do absolutely anything, but that’s the point—there’s a tradeoff between flexibility and speed. Dropbase gives you most of what you need, plus speed!
A neat feature we are experimenting with to build admin panels fast is “Smart Tables”. We convert any SQL SELECT statement (even across multiple joins and filters) into an inline editable table, like spreadsheets, without any additional code.
We have a hybrid hosting model that combines a self-hosted client and a worker server, with a backend API for app/component definitions hosted by us to simplify pushing feature updates. The worker server sits in your machines so your sensitive data doesn’t leave your infra.
We’re Python-centric for now, but plan to add support for Rust, Go, and others later.
We made a few demo videos building common tools:
- Customer approval tool: https://youtu.be/A1MIIRNkv3Q https://youtu.be/A1MIIRNkv3Q
- Data editing tool (with Smart Table): https://youtu.be/R1cHO9lMRXo https://youtu.be/R1cHO9lMRXo
To try Dropbase, create an account at https://app.dropbase.io https://app.dropbase.io and generate a token, then follow these instructions for local setup: https://docs.dropbase.io/setup/developer https://docs.dropbase.io/setup/developer.
We are very early so we're really excited to get your feedback, especially on our approach to tools building with Python! My co-founder Ayazhan and some of our teammates will be around to answer questions.
- joshstrange 3y agoI'd love a TypeScript/NodeJS version of this, this looks really neat but I prefer TypeScript over Python.
- cdchn 3y agoYou've got plenty of options for writing web frontends in TypeScript/NodeJS. Like, ALL OF THEM.
- devjab 3y agoI really like Typescript, but this is a really weird thing to say in relation to building web-apps in a single language considering that is one of the primary reasons to pick Typescript as a language. It’s not the only reason, but if Python, Go or whatever you love had the ability to do with the web what Typescript already does, then I’m pretty sure we wouldn’t be working with Typescript, and I actually consider Typescript to be one of the best modern languages. But really, Python or Go would probably take over the world if they had the same capabilities for dom manipulation.
- blandry 3y agoLooks 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.
- ayazhan 3y agoNiceGUI looks interesting, reminds me of reflex.dev a little bit. what kind of apps are you building with it?
- blandry 3y agoI 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.