Web technology is rapidly evolving. It might be tempting to adopt the latest web tools, but bouncing from one trend to the next leads to inefficiencies. The key is finding the proper balance of flexibility and strict adherence to a web stack.
Our Web Services team is made up of seasoned developers who take a pragmatic approach to the languages and frameworks they use, while always staying informed of new technologies. This ensures that our clients benefit from the best technology available.
We caught up with Black Pixel Director of Web Services Brad Cerasani to discuss how he and his team chose some of the technologies in our current web stack, practices that help our web projects run smoothly, and where the web industry is headed next.
What language does your team prefer to write in?
Which technology do we use most on the server side?
Which technology do we use most on the client side?
We use React for building user interfaces. It's solely a library used for rendering our views, so it's super performant. And, since it only focuses on view logic, it's easy to drop into existing applications without a complete rewrite.
What do we use to process CSS?
We use PostCSS. On it's own, PostCSS doesn't do anything, but it has a rich plugin ecosystem that allows our developers to do almost anything imaginable to a CSS file's contents. PostCSS forces us to think about which plugins we'd like to use to manipulate our code, instead of giving us more than we need.
What do we use for storing data?
It depends on the project, but our favourite for relational data is PostgreSQL. We'll often work on MySQL and MongoDB datastores as well because of their ubiquity. For caching, we reach for Redis or Memcached.
Which operating system does our team use?
For development we primarily use OS X, but a few of our engineers were Windows users before joining the company. Everyone has some familiarity with Linux as well, since that's what most servers run.
To lint our CSS, we use stylelint and postcss-bem-linter with a custom config for UsonianCSS, which is our baseline CSS boilerplate. Stylelint is ESlint for CSS. It helps us maintain an alphabetical order of CSS properties, consistent block formatting, and naming conventions (among other things).
How do you vet a new technology?
We look at how often people are engaging with an open-source technology on GitHub, where you can see if it's actively being worked on. If it's available on npm, we'll check its stats to see how frequently it's being downloaded. If there's a lot of activity with a particular technology, that tells me that it is alive and worth exploring more.
What new technologies does your team have its eye on now?
Facebook's GraphQL is a new way to facilitate client-server communication. It could be really interesting to use on a project where we're building server-side support for a mobile client.
Netflix's Falcor attempts to solve the same problem with a slightly different approach that could also have a drastic impact on client-server data transfers.
The aforementioned tools have proven their merit in building web applications that scale to millions of people. If you would like a closer look at these technologies and their evolutions, Cerasani goes into more detail about our web stack on BPXL Craft.