Rainglow Project

I thought it might be fun to reflect on the past few months of Rainglow. For those visiting this page and wondering what I'm talking about, Rainglow is a collection of over 300 themes for a number of different editors and software. I've designed every single theme in the collection, and painstakingly developed a great level of support for the tools available.

vscode

Rainglow wasn't the first iteration of this project. Initially, it was simply called 'Dayle Rees Colour Schemes' and was released for Sublime Text, and then widened to additional editors.

The V1 of the color themes received over 120k downloads on Sublime Text alone over the space of 3 or 4 years. The original repository also has almost 9000 stars on Github. This means that my color schemes project was both the most popular project I've ever created and the least lucrative! There's certainly no way to monetize color themes that wouldn't have a negative effect on the overall impact of the collection. Therefore, we find other means of motivation, such as the drive to get as many developers using the project as possible. A personal highlight of mine from the first version was seeing 'Earthsong' and 'Peacock' show up on the HBO Silicon Valley TV show. Look ma, I'm famous!

vscode2

So why start again? There were, in fact, a few reasons. The first was simply that other work got the better of me, a lack of a comfortable working environment certainly had its toll also.

I also found that the tools I used to maintain the first version of the project weren't well suited to the size that the project had become. It was an open-source form of tech debt that got the better of me!

When I found myself in a better place, where I could focus again on side projects, I decided to pick one that was really important to me and focus entirely on that for a while. I chose color themes because they are a big part of a developers day. If you're staring at walls of text all day for weeks at a time, then you should at least be able to pick from more than 8 stock color themes and find new ways of finding joy in the work that you do.

I gave a great deal of thought to the problems I was facing with the original themes package, and then rebuilt all of the tooling that I needed. It's now much more robust, and as you can see from the size of the project, it's far more simple to maintain.

Ultimately, it's powered by a number of NodeJS applications and a little bit of docker for some of the automation. The theme preview site was built with React.

I decided upon Rainglow as a brand because I felt it was more of a colorful term than my own name. Of course, a brand needs a fancy logo! So putting my amateur design skills to work I invented the 'upside-down-rainbow'. The 'Rainglow'. Initially, the concept was for it to symbolize a reflection of a Rainbow that you might see in the water, but I think the more "solid" version that you see now works a bit better. There was no other reason for making it upside down. No hidden meaning, so don't stress yourself trying to figure it out! If it were the right way up, it would just be a Rainbow and not a unique brand.

With the tooling and branding in place, I began making themes. First starting with what I knew to be some of the most popular editors in the web development space. VS Code, Sublime Text, Atom and the JetBrains IDEs.

It didn't take too long at all to theme VSCode, and as part of that journey (mostly the testing process), it quickly became my favorite text editor. The UI theming is a nice touch, and I think it's one of the best applications to get a real "feel" for the themes in. Sublime and Atom I had themed before and weren't too difficult to update to match the quality of VS Code, but sadly without as nice a dynamic theme.

Finally, of the golden four, we had JetBrains, which was my least favorite attempt at theming in the previous iteration. The theming system hasn't really improved since then, but I did start the process from the ground up, instead of re-using the old themes that I had from the V1 of color themes. As a result, I think the themes look a lot better than they used to. Due to changes in the rendering engine, it's simply not possible to get them to render exactly like they do in VS Code, so instead, I went fully custom and wrote them in such a way that the 'personality' of the theme was still apparent in the JetBrains IDE's. There are one or two bugs that I'm aware of, but overall I'm pleased with the result.

After the golden four, I took a break to write some new themes. The first I had created in a while, and I'm really pleased with some of the new additions. A few users have claimed that the number has caused the sensation of 'analysis paralysis' but personally, I think a wider range of themes means that you're more likely to find the one that's perfect for you!

Some of the newer themes that I'm very pleased with are Newton, Glance, and Warlock Contrast. I've been using these a lot. I absolutely love Newton in VS Code.

After adding more themes, I decided that the light themes were very few in number, and it didn't seem fair to ignore those who prefer the lighter editors. As a result of this line of thinking, I added light variations of every theme in the collection, followed shortly after by contrast versions. The 320+ total theme count is actually a combination of these, in terms of total unique themes, we're looking more at around the hundred mark, which I'm still very satisfied with!

Following the theme additions, I continued to theme lots of new software in a coffee-fueled rampage, and somewhere along the way did a little research required to create a colorblind theme for those who are unfortunately unable to enjoy the full spectrum of the Rainglow. Huge thanks to Jesse for the help on that one!

Later, I built a mobile preview site, and then a React-based dynamic theme preview site, which I'm very pleased with, and I hope you are too!

Aside from the supported software listed on the website, there's a work in progress repository of web-syntax themes for highlighters and websites that support theming. As mentioned, these are extremely experimental, but feel free to take a peek!

Finally, I launched a line of T shirts to allow people to financially support the project, but also to actually wear their favorite color scheme, which is a cool idea that I haven't seen executed in the past. Sadly, I don't think the T-Shirt store has been very popular, but I am very grateful to those who have purchased the T-shirts and are wearing their colors with pride! Thank you all!

So what does the future hold for Rainglow? Well, I'm certainly pleased with the progress that has been made, and I imagine that the project will slow a little in terms of additional editor editions (we're running out of them!) but there are a few things still on my list, plenty of ideas up my sleeve, and naturally, I will endeavor to continually improve the quality of the existing theme packages over time. I'd definitely love to add more JS in-page syntax highlighter support, so expect some time spent there.

I'd absolutely love to get the themes in the hands of more users. I estimate that Rainglow is currently used by around 30,000 developers, which is a fantastic achievement for a project that is a little over a month old. However, I've somewhat exhausted my networks and would love to reach out further with the themes so more developers can enjoy them.

I'd be incredibly grateful for your support in this effort. Please share the themes wherever possible. Share them on product sites, write blog posts about them, link to them from editor forums. All of these efforts will help bring more users to Rainglow, and to keep the project fresh. Together, we can give the development world a colorful coding experience!

Finally, I'd like to say a huge thank you to the development community who use the themes and have been incredibly polite, appreciative, and entirely awesome to me while I've been working on this project. You've all been fantastic, and it's been a pleasure sharing Rainglow with you.

Have a bright, colorful, and slightly upside down day!