Animatron: HTML5 Animation Editor Inspired by Middle-School Homework Assignment

This guest post is by Dmitry Skavish, Co-Founder and CEO of Animatron. 

A couple of years ago, JetBrains helped us start our company, Animatron, with the goal of building a visual HTML5 animation editor that allows you to create mobile-friendly interactive and animated content in your browser.

Animatron began with a middle-school homework assignment. I was surprised to see the quality of the online animation programs my daughter’s teacher recommended—some ad-cluttered nightmares that created animated GIFs and that’s about it. I did some research, trying to find a better tool, and realized that it simply didn’t exist: there was no powerful and user-friendly animation tool on the Internet! And so the idea for Animatron was born.

A few years and 15 employees later, we released our first version and were pleasantly surprised to receive very positive feedback from many people all over the world!

Since most of this blog’s readers are JetBrains fans, I’m going to talk about the technical side of the company: how we build the product, and what tools and technologies we use.


When you start Animatron, you see only the client—the animation editor in the browser. This is the largest component of what we do, but of course the whole web application is much bigger than that. Here is a bird’s eye view of Animatron:

Animatron Topology

Let me walk you through all the components and describe each of them.

First, there is the Editor at The editor is an application written in Java and then translated to JavaScript via Google Web Toolkit. The app is around 800 KB of gzipped js code that is stored in Amazon CDN. When you go to, the whole app is loaded directly from CDN (Content Delivery Network). Packaging it this way allows us to minimize start up time for all geo locations.

The app communicates with API and Backend servers. API servers are stateless nodes that   are used for authentication, managing users, projects, payments, etc. Backend servers control project content and provide collaborative editing of projects by many concurrent users.

In the middle we have a PostgreSQL database which holds all the Meta data of projects and users. We switched from MongoDB to PostgreSQL when we realized that most of our data is relational.

The API node is a server application employing Spray framework—it’s written in Scala.

The Backend server is an app running under Tomcat and is a mix of Java and Scala code.

API and Backends are visible to the outside world and client code talks directly to them. Behind a firewall, we also have renderers and search nodes.

Renderers create all kinds of media from users’ projects: preview images, gifs and videos. We use PhantomJS to run our projects and render images.

Of course we have a website which displays users’ projects and provides some social interactivity to users. The website is a Scala application running on Play framework.

And last but not least: the Animatron Player. This is a Javascript app and library that plays projects created by the editor on browser’s canvas using a bunch of other HTML5 technologies.

Matt EllisGeek Stats about the Animatron team:
* There are 15 full-time employees at Animatron
* Developers  - 12, QA – 2, Marketing – 1
* On Mac – 8, Windows – 4, Linux – 3
* Ukrainian – 7, Russian – 6, Slovak – 1, American – 1
* Living in: USA – 7, Germany – 2, Ukraine – 5, Russia – 1


We have 3 repositories on GitHub. One is for the Player; it’s public and open source. I welcome everyone to contribute!

The other two are private repos: one for all server side code and another mostly for the editor. Here are the language statistics for those two repos:



GitHub is also our main code review tool. Devs create Pull Requests from their branches to our Develop branch. The PR is reviewed and if everything is okay, it is merged to Develop.

Being a Java/Scala/Javascript company, we of course use the best IDE ever. I’m pretty sure I don’t have to name it here :)

For bug tracking we use YouTrack, which is absolutely awesome! In the past we used Jira, PivotalTracker and Trello – they’re all fine … for non-programmers. If you’re a hacker, YouTrack is your best friend! It also helps that we have a free license :-)

We use TeamCity for continuous integration and it’s incredible; the only thing I miss is the ability to configure web hooks to post notifications etc. to external servers. You can write a plugin, but it’s much more complicated, especially if you don’t host your servers yourself.

We host everything on Amazon and use quite a few Amazon services: EC2, S3, CloudFront, Route 53, Elastic Beanstalk, CloudFormation and SES.

We always have at least two stacks running: Production and Test. Each stack is completely separate from the other; they may have different numbers of nodes and they can be created automatically with different parameters. Each stack consists of at least one web server, backend, API, PostgreSQL, renderer, search, and a bunch of S3 buckets with CDN mapping.

We deploy to the Test stack several times a day and to Production once every 2-4 weeks. New stacks can be created if we need to run load testing or some other experiments.

For team communication we use Google Hangouts and Skype, and just recently we started using Slack, which is a godsend! It’s the best team chat I have ever used and tried. Highly recommended!

Animatron Samples:

Ninja vs Animatron 2


Try Animatron today,

Dmitry SkavishDmitry Skavish is CEO at Animatron. He has been passionate about computer graphics and animation since the days when you needed to punch your game into the machine before you play it. He worked in the software industry for more than 25 years, from hacking VRML browser in C to writing analytic software in Java for a hedge fund. He worked at JetBrains for several years on Fabrique, a project that never got finished. Last decade he had been trying to start his own venture (with mixed results). Animatron is his latest baby.
Posted in Behind-the-scenes, News, Partners, Video | Tagged , , , , , | 3 Comments

Great Indian Developer Summit, April 22nd – 25th

Great Indian Developer Summit (GIDS) is the biggest independent summit for software developers in India. This year’s event takes place in Bangalore April 22nd – 25th, 2014 and will be JetBrains first official presence at the show.


Over the last six years, more than 25,000 people have attended GIDS. The 2014 edition of GIDS features six different tracks offering 100+ focused sessions, keynotes and workshops highlighting the technologies that are having a significant impact right now.

Representing JetBrains at GIDS will be Maarten Balliauw and Dino Esposito. Come by JetBrains booth (#20) to meet the guys and learn more about our developer tools: ReSharper, IntelliJ IDEA, PhpStorm, WebStorm, TeamCity, YouTrack and more.


Be sure to attend Dino’s keynote on Tuesday, April 22nd:

Never Mind the Mobile Web: Here’s the Device Web
45 mins | GIDS.NET | Conference Schedule

Any website can be accessed with any sort of device, including laptops, smartphones, tablets, glasses, smart TVs, etc. Obviously, your site must be responsive. But how do you get to be responsive? Having separate websites is a sure failure; you need a single website that can offer different views. But what’s the ideal way of switching views? Is Responsive Web Design just enough? How does it really work? What are its hidden costs? In the talk, Dino debunks some of the myths of Responsive Web Design and brings up the need of really different HTML views. The rest of the talk is built around a demo ASP.NET MVC application that uses a popular framework (WURFL, used by Google and Facebook, to name a few) to switch views intelligently based on device detection.

For more GIDS information, please visit

Posted in Events | Tagged , , , , | Leave a comment

Bonjour Devoxx France. Win a Free Pass!

Devoxx France is an annual developer conference organized by the Paris JUG featuring renowned local and international speakers, with 75% of the talks being in French and 25% in English. This year the conference takes place in the Paris Marriott Rive Gauche Hotel, April 16th-18th, and JetBrains is happy to be taking part.


Win a free Devoxx conference pass

Do you want to attend Devoxx France, but don’t have a conference pass? Well, you just might get lucky. We are raffling six free passes among those who share a tip about their favourite IntelliJ IDEA feature on Twitter. Don’t forget to use the hashtags #intellijtip and #DevoxxFR. Winners will be chosen at random and notified by email on Tuesday, April 15th, 11:00 AM CEST.

Come by the JetBrains booth for a chat

Stop by our booth and check out some of the things we’ve been working on, such as our new Upsource Platform, the new features in IntelliJ 13.1, the latest Kotlin release and more.

Be sure to join our two sessions with Hadi Hariri:

42 IntelliJ IDEA Tips and Tricks in 45 Minutes
Thursday, April 17th, 14:30 – 15:20, Seine B

There are so many features in IntelliJ IDEA, but we’re going to concentrate on just 42, and we’re going to try and show them in 45 minutes. That’s around 1 tip per minute because we need to leave 3 minutes for Hello, Welcome and Thank you. If a single one goes badly, we have less than a minute per tip. But here’s hoping it won’t.

Embracing HTTP in the Era of API’s
Friday, April 18th, 11:45 – 12:35, M. Davis

It’s all about REST in today’s world. Every service you look at, people are providing a REST API for it. Surprisingly, very few of these APIs are even REST, if we’re talking about REST as in a system that abides by a series of constraints making it RESTful. But the positive note is that it has brought to light the power of HTTP as an application protocol, something very often undervalued and misunderstood, even today. This talk is going to focus on the core values of HTTP for what it is. It will cover all aspects including: headers, error management, verbs, content negotiation, caching, security, messages, request and responses.

We look forward to meeting you in Paris!

Posted in Events, News | Tagged , , , , | 2 Comments

Webinar Recording: Getting Started with TeamCity

The recording of our April 7th webinar, Getting Started with TeamCity, is now available on JetBrains YouTube Channel.

Learn how to get started with TeamCity for implementing continuous integration with Wes McClure of Full City Technology Co. In addition to the video there’s a wealth of information in the Q&As section below.

Continue reading

Posted in Partners, Screencast | Tagged , , , , , | Leave a comment

Lexik to Provide Symfony2 Trainings in France with PhpStorm

We are pleased to announce Lexik as our new PhpStorm training partner in France. Founded as a web agency in 2006, Lexik quickly began working with the Symfony framework and trained their engineers to become true certified experts. On top of their daily projects, they provide Symfony2 training for PHP experts, which now includes a bundled PhpStorm personal license.


In addition to using our PhpStorm IDE in the classroom, attendees will have access to one year of free product updates, and will be able to continue using PhpStorm for their own projects and learning well beyond the course. We have full confidence Lexik, having realized the in-house productivity gains that PhpStorm is able to provide, will help local companies achieve the same outstanding results with their trainings.

To learn more about Lexik visit:

Posted in Learning Courses, News, Partners | Tagged , , , , | 1 Comment

Live Webinar: Deconstructing Clippy – Common Issues for an Uncommon Extension, April 16th

Join us Wednesday, April 16th, 15:00 – 16:00 GMT (11:00 AM – 12:00 PM EDT) for our free live webinar, Deconstructing Clippy, with Matt Ellis.


Clippy for ReSharper is a good April Fools’ day joke made better by the fact that it’s a real, fully functioning extension – replacing the Alt+Enter menus as well as integrating with navigation and refactoring. It’s also a great demonstration of the varied and often surprising ways you can extend ReSharper.

This webinar will take a deep dive into Clippy’s implementation. We won’t look at the standard extension points (it doesn’t use any!), but will look at common platform issues faced by all plugins, such as versioning, components, lifetime management and threading. And we’ll look at some of the more interesting issues thrown up by trying to add a cartoon character to a productivity tool.

Space is limited, please register now.

The source code for Clippy for ReSharper can be found on GitHub: It’s not required for the webinar.

About the Presenter:

Matt EllisMatt Ellis is a Technical Evangelist at JetBrains. He has been a professional developer for nearly 20 years, shipping software for BBC Worldwide, BNP Paribas and Egg, the UK’s first Internet bank. He is an open source creator and contributor, owning projects such as the test runner for ReSharper. He believes in clean code, simplicity and the open/closed principle.

Keep up with ReSharper on JetBrains .NET Tools Blog and on Twitter @ReSharper.

Posted in Events, Webinar | Tagged , , , | 1 Comment

[Live Webinar] WebStorm 8: Mastering AngularJS, spy-js, Grunt, and Multi-Selection Workflows, April 24th

Join us Thursday, April 24th, 9:00 AM – 10:00 AM PDT (16:00 – 17:00 GMT) for our free live webinar showing-off the hottest additions to WebStorm 8.


This webinar will cover how to get the most out of the new WebStorm 8 features. We’ll show advanced AngularJS support in action and how integration of Grunt task runner and multi-selections in the editor optimize your workflow in WebStorm and speed up your daily development tasks. We’ll also have a closer look at a brand new tool in WebStorm - spy-js, a powerful JavaScript tracer.

Space is limited, please register now.

The new features that are going to be covered in this webinar are available in WebStorm 8 and also: IntelliJ IDEA 13.1, PhpStorm 8 EAP, RubyMine 6.3 and the upcoming PyCharm 3.4 EAP. The recording will be available a week after the webinar.

About the Presenter:

John LindquistJohn Lindquist is a Technology Evangelist at JetBrains. He has spent the majority of his career developing Rich Web Applications. Before joining JetBrains, he was a Technical Architect at Roundarch leading teams in building the latest and greatest in web apps for the Air Force, HBO, and Bloomberg. John focuses his free time on delivering high-quality video tutorials for free on his YouTube channel and recently launched his own video tutorial training site focused on AngularJS.

Keep up with the latest news on JetBrains WebStorm Blog and Twitter @webstormide.

Posted in Events, Webinar | Tagged , , , , , | Leave a comment

Functional Programming with Java 8

The recording of our March 12th webinar featuring Venkat Subramaniam, Functional Programming with Java 8, is now available on JetBrains YouTube Channel.

In this presentation, we discuss how Java 8 now facilitates a functional style of programming and why we should care about it. Using multiple examples, during this live coding session, we will explore the strengths and benefits of the new Java 8 language features.

Learn more about IntelliJ IDEA 13.1 and its support for Java 8.

About the Presenter:

Dr_Venkat_Subramaniam_200x200Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an instructional professor at the University of Houston. He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with agile practices on their software projects.

Venkat is a (co)author of multiple books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. His latest book is Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions. You can reach him by email at or on Twitter at @venkat_s.

For everything Java, visit IntelliJ IDEA Blog and follow @IntelliJIDEA on Twitter.

Posted in Screencast, Webinar | Tagged , , , | 4 Comments

[Live Webinar] TeamCity: Getting Started with Wes McClure

Join us Monday, April 7th for our free webinar, Getting Started with TeamCity. The live event begins at 13:00 EDT (18:00 GMT) and will be led by Wesley McClure, a TeamCity expert out of Seattle, Washington.

Do you have a blossoming cross-functional team but find yourself bogged down with manual, undocumented procedures to integrate and deliver value to users? Come find out how you can leverage TeamCity to continuously build, validate, package, and deliver value.

In this session, we would like to offer assistance to those of you who are currently evaluating TeamCity or are just getting started. During registration we will collect your feedback on initial struggles you may be facing and how we can make things better. We would like to hear what you hope to get out of the session so we can gear the demonstration and conversations in that direction.

Space is limited, please register now.

About the Presenter:
Wes McClureWes McClure is passionate about helping others achieve remarkable results with technology. Wes launched Full City Tech Co to leverage his expertise to help companies rapidly deliver high quality software to delight customers. Quality is achieved through collaborative practices like Continuous Integration. Wes has a strong background in using Continuous Integration with TeamCity to bring quality to the table. You can reach him by email.

Keep up with the latest TeamCity news on their blog and on Twitter @TeamCity.

Posted in Events, Partners, Screencast, Webinar | Tagged , , , , , , | Leave a comment

[Webinar Recording] Deployment with PhpStorm

The recording of our March 12th webinar featuring Maarten Balliauw and Mikhail Vink, Deployment with PhpStorm, is now available on JetBrains YouTube Channel.

How easy is it to connect to remote hosts from PhpStorm and copy over files from our project to the server? And can I do that when committing code to VCS?

In this webinar, we explore PhpStorm’s deployment options and answer these questions, and more. We see how to do the basics as well as how we can map different folders in our project to different folders on the server, synchronize application code and more.

Is it a good idea to deploy to production right from within PhpStorm? Are there other options that are better suited?

We explore the deployment cycle of our applications, and make sure we can develop smoothly on a development server or a Vagrant box. We also see how to use PhpStorm’s built-in deployment tools, Phing, and a sprinkle of continuous integration.

Maarten BalliauwMaarten Balliauw is a Technical Evangelist at JetBrains. His interests are all web: ASP.NET MVC, PHP and Windows Azure. He’s a Microsoft Most Valuable Professional (MVP) for Windows Azure and an ASPInsider. He has published many articles in both PHP and .NET literature such as MSDN magazine and PHP architect. Maarten is a frequent speaker at various national and international events such as MIX (Las Vegas), TechDays, DPC and others..

Keep up with the latest PhpStorm news on PhpStorm Blog and on Twitter @PhpStorm.

Posted in Screencast, Webinar | Tagged , , , , | Leave a comment