I’ve been leveraging my little clock project as a testing ground for GitHub’s Copilot. Developing a more fine tuned workflow, learning the gaps and just overall having a blast ‘vibe-coding’ the hell out of it.
Let’s be very real, A.I. driven web development is here, and likely here for good. I won’t get into all the various arguments for/against it or try to rage bait either side. This is simply how I’m using it right now to make building websites fun again.
Web development has been broken for some time for me
We’ve scaled the hell out of everything. New frameworks, complex compliers, linting for every last space; the scaffolding involved in starting even the smallest project has ballooned to the point that it simply was not fun any more for me to build projects outside of work. A.I. very quickly has changed things. With a single prompt all of the scaffolding is created and the boring tedious junk is managed. I can focus on the things that excite me. New feature idea in the middle of the night? Create a GitHub Issue, assign it to copilot and wake up to the PR ready for review in the morning. Test it and ship while drinking my coffee.
Vibe-coding quickly became my ‘go-to’ for this project and while that has allowed it to improve at a pace that I’m very much loving, what I learnt right away was:
I’m just as bad as my clients when it comes to describing requirements
A.I.’s output is directly related to the quality of input. It seems brutally silly to have to write that but truthfully I immediately took the speed at which new features/improvements could be developed, I found myself wrestling with the output. Then I took a step back and asked myself why. My basic one line prompts or vague requests reminded me exactly like some of the emails I’ve received from clients “Just make the logo bigger”. WTF are they/was I expecting? The same way it feels like clients expect us to be mind-readers, I was expecting CoPilot to “just know” what I meant.
So I adjusted my workflow.
I began looking at the project as if I was in fact the client. Gemini became my Business Analyst, I talk through ideas, ask general questions to help build requirements and then have it provide me with clear User Stories that I then pass into GitHub as Issues. Once the issue is ready I assign to Copilot and sit back to enjoy the show.
Brainstorm with Gemini -> Generate User Story -> Assign to Copilot
So what updates have I really been able to achieve? A ton truthfully. This project went from a clunky Angular project, hosted on GCP to a vanilla JS static site hosted on GitHub Pages. The UI went from basic to modern (imo). Hundreds of quotes have been added, links to each book have been generated and four new ‘screens’ have been started. The site now respects light/dark mode and is ‘theme-able’ by use of css variables. There is clear documentation and processes in place for updates and actions setup for deployments.
All of the above I certainly could have built myself, but most of which I absolutely would never have bothered with. Aside from the UI improvements most of the updates so far have been tedious and boring changes that while important would simply have felt like work. I damn sure don’t want to ‘work’ on my free time anymore.
Where are things going?
Fuck if I know buddy. Truthfully, we have to just ride this one out. Find ways to make A.I. work for you, improve your processes, tackle the boring shit. Build those silly projects you’ve been putting off, learn better ways to ask for what you want and think critically about every output.
The details:
Let’s get into it! Over the course of a week I’ve completely overhauled the UI.
- There are now three additional “screens”:
- Weekday – literary quotes based on the day of the week
- Date – literary quotes based on current date
- Month – literary quotes based on the month
- The site is now a full on Progressive Web App (PWA). With swipe functionality and light/dark modes respectful of the user’s settings
- Books now link to biblio.com for appropriate credit where possible
All in all there have been 46+ pull requests and over 60 deployments. Things have moved faster than ever!
The repo is currently open to the public, follow along as I keep vibe-coding the heck out of it! https://github.com/bythegram/Literary-Clock
Cheers!
