Introducing Brackets Health Report

The Brackets community has grown by leaps and bounds over the past year, especially after our 1.0 milestone last fall. Earlier in the development of Brackets we felt more confident guiding the project based on direct user feedback and our own intuition. But as the project has grown, we need a better picture of how people are using Brackets so we can continue making it even more awesome. Rather than relying on guesswork, we think the best approach now is to gather real usage data.

Media discussions often focus on gathering data for the purpose of selling ads, but it can also be immensely valuable simply for making your app better. Knowing how people use an app helps decide what to build, prioritize when to build it, spot usability/discoverability problems, and find lurking bugs and reliability issues. Without those insights, we – and our community of extension authors – are flying half blind.

So to serve all our users better, Brackets 1.3 will introduce a new Health Report feature that we’ll use to guide future development. But Brackets isn’t just any app – it’s open-source, and for a developer tool we realize privacy must be the absolute #1 priority. The Health Report will be:

  • Anonymous – the data sent will never include your identity or private information like filenames.
  • Aggregated – Brackets does not send individual events – only averages and totals.
  • Transparent – the code is open-source, and you can view the data Brackets is sending at any time. We began soliciting feedback with an open proposal over 7 months ago, and we’ll continue the conversation by sharing what we learn from the data in the future.
  • Minimal – every piece of information has a purpose directly tied to making Brackets better.
  • Optional – you can always opt out of the Brackets Health Report. But for all the reasons above, we urge you not to!

On the topic of transparency, we want to start by sharing some of the more limited information we already have available without Health Report. This Google spreadsheet tells the story of how Brackets grew from an early preview in the spring of 2012 into a vibrant, thriving project with nearly 600 extensions, 120 themes, and over 250 contributors to the core code.  Be sure to check out the tabs at the bottom for visualizations like the ones shown below.

We scrape together this information from a variety of sources today, but all of them have significant limitations:

Downloads – we can just count how many times people clicked the Download links on  This may undercount Linux, where some users get Brackets from unofficial sources like Linux app repositories – we hope Health Report will give a more accurate picture of how many Linux users love Brackets!

Br downloads per week

Users per day – we can get a rough picture of how many people have used Brackets in a given day by counting how many hits the update JSON feed gets, since Brackets checks for updates exactly every 24 hours.  But this is impossible to aggregate into measures like weekly or monthly active usage; again, Health Report will give a more accurate picture.

Br users per day

Extensions & themes – the Brackets extension registry makes it easy to see how many extensions are currently available.

Br extensions available

Extension downloads – the extension registry knows how many times each extension package has been downloaded. But this is very rough, since it lumps together new “installs” of an extension with upgrades of an existing extension; extensions that are updated more frequently will have much higher download totals. Health Report will show how many users installed an extension and kept it installed. With more reliable data, we can begin exposing download counts in the Extensions Manager UI.

Contributions to core code – git history makes it easy to see how many pull requests we’ve merged from community contributors.

The initial version of the Health Report will only add a few new pieces of key data. It works by sending a short report once every 24 hours, containing:

  • A randomly-generated UUID
  • The current Brackets version
  • OS version and locale
  • List of installed extensions (only those that are already published in the extension registry, so non-public or not-yet-released extensions are kept private)

That last item highlights an important point: the Health Report isn’t just for core Brackets developers – we also want this data to help extension authors. This initial version of the Health Report will give authors a much clearer picture of how many people benefit from their extensions.

In the future, we’d like to carefully expand the Health Report to include other useful information. We’ll be sure to announce any changes ahead of time, and we’d love to hear feedback on what other information would be valuable for you to see.

Because we’re building this feature for the benefit of all Brackets community members, please let us know your thoughts by commenting below.

13 Responses


  1. Manrique says:

    What about adding community development activity in the report? Check for FOSS tools to do it or how to get it done…

  2. Gary says:

    I am concerned of rumors about the future of brackets, that it will become a closed product and that the free version will be very limited, is this true?, is there a way to guarantee that this proyect will always be free and open, I personally think it’s one of the best IDEs I’ve found .

    Thanks to all

    • Ryan Stewart says:

      Hey Gary, there’s absolutely no chance Brackets will become a closed product where the free version is limited. We’re committed to continuing to keep working on Brackets and keeping it free and open. Adobe may continue to release some extensions that aren’t open source, but the overwhelming majority of the features for Brackets will live in the open source project.


    • Peter Flynn says:

      The MIT license guarantees that you will always be able to freely use the Brackets source code. No one can rescind that license and change the code to closed-source.

  3. wuyang says:

    Internal brackets-nodejs error (please report on Github):Error: spawn ENOENT
    at errnoException (child_process.js:980:11)
    Program exited.

    so anyone could tell me what is wrong with the Brackets ?thank you

  4. Brylie Christopher O says:

    Wuyang, please open an issue on Github:

    It would be helpful if Brackets had an error reporting mechanism that automatically posted issues to Github.

  5. Brylie Christopher O says:

    Would the Brackets developers please consider releasing the data under an open data license? This might prove useful to researchers, plugin developers, etc. for analysis purposes.

    • Peter Flynn says:

      We’ve definitely talked about that. But publishing the raw data opens it up to “anonymity-breaking” attacks like the one that succeeded on Netflix’s data. It’s easy to make everyone on the Brackets core team agree to not try subverting the data’s anonymity; but we can’t make the entire Internet promise that. Realistically, the simplest solution may be to just listen for feedback about what kinds of information extension developers and other community members would find useful, and then publish reports on those topics instead of opening up all the raw data.

  6. Manrique says:

    What about publishing data that come just from open repositories (like public gits i.e.)?

    • Peter Flynn says:

      It’s not clear what that would mean, exactly. People use Brackets to edit local source files, and we have no idea whether those files are part of an open-source project or not — and even someone working on open-source code may not be ok with their usage statistics being public. For higher-level commit activity though, GitHub already has great data visualizations you can view for any public repo — regardless of what code editor people are using.

  7. […] that people love, how great is that? The project underwent many changes while I was there, and the growth was […]

  8. […] version is 1.3. At the end of March 2015, Brackets community blogger Peter Flynn stated that the editor currently supports 600 extensions, 120 themes, and has over 250 contributors to the core […]

2 Trackbacks

    Warning: call_user_func() expects parameter 1 to be a valid callback, function 'thematic_pings' not found or invalid function name in /home/wp_twqxv4/ on line 180

    Warning: call_user_func() expects parameter 1 to be a valid callback, function 'thematic_pings' not found or invalid function name in /home/wp_twqxv4/ on line 180

Post a Comment

Your email is never published nor shared. Required fields are marked *

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


six + 3 =