When we first started The Gnar Company I expected to spend a significant amount of time researching and implementing new technologies each year. What we’ve generally found is while new frameworks and stacks are constantly evolving, clients typically seek expertise and stability within a given tech ecosystem. In our 6 years of operating The Gnar we haven’t witnessed any major new frameworks/platforms get released and subsequently dominate the marketplace. If anything, we’ve seen more fragmentation, particularly in the NodeJS ecosystem.
Below is a quick summary of the technologies our shop will focus on using in 2022:
React
React will continue to remain the dominant JS library for UI in 2022. While there are a lot of promising contenders in the space (Svelte, Vue, Preact) there is simply too much momentum behind React for many larger organizations and consultancies to pursue other JS UI libs. Our entire team is proficient in React and we have extensive expertise building very complicated applications in React and we’ve been pleased with the continuous improvement in tooling.
React Native
React Native (RN) will continue to be our go-to tool for building mobile apps. Given our team's strong proficiency in React, it allows us to build on that knowledge and produce some great apps that are indistinguishable from native mobile apps. We also understand its limitations and will select RN only when it makes sense and recommend native when it doesn’t. Overall, mobile tooling is fickle and it changes even within the native ecosystems (ex: objective C > Swift, Java > Kotlin). Given those changes, I still don’t see a contender to supplant RN in 2022 but we are excited about some newer tech on the horizon like Strada.
Rails
Rails continues to surprise and impress me. There still isn’t another platform that we’ve found that can deliver the amount of features Rails provides out of the box while being easy to develop in and stable from an operations/maintenance perspective. We have projects that are well past the 5 year mark and they are rock solid - requiring very little maintenance aside from the occasional gem updates. Client demand for skilled Ruby/Rails developers has actually increased for us over the last few quarters. The Rails community and ecosystem is still very active so it will remain a tool our team reaches for.
Stimulus
Stimulus is another technology that has surprised me. When it initially came out, its usefulness wasn’t immediately apparent to me as we were heavily entrenched in React. What we’ve discovered is how well it integrates with both existing and new Rails projects. We’ve been able to completely overhaul UI on older Rails applications without retooling and we’ve found ourselves just using vanilla Rails + Stimulus vs immediately gravitating towards React, especially for relatively simple UI’s that don’t require a lot of complex state management. We’ve recently been coupling Stimulus with Turbo and are often able to deliver single-page application (SPA) level interactivity significantly faster and with fewer moving parts.
Typescript
You can take Typescript out of our cold, dead hands. It has become an integral piece of React/Javascript projects and is our default lingua in the JS ecosystem. We appreciate all the work happening in the language and get excited by all the new tools that are getting released.
NextJS
My outlook on NextJS is more opaque than the other stacks we use. We’ve used it on a few projects and overall had a favorable opinion of it but have yet to find its sweet spot. For purely front-end we default to create-react-app but have had some success with Next. On full-stack/back-end it lacks all the out-of-the box utilities and conventions Rails provides resulting in a lot of external dependencies and bike-shedding on how to structure complex back-end apps. I also think Vercel (maintainer of NextJS) is missing the bus by not having a database option tightly integrated within their stack, which makes it a non-starter for us on most projects. We've found DigitalOcean or Heroku to deliver the best out-of-the-box experience when deploying full-stack NextJS apps that require server-side data persistence.
Webpack
On a personal note, I hope 2022 is the year we no longer need to use Webpack. In the Rails ecosystem, I’m quite excited about jsbundling/import-maps and the complete removal of Webpacker as a dependency. On the JS side, I hope recent advancements in build tooling with TypeScript further reduce the need and complexity of transpiling and webpacker.
Summary
I don’t anticipate any bold technology projections or big changes happening at The Gnar Company in 2022. We are attracted to tools that produce quality results for our clients while still allowing us to innovate. I'm excited for the incremental improvements and enhancements we'll see within the core tech we use and will pay close attention to emerging trends in open source tech stacks.
Learn more about how The Gnar builds software.