Engineering
Software Stacks for the Long Haul
Weighing innovation, functionality, and stability in your software choices.
At Postlight, we’re known for using modern technology to build our products and accomplish our client’s goals. From AWS Lambda to GraphQL, we take advantage of some of the latest software innovations.
But the word modern cuts both ways. New isn’t always better! Stability is very important and something we care about deeply. We choose tools that strike the right balance between stability, functionality, engineering productivity, and long-term maintainability.
What plays into these decisions? Let’s dive into it.
The core: stable platforms
When thinking about a software stack, we start with the foundation. The primary technology choices–languages, frameworks, platforms–are critical. One of the questions we ask ourselves is: Will this platform be around in 5 years? If the answer makes us uneasy, then it’s time to reevaluate.
One of the platforms we lean on is WordPress. WordPress is not the hottest new CMS on the planet, but it has a massive, stable ecosystem. Not only is WordPress going to be around in 5 years, it will almost certainly be here in 50. A stable platform like WordPress opens up the flexibility to innovate in other ways. This is why we may pair a React frontend with WordPress when the project calls for a lot of rich interactivity.
React is another tool we reach for and use heavily. It is part of the foundation of a lot of our work. The pace of change in the world of modern JavaScript can feel overwhelming at times. This is why a tool like React core is a blessing. The API has been stable for years–a long time in the world of JavaScript–and it’s a good thing when we can set aside a React app for a year or two and come back to something familiar. Most tooling in JavaScript can’t make that claim.
This leads us to the next set of choices we need to make. When do we adopt something new?
Calculated bets & adoption
The engineering team at Postlight is constantly evaluating, learning, and absorbing the innovation in the industry. So when do we make the call to adopt a new piece of technology? Many factors play into it.
When we see a new piece of tech that provides real value – something that is truly solving a common problem, we evaluate it. A good example of this is the Serverless evolution led by AWS Lambda.
When Lambda first hit the scene, it provided a model that fit a lot of our use cases. Managing the infrastructure was easier. Scaling out came (mostly) for free. Long-term maintenance was less of a burden. And it has the backing of AWS, one of the largest cloud providers in the world. We were early adopters of Serverless platforms, and it’s served us very well.
We also evaluate new technology based on how it improves engineering productivity. This is one of the reasons we’re proponents of GraphQL. GraphQL brings a strongly-typed schema to your data, and gives clients control over requesting exactly what they need. When GraphQL is paired with React, it’s an incredible toolchain.
But it’s not a silver bullet. When GraphQL was first open sourced, we were intrigued, but also had a lot of questions. How do we keep performance bounded and predictable? Can we cache GraphQL requests at the edge using tried-and-true HTTP caching strategies? What about real-time data? These were just a few of the areas we evaluated and watched with interest as GraphQL gained traction. We’ve answered many of these questions, and have been very happy adopting GraphQL internally and for clients.
Looking to the future
Having laid the foundation for our software stack, we are always looking for the next set of innovations. We do a lot of experimentation and evaluation in Postlight Labs, where we have the freedom to explore without bounds.
One of the areas we’ve been following with interest is edge computing. Platforms like Cloudflare Workers and Fastly Terrarium are pushing the boundaries of what can be built leveraging massive CDN networks all over the world. One of our engineers, Shawn Kelly, recently explored Cloudflare Workers in depth and shared his findings with the world. Check out SecretMsg, which uses Cloudflare Workers and the Workers KV Store!
Building software for a wide array of clients means we have experience understanding a variety of business and product requirements, helping our clients decide whether to build or buy, and recommending software stacks that are both forward-looking and stable. If you’d like to talk through the right stack for your next project, drop us a line: hello@postlight.com.
Aaron Ortbals is a Partner and Director of Engineering at Postlight.
Story published on May 15, 2019.