433 karma · joined November 20, 2013
Why did you choose markdown? Did you try other output formats and see if you get better results?
Also, I wonder how HMTL performs. It would be a way to handle tables with groupings/merged cells
I'm curious about what audience you have in mind and what kind of apps would you be interested in building this way? Would love to hear more of your thoughts!
Edit: I should add that our main motivation for integrating GPT is that we had to introduce some new concepts to make this experience work, which increased the app-building learning curve. We thought having GPT generate code and highlighting diffs would be a neat way to teach users how to develop apps without reading a lot of documentation.
In our case, we regenerate the `main.py` file each time. One of the hacks we did was to start with boilerplate code, which is why you see it modifying the code as opposed to generating from scratch the first time. We also feed the model with some context/rules on app building using our web framework, so the output is more bounded.
We haven’t tested it on really big files yet, though I'd imagine it could be a problem later. At the moment, we don’t generate HTML, JS/TS, or React code from scratch so our files tend to be relatively smaller than if we did. Our UI is defined via the `properties.json` file, which abstracts much of the underlying code, therefore keeping the files small. It’s much easier for LLMs to generate json and map it to UI behavior, than generate of the client code needed to do all of it.
We don’t have issues with the LLMs changing function/method code, but it occasionally implements one of boilerplate methods we didn’t explicitly ask for. In those cases, a developer has to remove that code manually, which is why showing code diff is critical.
Many other hacks come down to lots of prompt engineering! Something along the lines of "Only implement or modify a method/function corresponding to a user's prompt. Leave all others intact"
Happy to chat more!
Also you might find this blog post we wrote interesting: https://www.dropbase.io/post/an-internal-tools-builder-that-...
We are an internal tools builder that works with your existing Python codebase, in the same repo as your core app. You can call/use your exiting Django models from Dropbase UI components, and build fullstack internal tools with just Python.
For context, we're a more niche cousin to Reflex that's specifically designed to build internal tools. Reflex seems to be a more general framework to build anything you want; quite powerful, and possibly an easier to use Django replacement.
It's awesome to see frameworks like Reflex. I think the Python ecosystem needs this.
Curious, how do you organize or keep track of all your scripts? I assume you have them easily accessible so you can trigger them quickly?
Cofounder of Dropbase here. We build similar tools to Airplane.
I’m surprised to hear the news. I’ve always been impressed with the product/team and we share the same vision for a more developer-centric product.
We imagine it must be a bummer to have to migrate so suddenly. We want to help in a way that’s actually meaningful.
Reach out to airplane@dropbase.io
Additional info:
- Our latest Show HN for context on the product: https://news.ycombinator.com/item?id=38534920
- Our tech stack: Python, Typescript/Javascript, React, AWS, FastAPI, Postgres, Pandas
- Other tools: Stripe, HubSpot, Slack, Snowflake, OpenAPI. We have experience with other app builders and we pick things up fast
The other reason is that internally we've always thought that we'd eventually gravitate to an open model when the time is right i.e. at least until after we've figured out the product.
PS. CRUDy sounds like a fun and quite literal name for an app builder!
The self-hosted client talks to the self-hosted worker, the latter which is the server responsible for querying and processing your data, and storing your creds. So basically your sensitive corporate data flows from your self-hosted worker directly to your self-hosted client. There's no funny business in between. Only the worker can initiate calls to our backend API (not the other way around), and you can easily inspect our network requests and payloads. We do store app metadata, UI properties, and the names of the columns you configure in your tables. The worker sends periodic health checks to our backend. Hope that clears things up!
If you're saying it's ok to post a Github link to a non-open source project, but just not as the main URL, I'd understand, but I still feel that in our specific case, the Github link is the least friction path to set up for self-hosting. I think a developer who goes to a marketing site and doesn't easily find way to setup/self-host would be more frustrated.