Motivation

We want to encourage people to improve, contribute and hack on the software we create. But at the same time, we (Core Devices) want to be able to sustainably develop new software and hardware long into the future.

Given my proximity to the Matrix and Wordpress sagas, I’ve seen what happens when other companies leech off permissively licensed open source projects. The core Core team is currently performing the majority of the development work to create new hardware, improve PebbleOS and develop new mobile apps. But if value begins to accrue to others companies that do not contribute to this development, Core Devices will not be able to pay people to work on new software, and development of current and new products will slow down or stop. I don’t want this to happen - I want to be able to pay people to contribute to Pebble software long into the future.

Plan

Keep as much of our software as open source as possible (for transparency, long term sustainability and as part of our commitment to the Pebble community) but require a commercial license agreement from entities that do not contribute back.

Basically same thing as what Matrix, QT and MySQL have done.

We use cla-assistant.io to manage contributions

Story

For someone to build a Pebble-like device, they need to build watch firmware (PebbleOS) and a companion mobile app.

PebbleOS is currently Apache licensed (very permissive, no requirement to give back to community). Theoretically we could fork it and relicense new contributions to it under GPLv3 - but using a more restrictive license may inhibit other companies from developing non-competing products using PebbleOS, which reduces the opportunity for more 3rd party contributions.

Because libpebble3 is new, it is easier to license as GPLv3 and get all contributors to sign CLA. This will be licensed as GPLv3, with an optional exemption for those who want to integrate the library into a proprietary codebase. Core Devices sells this exemption and uses proceeds to continue open source development of libpebble3. This protects the project against those who want to use our code without contributing back to the open source project.

Contributor License Agreement

We copied the Apache CLA.

Our CLA explicitly include a clause to require Core Devices to distribute all contributions under an OSI-compatible FOSS license (e.g. GPLv3). This based on feedback from Matrix team - they mentioned this as something the community requested.

Our CLA

Core Devices Contributor License Agreement

April 10 2025 - v1.0

Thank you for your interest in contributing to Core Devices. To clarify the intellectual property license granted with Contributions from any person or entity to us (“Core Devices LLC”) in respect to certain software projects maintained by Core Devices including libpebble3 (“Projects”), Core Devices must have on file a signed Contributor License Agreement ("CLA") from each Contributor, indicating agreement with the license terms below. This agreement is for your protection as a Contributor as well as the protection of the Projects and their users. It does not change your rights to use your own Contributions for any other purpose.

You accept and agree to the following terms and conditions for Your Contributions (present and future) that you submit to Core Devices. Except for the license granted herein to Core Devices and recipients of software distributed by Core Devices, You reserve all right, title, and interest in and to Your Contributions.