Vibe coding: Time Zone Clock

Published: (January 10, 2026 at 08:15 PM EST)
6 min read
Source: Dev.to

Source: Dev.to

GitHub Repository

Introduction

Hi! This is my first blog post about anything computer‑science‑related since my college days, and it’s something I’ve wanted to do for a while. Thanks for tuning in!

My goal with this blog is to:

  • Document my projects.
  • Remind myself that you can reach the end goal without following a beaded (i.e., prescribed) path.

My use cases, workflow, code, implementation, etc., may not be perfect, but nothing ever is. I just want to prove that I can start and finish a project, look back years later, and not second‑guess my work. I want to remember where I started and how far I’ve come.

The Spark: Vibe Coding

Vibe coding caught my eye early in 2025. Coming from someone who doesn’t code regularly, the idea that an LLM can write code for you and speed up workflows was fascinating. Below is a bit of context on where the idea for this project originated.

Homelabbing Background

  • I installed Proxmox on a Dell Latitude and have been tinkering with it for practical projects.
  • I have an older Raspberry Pi 3 B+ housed in a Retroflag‑NESPI case that originally ran RetroPie for retro gaming.
  • After acquiring a Steam Deck, the Pi was stored away for a future project.

In 2019 I bought a Raspberry Pi 7‑inch touchscreen monitor to use as a music player/temperature reader on my main desktop. It worked fine until early 2025, when I upgraded to a larger monitor and put the Pi and screen in a drawer.

The Idea Takes Shape

At the end of 2025 I was digging through that drawer, found the Pi and touchscreen, and thought, “What am I going to do with this thing?”

I didn’t want to throw it away, so I looked for a practical use.

During a previous SaaS remote job I supported users with medical documentation, handling login issues, account management, database changes, etc. We served users across the United States, and knowing each user’s time zone was crucial.

Being on the East Coast, I could mentally count backwards in one‑hour increments to get CST, MST, and PST, but a clock on my desk showing multiple time zones would have been much faster. I also wanted a way to view the times without relying on a widget on my computer.

That convenience inspired the Time‑Zone Clock concept.

Planning the Implementation

  1. Lightweight & Simple – I wanted an open‑source tool that could run as a desktop executable.
  2. Hardware – Raspberry Pi OS (lightweight, designed for Pi) would be the OS; at worst I could fall back to Ubuntu.
  3. Durability – The device should power on/off reliably without the OS breaking.

I decided to use an LLM to vibe code the project and see how close I could get to a finished product.

Choosing the LLM

  • ChatGPT was my first LLM to explore.
  • I could have tried other models, but I wanted to avoid the overhead of learning a new system, so I stuck with ChatGPT.

First Prompt & Tool Selection

My initial prompt to ChatGPT was:

“I need help turning a raspberry pi 3 b+ into a clock that displays three different time zones at once. The Pi will be housed in a 7‑inch touchscreen display. Help me find ideas or free open‑source tools to install on it. Note that I have Raspberry Pi OS installed on the device.”

ChatGPT understood the hardware constraints and suggested Tkinter (Python’s standard GUI library). The benefits:

  • Lightweight, no web stack required.
  • Runs fast, no browser or network dependency.
  • Highly customizable (e.g., night mode).

ChatGPT even generated a mock‑up image of the envisioned UI, which I liked.

Getting the First Script

ChatGPT provided a Python script that:

  1. Installs Python 3 and Tkinter.
  2. Displays the three time zones.

I was excited but also noticed a few small details that ChatGPT added on its own, prompting me to rethink parts of the implementation. This is a typical vibe‑coding lesson: don’t assume the LLM’s output is final—you still need to review and adjust.

What’s Next?

From here I will:

  • Refine the script (adjust layout, add night mode, handle daylight‑saving changes).
  • Package the app as a standalone executable for easy launch on the Pi.
  • Document the full setup process (installing dependencies, configuring the touchscreen, etc.).

Stay tuned for the next post where I share the final code, installation steps, and a demo of the Time‑Zone Clock in action!

Project Overview

The LLM knows everything about your idea just like you do.
To get the best results you should:

  1. Explain the small details in your prompts from the start – give the model all the data it needs so it can grasp the idea quickly and accurately.
  2. Make changes as you go – iterate on the design and functionality.

Changes from Version 1

#ChangeDetails
1Time‑zone orderRe‑ordered the displayed zones so EST appears at the bottom.
2Highlight ESTAdded a visual highlight for the EST time zone.
312/24‑hour togglePlaced a button on the screen to switch between 12‑hour and 24‑hour formats.
4Exit methodLong‑press on the touchscreen (or mouse press) now exits the app, removing the need for a top‑right exit button and keeping the UI clean.
5OrientationSet the origin to horizontal. (Later discovered that orientation follows the OS settings, so no code changes were required.)

After implementing these updates, I loaded the script onto the Raspberry Pi and ran Version 1.

First Impressions

  • Simplicity – The app feels plug‑and‑play; no endless testing required.
  • Functionality – Times are correct, the screen stays lit until the app closes, the 12/24‑hour button works, and long‑press exits function as expected.

Now I just need to:

  • Adjust the font size for a 7‑inch display.
  • Add a night‑mode feature.

Second Wave of Changes

  1. Tune font size – Optimize for an exact 7‑inch screen.
  2. Night mode – Automatically enable between 22:00 – 06:00.
  3. Night‑mode color – Switch the font color to amber when night mode is active.

Note: “Pi’s ready! Get it? No? Okay…”.

Next Steps

  • Create a desktop‑icon executable so I don’t have to open a text editor on the Pi each time I want to run the app.
  • I’ll share a repository with the installation instructions (the full script would be too long for this blog post).

Reflections & Lessons Learned

  • Hiccups:

    • ChatGPT sometimes asked for clarification or tried to rewrite the whole script instead of letting me edit manually.
    • File‑permission and file‑conversion issues cropped up.
  • Future ideas:

    • Port the app to a Proxmox environment.
    • Improve compatibility with larger displays and Windows (currently built for Linux on a 7‑inch screen).

Repository & Resources

A repo containing the code, install instructions, and known issues will be linked below for anyone who wants to try this themselves.

Final Note

If you’ve read this far—thank you! I had a lot of fun building this project and writing about it. I wish I’d started sooner, and I’m excited to publish more blogs in the future.

Back to Blog

Related posts

Read more »

All your OpenCodes belong to us

Article URL: https://johncodes.com/archive/2026/01-18-all-your-opencodes/ Comments URL: https://news.ycombinator.com/item?id=46674424 Points: 11 Comments: 0...