For Spectacle Editor, our current collaboration with Plot.ly, we decided to use MobX to handle application state instead of Redux. Redux is an amazing framework, and here at Formidable we continue to use it on new and existing client projects with great results. In part, the decision to use MobX was...
Spectacle Editor is a collaboration between Plotly and Formidable. The end result will be the first open source presentation tool with deep Plotly integration. Building on top of everyone’s favorite React slide show framework, Spectacle, we’re inviting the community to witness and participate in...
Inside Formidable, we encourage collaboration and bold, well-researched ideas. Some ideas stick with you longer than others, and continue to inform you work, either directly or indirectly. Here are some that keep the creative fire burning for members of our team. The idea that creating things...
Writing and maintaining CSS for large applications (and large teams) can be challenging. Teams often have trouble with brittle selectors, naming collisions, specificity, and pile-ups of dead code. After seeing these issues first-hand on large projects, we built Radium: a JavaScript library for...
I’m not a designer. I’m a JavaScript developer. When I write CSS it takes me longer than it should, and often ends with someone more talented indulgently explaining how I could have avoided making such a mess of things. So, while I can literally do the thing, I can't claim to have design...
Working in React Native has been an amazing experience. Coming from React, the workflow has been nearly frictionless. There has, however, been one question lingering: How the hell am I going to test this? Specifically, what is the best way to unit test my component logic? Testing JavaScript that...
Spectacle, if you haven’t seen it, is another in a long line of HTML presentation tools, but this one has rocketed into popularity (which isn’t exactly common for something like presentation tooling). Since I had heard it has a few neat tricks up its sleeve, and as a born and bred skeptic, I...
A team here at Formidable was recently tasked with choosing a JavaScript loader in order to dynamically load scripts in the browser. After exhaustively testing every script loader we could think of, we found them all to fail in at least one way. With a complete test suite in hand, we set out to...
Preamble: React has become very popular among developers and there are lots of resources that speak to its technical merits. However, migrating to (or choosing) a new framework ultimately comes down to selling it to everybody at the table — including non-developers. There are very few...
I love D3 — it was one of the reason I became a developer. It introduced me to the concept of functional UI. And, given the direction of the Front-End ecosystem, re-rendering based on diffed arrays (if not diffing the resultant SVG) was clearly ahead of its time and part of the inspiration for...
Radium is a set of tools to manage inline styles on React elements. It gives you powerful styling capabilities without CSS, and was built over about 2 months at Formidable Labs in response to our excitement about a talk by Christopher Chedeau (and, more broadly, the mindshifting way that Facebook is...
On Nov. 18, 2014, I presented a talk on “Backbone.js with React Views” at the inaugural Seattle ReactJS Meetup. Backbone.js Backbone.js powers some of the largest web applications on the Internet and we use the framework extensively at Formidable Labs. It provides simple and flexible...
A few weeks ago, I presented a talk on “Making JavaScript Tests Fast, Easy, & Friendly” at the CascasdiaJS 2014 conference in Portland, OR. The talk looks beyond the traditional technical details of wiring up test frameworks and focuses on creating processes and environments that...
Accessibility is a foundational feature of the web. It is a direct reflection of a key tenet of the platform: the free and universal sharing of knowledge, unfettered by language, location, or disability. This is why it’s disappointing that accessibility is so often (and so easily) overlooked...