Todayโs experiment was taking the Google Sheets/App Script and Google Cloud Run solution Iโd already built and seeing how far I could push it into a fuller web app using ๐๐ผ๐ผ๐ด๐น๐ฒ ๐๐ ๐ฆ๐๐๐ฑ๐ถ๐ผ ๐๐๐ถ๐น๐ฑ (and of course learn about ๐๐๐ถ๐น๐ฑ in the process. I started by having Gemini create a PRD from the Clou Run version (with HTML and Vision scan fall back), and used that in AI Studio to generate a more complete app. ๐ง๐ต๐ฒ๐ป ๐ฐ๐ฎ๐บ๐ฒ ๐๐ต๐ฒ ๐ฑ๐ฒ๐ฏ๐๐ด๐ด๐ถ๐ป๐ด. Spent time letting the agent try to fix the APIFlash usage itself - I gave up waiting after 3 attempts and gave it a working example - was fine after that. One feature I did like: when running the code in Studio, it caught an error and offered a ๐๐ถ๐ button. That was cool. Next was a Google Gemini API key problem. Interestingly, it responded by adding more logging to expose the underlying error, which was a sensible approach. It looked like secret handling was the issue, so I suggested it work around it by creating a new variable and pasting the key directly. Not as elegant as selecting a project and a secret, but effective. GMail integration needed a few more pieces: extra keys, a Google OAuth 2 Web App, callback URLs, and a new Client ID and Client Secret. The most persistent issue was the app not reliably recognising that I had already connected my Google account. After several attempts, I asked for more logging so I could inspect console messages in Chrome. That led me into watching cookies and session IDs in F12, which felt a bit less ๐ญ๐ฐ๐ธ-๐ค๐ฐ๐ฅ๐ฆ/๐ฏ๐ฐ-๐ค๐ฐ๐ฅ๐ฆ than advertised. In the end, It was eventually fixed and the account connection flow worked much like the Google Sheets version. ๐ฅ๐ฒ๐๐๐น๐: a working basic web app for website scanning and email drafting with a reasonable GUI rather than a batch job or App Script (screenshots attached). One other observation: the app initially used Vision to scan the test site. It did reasonably well, but not as accurately as an HTML scan. Since Vision was only meant as a fallback, I switched to HTML scan with Vision fallback - and that worked a treat. All in all, about 3 hours to get to a working app. A few reflections: โข ๐๐ผ๐ผ๐ด๐น๐ฒ ๐ฆ๐ต๐ฒ๐ฒ๐๐ + ๐๐ฝ๐ฝ ๐ฆ๐ฐ๐ฟ๐ถ๐ฝ๐ was the easiest, but limited by the 6-minute runtime. โข ๐๐ผ๐ผ๐ด๐น๐ฒ ๐๐น๐ผ๐๐ฑ ๐ฅ๐๐ป batch job was simple and robust running in the background. โข ๐๐ผ๐ผ๐ด๐น๐ฒ ๐๐ ๐ฆ๐๐๐ฑ๐ถ๐ผ ๐๐๐ถ๐น๐ฑ gave the nicest UI, but also the most complexity - which makes sense with a React front end. ๐ง๐ผ๐ฑ๐ฎ๐โ๐ ๐๐ฎ๐ธ๐ฒ๐ฎ๐๐ฎ๐๐: the shiny interface is great, but the complexity doesnโt disappear - it just moves around (surprise, surprise); also you still need architectural and technical awareness to do anything mildly complex.
All Insights
March 2026
Sunday Coffee & Code: From Google Sheets to a working web app in Google AI Studio
By Steve Harris
Want to Discuss This Topic?
Steve is always happy to have a direct conversation.
