One Work Week Later...
Created a rudimentary Python app and a single SQLite table for transactions.Abandoned said Python solution in favor of a JS one that plays better with the Google Sheet I'm using for a datastore.- Abandoned said JS solution in favor of using Astro for my preferred JS solution.
- Deployed to Cloudflare Workers to run the site. It's cheap (free, so far), fast, and easy to use. How could I resist?!
- Successfully implemented CRUD operations to manage recent transactions on a mobile site.
- This included the unorthodox step of creating an id for each row in Google Sheets to allow me to perform deletes and updates sanely. Creating an id is surprisingly non-trivial, and requires writing a few functions in the sheet's App Script extension. However, once it's done, it can be reused anywhere Sheets needs a unique ID.
- Created a Budget tab to show my running total of categorized expenses for both the month and the year.
- Added login capabilities for Google accounts.
- Performed a site redesign to go from this:
![]() |
| It ain't easy being old school green |
![]() |
| This app is going to be a hit on St. Paddy's Day |
- Migrated the data store to a SQLite database for funsies.
- Fixed most of the bugs.
My tech stack was as simple as I could potentially make it:
- Google Sheets/SQLite as my datastore.
- Cloudflare Workers as my server-side provider (I'm running my SQL database off their D1 solution).
- Astro as my front-end framework with heavy reliance on Tailwind CSS and Alpine.js (I used Alpine instead of _hyperscript because the documentation is a bit more mature and usage is greater, making it easier to search for solutions, though I still appreciate both of them for their simplicity over heavier JS frameworks).
- Windsurf for my code completion LLM and Gemini as my design/architect LLM. I'd say, on balance, they get a solid C+/B- for the work they did. If I didn't know my way around software, they would've created a dumpster fire. But my software engineering experience, coupled with the tools' mostly reliable output, allowed me to hit the 50-hour mark I'm so proud of.
- Gemini in particular was able to lead me through the nuances of implementing serverless functions in Cloudflare, helping me implement server-side rendering in Astro, and style my oh-so-green-it-looked-like-a-Leprechaun-barfed design with some modern flourish.
- But if I didn't have experience with LLMs, I wouldn't have known that they have a tendency to lie and would've fallen much further down a lot of rabbit holes. Gemini did nothing to warn me that googleapis, the access API for sheets was a bloated behemoth until I tried to deploy everything on Cloudflare. Then it smugly informed me I shouldn't have used it with a lightweight installation like Cloudflare, even though it recommended the library. That was nearly a good day's worth of effort that could've been cleared up 4 hours earlier, if it just told me to use the REST calls instead of the language specific API.
- Still, as much I'd like to think my efficiency on this app was solely due to my awesome Product, design, and coding abilities, the LLMs did help me out a lot - as long as I was consistently willing to check their work and do the research to ensure I understood every line they spit out.
That's a lot of functionality for a long week's worth of work (if you think a 50-hour work week isn't long, please feel my eyes rolling as you talk about your epic work ethic. Go find a hobby and enjoy yourself!). But there's still a lot I left out, much of it around reliability and scaling. We'll take aim at my follies in the following post.
Until next time, my human and robot friends.



Comments
Post a Comment