Frequently asked questions
Straight answers about Pebble's history and return, legacy watches, AI's role in the project, CloudPebble, and why Elm is in the stack.
Hasn't Pebble been bought by Fitbit many years ago?
Yes. Fitbit acquired Pebble's assets in 2016 and later shut down Pebble cloud services, including the original CloudPebble IDE. Google bought Fitbit in 2021. That chapter is over for the original product line.
What people wear and develop for today is also a new Pebble hardware and software effort—watches, a companion app, an appstore, and open tooling—sold and documented under the Pebble name again. Elm Pebble is built for that current ecosystem and appstore path.
That does not mean Elm Pebble only targets post-revival hardware. The Pebble SDK still defines platform targets from the pre-Fitbit era onward. You can build for Aplite (original black-and-white Pebble and Pebble Steel) as well as later models. In the IDE you pick which platforms a project supports; Aplite is optional because those watches are tight on flash and RAM.
See the Pebble ecosystem site for the revival project itself.
What is Elm Pebble?
Elm Pebble is an open-source platform for building Pebble watchfaces and apps primarily in Elm. It includes the hosted IDE, the elmc compiler that turns watch Elm into C for the Pebble SDK, Elm packages for watch and companion APIs, project templates, emulator support, and documentation.
Getting started is the shortest on-ramp; the IDE overview explains how the pieces connect.
Is Elm Pebble vibe coded?
"Vibe coded" usually means a prototype held together without structure—no tests, no docs, no clear architecture. Elm Pebble is not that: there is a defined compiler pipeline, package contracts, project templates, and a large automated test suite across elmc, the IDE, and the site.
A separate question is how much was written with AI assistance. That is substantial; see the next answer. The distinction matters: AI helped build a documented system, not an unmaintainable one-off.
Was Elm Pebble built with AI?
To a large degree, yes. Much of the compiler, IDE, runtime shims, documentation, and this site were produced or heavily revised with AI coding tools. Without that support, the project in its current form would not exist—it would be far smaller or still aspirational.
Human direction still matters: architecture choices, Pebble and Elm semantics, review, tests, and what gets merged are intentional. Treat AI-generated code like any other contribution—it must pass tests and fit the contracts. If something looks wrong, report it; that feedback is part of how the project stays honest.
How does Elm Pebble compare to CloudPebble?
CloudPebble is Pebble's official browser-based IDE again: write watch apps in C or JavaScript, manage resources in a UI instead of hand-editing JSON, compile without a local Linux toolchain, and install through the Pebble account flow. The classic service shut down with Fitbit-era infrastructure; it is back under the current Pebble effort.
CloudPebble is the place to go if you want Pebble's official in-browser C or JavaScript workflow with zero local SDK setup.
Elm Pebble is a separate, independent open-source stack—not CloudPebble with a new skin. You author Elm on the watch and companion; elmc generates C and the normal Pebble SDK binary. The hosted IDE adds Elm-specific tooling: templates, package docs, emulators, and debugger integration aimed at the Elm workflow.
Both offer "develop in the browser" convenience. Choose CloudPebble for official C or JavaScript development on Pebble's infrastructure; choose Elm Pebble if you want Elm's type system and architecture on watch and phone, and are fine with an independent beta project that still lands on the same Pebble binaries.
Why Elm?
Pebble apps are event-driven and state-heavy: ticks, buttons, battery changes, and phone messages all need a clear story for how data flows. Elm's model–message–update loop keeps that explicit, and the compiler rejects many protocol and UI mistakes before you flash a build.
You still write normal Elm on the companion side where browser and HTTP packages make sense. The watch side uses Elm Pebble packages that map to Pebble drawing and system APIs instead of the DOM.
Why Elm fits Pebble watchfaces and apps goes deeper for developers new to Elm.
Do I need a physical Pebble watch?
No. The IDE includes emulators so you can edit, build, and debug without hardware. A watch is still the best final check for layout, contrast, and how an interaction feels on your wrist.
When you are ready, install a build through the Pebble companion app and appstore in the current Pebble ecosystem—the same path as any other Pebble developer today.
How does Elm Pebble relate to the original Pebble SDK?
You still rely on the Pebble SDK and toolchain to package, install, and run native apps on the watch. Elm Pebble sits above that layer for the parts you author in Elm: it type-checks watch code, generates C and shims, and wires companion protocols.
Think of it as a new language frontend for a familiar Pebble-shaped build pipeline, not a replacement for the SDK itself.
Can I use regular Elm packages on the watch?
Only if they fit a watch target with no browser, filesystem, or network runtime. Packages that depend on elm/browser, elm/html, elm/http, or similar will not compile for the watch.
Use Elm Pebble packages for drawing, time, storage, vibration, and system state on the watch. Use ordinary Elm packages on the companion phone app where the standard compiler applies.
Package docs list what ships with Elm Pebble and how watch limits are described.
Do I need to write C?
You write Elm. elmc produces the C sources and Pebble integration glue; the IDE and SDK take it from there. You might read generated C when debugging a tough build issue, but it is not the language you author day to day.
Is Elm Pebble affiliated with Pebble, Rebble, or the Elm project?
No. Elm Pebble is an independent open-source project developed by Synalysis. It is not affiliated with Core Devices, the Elm Software Foundation, or Pebble trademark owners, though it is built for today's Pebble ecosystem.
The Elm language and tooling are separate projects; Elm Pebble uses Elm and contributes compiler and package work back in the open, but it is not an official Elm Foundation product.
Is it ready for production?
Elm Pebble is still in beta. The compiler, IDE, runtime packages, and public APIs can change while the project settles. Many templates and workflows already work end to end, but you should expect occasional churn and report issues you hit.
For experimenting, learning, and shipping small watchfaces or apps you are willing to maintain through updates, it is usable today. For hard guarantees about long-term API stability, treat the beta notice seriously.