Nebble v1.0 - Full-Stack Nim for Pebble Smartwatches

I am excited to announce the v1.0 release of Nebble, a comprehensive, type-safe Nim wrapper for the Pebble SDK. Nebble transforms the Pebble development experience by bringing modern language features, strong safety guarantees, and a unified full-stack workflow to the platform.
Why develop with Nebble?

  • Strong Compile-Time Safety: Nim’s type system catches logic errors, invalid enum values, and handle-type mismatches at compile time, ensuring your app is robust before it ever reaches the watch.
  • Automatic Memory Management: Nebble’s Managed Handles leverage Nim’s ARC (Automatic Reference Counting) to handle object lifecycles and SDK memory handoffs automatically.
  • Declarative UI DSL: Build responsive UIs with the powerful nebbleApp macro. Define your app’s structure, text layers, and click configurations in a clean, declarative block that eliminates repetitive boilerplate.
  • Unified Full-Stack Nim: Nebble is a complete full-stack framework. Write your watch firmware (compiled to C) and your phone-side logic (compiled to JS) in 100% type-safe Nim, sharing constants and enums across the entire stack.
  • Modern, Expressive Syntax: Enjoy property-style accessors, clean block syntax, and powerful language features that make Pebble development feel like a modern engineering experience.
  • Zero Runtime Overhead: Nebble compiles directly to efficient, optimized C code. You get high-level abstractions with the same performance and binary footprint as native C.
  • Complete Platform Coverage: Full FFI bindings and high-level wrappers for all 6 Pebble platforms—from the original Aplite to the Pebble Time 2.
    Modern Tooling
    The dedicated nebble CLI provides everything you need to scaffold, build, and deploy. It manages the multi-platform build pipeline and generates package.json metadata automatically, so you can focus on writing code.
    You can find Nebble on Github.
3 Likes

Pretty cool stuff! Do you have an example of a full app ported to Nim? Or just the demos included in the GitHub repo?

2 Likes

Also why would you ever create planform-specific PBWs? Are you able to create normal ones too?

2 Likes

Thank you ! For the moment no but this came from an idea that I had in mind and I wanted to use Nim for it and it cascaded into a much more feature complete wrapper that I had anticipated. :sweat_smile: Now I want to focus on porting more “useful” example (maybe rewrite the original exemples in Nim ?) and the original idea I had for it so more useful stuff should could soon :+1:

1 Like

Oh yeah thats a mistake. While debugging the wrapper I had an issue where the build system was overwriting the PBW when building for multiple platforms so I made it generate one for each platform as it was also easier to pinpoint specific issues but I never restore it back. I will fix that asap.

Edit: This is now fixed and Nebble now generates a unified .pbw for all platforms !

1 Like