Vibe coding a thin and reactive table-centric front-end in 2025
Vibe coding a small reactive app
I wrote a small app with a web reactive table front-end last week.
I am not experienced in web development. The last time I wrote a web stack from scratch was with a Java front-end! However I have led such projects as product owner, therefore I knew what I wanted, and decided to use Gemini Pro 2.5 to tell what I needed to know.
I am not experienced in web development. The last time I wrote a web stack from scratch was with a Java front-end! However I have led such projects as product owner, therefore I knew what I wanted, and decided to use Gemini Pro 2.5 to tell what I needed to know.
How easy?
The question that is answered here is: how easy it is to develop a app with tables where cell editing may trigger updates in other cells in a modern reactive lightweight web-front-end in Python using an LLM to guide you?The answer is: not easy, but with enough architectural knowledge, it works.
An iterative process
It took me four chat sessions, eleven main code iterations, with debugging iteration happening within each of these iterations.All libraries except for htmx were suggested by Gemini. htmx was my constraint. Below are the iterations driven by Gemini with regards to the choice of libraries (except for domonic, which I chose after Gemini hallucinated a bit). I drove the requirements, which I brought in incrementally as only now I know what works.
Each of these expresses the principal theme of the iteration, and the Python libraries used in the app:
- Simple HTML table editing
- flask
- Enable multi-window consistency
- flask, queue
- Fix multi-window consistency
- flask, queue, waitress
- More fixing multi-window consistency
- flask, redis, waitress
- Even more fixing multi-window consistency
- flask, redis, waitress, json
- With HTML generation proposal 1
- flask, redis, waitress, json, dominator
- With HTML generation proposal 2
- flask, redis, waitress, json, dominate
- With HTML generation
- flask, redis, waitress, json, domonic
- Use transcrypt to convert Python front-end to javascript
- flask, redis, waitress, json, domonic
- A more formal event streaming model
- flask, flask_socketio, eventlet, domonic, pydantic
- Explicit use of eventlet
- flask, flask_socketio, eventlet, eventlet.wsgi, domonic, pydantic
What learning?
Discounting the amount of time it took me (a few days), the whole experience was very good. Not only I learned how to build a decently sophisticated reactive web stack, I learned incrementally, and on the way learned why some approaches are better than others. That is important as solutions are fragile when you do not understand why they are built the way they are built.
All original content copyright James Litsios, 2025.