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:
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 brackets.io. 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!
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.
Extensions & themes – the Brackets extension registry makes it easy to see how many extensions are currently 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:
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.
Brackets 1.2 is out and has a bunch of really fantastic features that users have been asking for for a while. Between a longer than usual winter break for Adobe and ramping up new team members, and fixing some last minute Linux issues, this release took a bit longer than expected, but we hope you enjoy it!
A couple of things you’ll immediately see are that we now offer CSS color name code hints thanks to Marcel Gerber so when you type the
color property in CSS you’ll see a list of W3C color names with a swatch. Marcel also added syntax highlighting for the Dart language so when you open a Dart file you should see things highlighted correctly. This release also makes working with SVG files easier thanks to the SVG code hints that were added by Amin Ullah Khan. Just open up an SVG file, start typing, and you’ll see code hints for tags and properties. A couple of other things from the team include scrollbar tick marks that sill show the location of find/replace matches and make it easy to jump to them. We added common named keys like PageUp, PageDown, Home, etc, to the key binding list so that you can use those names in your custom key bindings or extensions. Finally, Brackets now looks great on Windows High-DPI screens. One of the things we’re most excited about is that we’ve got an initial implementation of moving selected text via drag and drop thanks again to Marcel Gerber. We have a couple of small things we want to fix before it goes on by default, but you can start using the feature now by adding the
dragDropText property to your
brackets.json preference file (Debug->Open Preferences File). It doesn’t exist by default so you’ll have to add this entire line to the bottom of your file (make sure to add a comma to the line above it so it stays a valid JSON file):
The community really, really stepped up on this release and you can see all of the fixes, features, and translations that were contributed in the full release notes.
We’re going to get cranking on the 1.3 release right away. One of the major things we’ll be doing is finally starting to work on the Health Data report proposal. So we can share information about how people are using Brackets and where people are seeing issues that we need to address. I’ll be sharing more information about that over the next couple of weeks.
Thanks again to the entire Brackets community. Happy Coding!
Music is what keeps me going and in my free time you can find me playing Keyboard
On the heels of the 1.0 release we’re very excited to announce the availability of Brackets 1.1 and an update to the Extract for Brackets extension today. The Brackets team is thrilled with the response we had to the 1.0 launch. Brackets 1.0 was downloaded almost 400,000 times in the past 5 weeks. That’s a humbling number and we are looking forward to keeping up the momentum.
The 1.1 release is primarily a release about stability and making sure we continue to have a good foundation. We updated the version of the Chromium Embedded Framework (CEF) we’re using so that we are now working with a more updated version of Chrome. That means we’ve addressed some bug fixes and users on Windows will now have high DPI support. We also did some work to improve the typing performance with code hints.
As of this version of Brackets you can now define file-type specific preferences by using the language group in your
brackets.json file. You can find out more here. You can now also selectively enable specific linters per project by using the
.brackets.json file in the root of your file.
One of the biggest features in this new version of Brackets is experimental support for the next iteration Live Preview which lets you use Live Preview with browsers other than Chrome. This feature was one that the Intel Brackets committers including Sebastian Salvucci and Arzhan Kinzhalin worked hard on and helped us land for this release. Our hope is to make this the default implementation of Live Preview.
To try out the cross-browser Live Preview, you need to enable a preference in your
"livedev.multibrowser": trueinside of the curly braces on a new line (make sure to add a comma above it if you add it to the end)
Definitely try it out and give us feedback on the new implementation and file any issues you run into.
In addition to Brackets 1.1, we’re releasing an update to the Extract for Brackets extension that includes a new getting started experience and a feature that lets you collaborate with a designer who is using the Creative Cloud. You’ll now be able to open a publicly shared Creative Cloud link right from Brackets.
We’ve revamped the initial experience when you launch Extract for Brackets to walk you through how the product works. If you’ve already tried Extract for Brackets but were a bit confused about how to get started you can click the question mark button in the toolbar. You’ll see new tool tips that will take you through how to use Extract for Brackets.
This version of Extract for Brackets also has a feature that makes it easier to collaborate with designers who are already using the Creative Cloud to store their PSDs. If you’re working with a designer they can send you a publicly shared link to a PSD in the Creative Cloud and all you have to do is paste that URL into Brackets and you’ll be able to extract from that PSD.
You can give it a try by copying and pasting this URL:
http://adobe.ly/1E67WAS into the updated version of Extract for Brackets.
The entire team is excited about both of these releases and building off of the great 1.0 release. A huge thank you to all of our committers and everyone who has filed issues, submitted pull request, and keeps using Brackets. You can see a full list of Brackets changes including community contributions here.
1.0, we did it! This is a big milestone for the Brackets project. Right now you can grab version 1.0 of Brackets, as well as a preview of Extract for Brackets, an extension that Adobe has been working on. Extract for Brackets (Preview) speeds up the process of pulling design information like colors, fonts, and measurement info out of a PSD and turning it into clean, minimal CSS.
When we first started Brackets we wanted to release early and often. We did both. This will mark the 45th release of Brackets in 3 years. In those early releases we acknowledged that there were a number of features Brackets was missing so we warned that it was still early and not necessarily ready for every day use. But in the past 3 years we’ve been very busy adding features to help make Brackets a world class text-editor. Declaring this release as 1.0 is our way of telling the world that Brackets is ready.
We’ve been busy over the last few releases adding a number of major features. If you haven’t looked at Brackets in a while, now is a great time to see the awesome stuff we’ve been working on. We’ve added multiple cursors, split view, theme support, and many more fixes and enhancements. This release includes support for custom key bindings so you can change the shortcut key combinations that Brackets uses. This wiki page describes how to customize them and includes example key bindings that align Brackets’ keyboard shortcuts with the ones you might be used to in Sublime Text.
In addition to Brackets 1.0 we’re also releasing a preview of Extract for Brackets. Extract for Brackets is a Creative Cloud service that lets you view and get information and assets out of a PSD right from your text
editor. Extract for Brackets lets you pull out things like colors, fonts, measurement, gradients, and more from a PSD in the form of contextual code hints in CSS and HTML files. You can also extract layers as images, use information from the PSD to define preprocessor variables, and easily get dimensions between objects. We’re excited about how this will improve the process of moving from design to development and speed up workflow. You can either download Extract for Brackets (Preview) as a standalone extension on the Brackets Extension Registry or included with Brackets 1.0 in a bundle that’s available for download on brackets.io.
While we’re very excited about 1.0, we are also treating this like any other release, so we’ll continue to release often and will be doing the next Brackets release in 3-4 weeks. As mentioned in this blog post we are going to be slightly changing the things that the Adobe team works on. We think there is an unmet need for a coding tool that supports design and we think that Adobe has a lot of expertise in that area. We will continue to work on core features and to support the community’s work on Brackets, but we also want to build the perfect editor for web designers and front end developers that are creating or implementing designs in code. Some of the things we’re going to be working on are improving our preprocessor support, making SVG editing more powerful, and adding more visual inline editors.
Since putting Brackets up on GitHub 3 years ago we’ve seen a great deal of momentum, largely thanks to our community. Our releases regularly see over 100,000 downloads, there have been 245 people who have contributed code directly to Brackets, and we¹re currently the 16th most starred project on GitHub with 18,566 stars. Those are humbling numbers and we’re excited to be working with all of you on making Brackets a success. We’ve also seen over 400 extensions and over 75 themes created in that time, all of which grow the reach and feature set of Brackets. To those of you who have taken the time to write extensions, contribute code, file issues, or even just try out Brackets, we want to say thanks. We couldn’t have done this without you and we are looking forward to continuing to move Brackets forward with you!
It’s been almost 3 years since the first commit for Brackets landed. In that time we’ve gone from a small project to one of the most popular repositories on GitHub and what we think is the best code editor for web designers and front end developers. We’re excited to see that a lot of you agree! We’ve had 240 contributors over that time, each new release gets over 100,000 downloads, and our extension registry contains 439 extensions and 75 themes. Most of those have been created by you and have helped make Brackets a fantastic tool. Thanks!
Over the past three years the team and community have worked on a combination of “core” editor features as well as innovative features for web development like Live Preview and Quick Edit. We all love innovative features, but a good code editor needs to have a solid foundation too. We think we’ve now got a great balance of both and want to make it clear that Brackets is a tool that you can use for every day work.
As a symbol of that, we’re going to be declaring the next release, which will be our 45th, the 1.0 release of Brackets. We’ll be pushing that release live at the Future of Web Design in NYC in November.
With Brackets hitting 1.0, we’re still committed to releasing every 3-4 weeks and adding great features. There are still things we want to do in terms of core features, but going forward we want to spend the majority of our time adding innovative features for web designers and front end developers.
After releasing 1.0, the core Adobe team is also going to slightly change what kinds of innovative features we focus on. We think that Brackets is a great editor for all kinds of web development and extensions help support a variety of languages and general web features. So post-1.0, the Adobe developers are going to be more focused on features that support design-oriented coding tasks. As a team we’ve been looking at how we can use our expertise at Adobe to give users a great code editing experience. One area we’ve identified is an unmet need for a coding tool that supports design. We think a lot of front end developers and web designers are doing work to implement designs and the core team wants to build the perfect editor for them. Some of the early feature ideas are about improving preprocessor workflows, making SVG editing more powerful, and adding more visual inline editors.
We will of course continue to maintain the core code base as well as implement important core features. We are also committed to supporting the the extension ecosystem so it will always be a great general purpose editor for the web. But we’re particularly excited about the prospect of making Brackets the best code editor for doing design-oriented coding with
CSS, HTML, and JS.
We couldn’t have hit 1.0 without our community. It’s been a lot of fun to work with all of you and see the Brackets project grow. The entire team is humbled by how many of you are using it and the time you take to contribute code, file issues, and write extensions. It’s a pleasure to be a part of the Brackets community and we’re all looking forward to continuing to work with you to grow and evolve Brackets.
The entire Brackets team will be at Future of Web Design, so if you’re there, come by. We’ll be at the Adobe booth and would love to get your feedback and hear about your experiences with Brackets.
– The Brackets Team
Split view has been one of our most requested features for Brackets and with Release 0.44 it’s finally landed. In this release we’ve also overhauled the file tree which should make it more robust. You can see the full list of enhancements here and grab the release here.
With release 0.44 you can now view two documents side-by-side in either horizontal view or vertical view. To enable split view, use the icon and then decide between a vertical split or a horizontal split. Then select the panel you want to open the file in and double-click the file to open it in that pane. You’ll now see two working sets, one for each pane.
We rewrote our file tree to use React which will make it much easier to maintain going forward. During the upgrade we also fixed an issue that wouldn’t let users right-click on files that Brackets doesn’t support.
As of this release you can now use Quick Docs when you’re on a browser-prefixed CSS property. We’ve also fixed two important issues with editing CSS code: one where Brackets stopped working when using Live Preview if you placed your cursor on a non-indented } character inside a comment, and one where the inline editor was blank if your CSS rule contained a vendor-prefixed property that used rgb() color values.
The entire team is excited about this release. We hope you enjoy split view as well as all the other features and fixes that went into this release. And as always, we appreciate those of you who have contributed translations and fixes this release. Here’s the complete list:
cubic-bezier()by Marcel Gerber
!importantby Miguel Castillo
i18nfield by Denisov21
The team has been busy polishing the exterior of Brackets for our upcoming Max release so we’re packing some of Brackets’ existing features with a little extra love in this release.
Remember when the Quick Edit and Quick Find Definition features were first introduced but they didn’t work for your SCSS or LESS files? Well now they do. Any selector, even the ampersand Selector, can be located using Quick Find and any class, ID or tag selector can be targeted for QuickEdit in SCSS/LESS files.
And that’s not all—mousing over rules declared in SCSS or LESS files will highlight their usage in the browser when using the Live Preview feature. Editing rules, however, will still require that your source file be recompiled. May we suggest the LESS AutoCompile Extension or the brackets-sass extension to automatically recompile them on save?
Our Dark Theme has spread to make more of Brackets UI dark. Now, when you choose the Dark Theme, you’ll notice the status bar, context menus, dialogs, etc… are styled to match the rest of the UI. Custom Theme Authors can designate their theme to use the Dark or Light UI for the Brackets components which Themes Extensions cannot style.
The overwhelming popularity of custom themes support exploded our Extensions Manager dialog so Brackets committer Miguel Castillo took it upon himself to do something about it by creating a “Themes” tab.
This makes it easier to find a great theme from the vast array of Custom Themes already added to the registry and new ones being added daily.
We added a “Find Index” hint to the Find Bar.
This helps to show where you are in the file so you know when you’ve wrapped back around to the beginning.
This is extremely useful for the Replace feature as it shows how many replacements are remaining.
The “Language Switcher” (that thing on the status bar that allows you to change the language starting in Release 0.42) could be used to change any document’s language. With Release 0.43, we’ve added the ability to save that setting for all files for the current file’s type.
Brackets wouldn’t be where it is today without its many contributors from around the world. Thank you!
ThemeManager.loadFile()(+ part 2) by Miguel Castillo
The Brackets team has updated the wiki article on working with multiple selections to include changes to how Multiple Selections are Pasted. Check it out and let us know how it helps you improve your productivity!
If you have trouble watching the video below, make sure you have Flash enabled for www.ccv.adobe.com.
Covered this week:
Keep up with Brackets Weekly and new releases of Brackets via the low-traffic brackets-announce mailing list.
I’m very excited to be able to publicly welcome Miguel Castillo as the newest Brackets committer. Miguel is responsible for some fantastic Brackets extensions including Interactive Linter, Whitespace Sanitizer, Tomcat Manager, and of course Themes. It’s this last one that has had the biggest impact on Brackets as Miguel recently worked with the other committers to bring his extension into core so we could ship themes as a default feature in Brackets.
It was a huge undertaking and involved a lot of tireless effort on the part of Miguel to refactor his code to fit in with the other core features. But it’s also had a huge impact. Themes was one of the most requested features in the Brackets backlog and since releasing themes in Release 42 we’ve seen lots of themes uploaded to the extension registry.
I asked Miguel to write up a little bit about himself:
Currently, I am a software developer at Symphono. My focus is on web technologies where I get to work on cool stuff like WebRTC and D3 goodness, among others.
I love Open Source, Beer, and most of all, my family.
This brings the total number of community committers on Brackets to 8. We’re looking forward to adding more!