This is a story about launching a small product for a niche device. But everyone has to start somewhere, right?
Why Pebble
I've been wearing it for about eight years now. The company went bankrupt and changed hands a few times, but turns out that wasn't the end.
How I started making watchfaces
That whole comeback energy and the excitement in the community got me wanting to build something for the platform. I'd also been meaning to try vibe coding.
While figuring out how everything worked, I ended up making a few watchfaces. With each one, I got a better feel for the workflow – figured out my stack, got comfortable with the emulator, and finally started using GitHub properly. With all that behind me, I took on my latest watchface.
Details
The visual design was the easy part – I already had a mockup in Figma and knew how to use AI to speed up getting from design to code.

But just porting the design over would've been boring. I wanted to make something that felt like Pebble, so I started adding details.
Launch animation
I wanted pixels to randomly light up across the grid when the watchface launches, and for the digits to gradually emerge from the noise. After a lot of iterations, it finally came together – worth noting that most of my time went into optimizing and polishing this animation.
Vibration pattern
I wanted the animation to have some physical feedback, like Apple's Haptics. I took one of the original Pebble OS vibration patterns1 as a starting point and heavily customized it. The result is a pattern of barely-there taps that lines up with the animation's timing and pace.
Settings
Pebble SDK lets you customize pretty much any element of a watchface if you build it in. I added a few must-haves: 24/12-hour time format, toggles for vibration and animation, and theme selection.
After some research, I noticed users were missing hourly chime vibrations – a classic digital watch thing. Added that too – now there's a short, subtle buzz when the hour changes.
I also put some work into the settings page itself. Instead of the bare HTML you usually see in watchface configs, I tried to make it feel more like a modern interface.
Shipping it
To get some reach and catch any bugs3, I posted in the Pebble owners' Discord. A few people even shared photos of their watches with my watchface running.

The response was positive, so I figured why not tweet about it. Right before bed, I put together a quick post, tagged Eric Migicovsky, and hit publish.

What's next
Footnotes
-
This was possible because they open-sourced the system earlier this year, so I could find the exact vibration pattern code.
-
I'll admit, the watchface name – General Magic – I borrowed from a now-defunct company that tried to create what would later become smartphones back in the early 1990s. It was founded by early Apple people – Andy Hertzfeld, Bill Atkinson, Joanna Hoffman, and Susan Kare. Felt like a good reference that might remind people of this interesting project from the past. Highly recommend the documentary about them, by the way.
-
One bug did get through – on the older 2014 models, the animation played way slower than intended. A user reported it on GitHub. I had to simplify it for the Classic since its specs were much weaker than Pebble Time and it just couldn't handle the full animation.