TECHNOLOGY RADAR
The technology radar presents our “blessed” technologies, and other technologies that may become some of our blessed technologies - and some that we explicitly want to avoid. We call it the Technology Radar like Thoughtworks and other tech companies just for familiarity.
The Four Rings
RING
DESCRIPTION
adopt
We use these when they are appropriate for the type of the project. We’ve used them extensively and they’ve proven to be very successful choices for the appropriate projects.
trial
Things nearly certain to be worth using at least in the future, and may end up replacing some of our adopted technologies. Can be used in new projects where the risk can be controlled.
assess
Worth exploring with the goal of understanding. Not yet for any customer projects.
hold
Things we’ve trialed and used, but we would not like to use them in new projects.
The Radar
NAME
RING
TAGS
DESCRIPTION
Typescript
adopt
languages
We try to stick to a single language. We use Typescript for everything. We know many more, but regardless we’ll do everything with Typescript where it is good enough.
ReactJS
adopt
frontend
For Web and Mobile. We continue to assess other options as serious ones pop up, but nothing much better, and its ecosystem has ever shown up.
NodeJS
adopt
backend
Not much to say. We’re a JS shop and except Deno there aren’t any serious options.
NextJS
adopt
frameworks
websites
We use this for websites. It has the needed features like SSR, SSG, ISG, and a routing architecture which is a perfect fit for websites. No need to poke around with the build.
BlitzJS
adopt
webapp
frameworks
Fullstack JS framework. Built on top of React/NextJS/Prisma/Postgres. We use it as our “Ruby on Rails” for Web Applications. It’s mostly an opinionated collection of libraries on top of NextJS and incredibly productive.
Prisma
adopt
webapp
libraries
An ORM with excellent developer experience. It doesn’t abstract too much and produces efficient queries. Provides strict typing for all DB access and solid DB migrations. We use it to access Postgres.
Postgres
adopt
webapp
datastores
Databases come and go, except Postgres, it always stays because it is solid and extensible for most use cases.
Redis
adopt
webapp
datastores
Great for Caching and Queueing. Sometimes as a message bus.
Tailwind
adopt
webapp
website
styling
It’s easy to pick up. It has very little abstraction. It produces CSS as external style sheets which are important for Website projects.
Render.com
adopt
webapp
platforms
Similar to Heroku, but it’s moderately priced and will do the boring OPS work for us that repeats itself in every project. Let’s us create scaleable web apps with postgres + redis with prodution and staging environments and automatic deployments, distributed logging an in less than half a day.
Vercel.com
adopt
website
platforms
Serverless deployment platform. Great for websites when paired with NextJS. Global CDN. Automated website performance monitoring built in.
Figma
adopt
tools
UX/Design tool of choice. Good for communicating ideas.
React Native
adopt
mobileapp
frameworks
When Mobile, then React Native
Storyblok
adopt
website
datastores
Headless CMS with a Visual Editor. It’s extensible enough for most our use cases in websites and has among the best user experiences for content editors.
Sanity
adopt
website
datastores
Pairing Sanity with Shopify projects is a great choice because of their excellent integration.
Framer Motion
adopt
frontend
libraries
Modern, react-oriented, and battle-tested in our production-grade projects animation framework. Creating a bit more complicated animations with this tool feels like a breeze ;-)
Conventional commits
adopt
tools
The way we structure our commit messages (https://conventionalcommits.org/).
Hydrogen
adopt
e-commerce
frontend
frameworks
Released by Shopify enables you to build a custom, headless, and optimized-for-performance e-commerce experience. Greatly aligns with our company tech stack.
Remix
trial
website
webapp
framework
We’re trialing this. Remix architecture is brilliant in its simplicity due to it leveraging common web standards. We use it in our Shopify projects for admin apps and it's been working great. However, Next.js is still our preferred option. If BlitzJS adds support for Remix then we’ll likely take the plunge.
Vite
trial
webapp
website
tools
We usually don’t have a need to muck about with build tools since we always base our projects on frameworks that make the build tool choice for us, but Vite is on the radar when it’s not an option.
ThreeJS + React-Three
trial
website
libraries
We’d like to get deeper into web based 3d, specifically with React.
BunJS
trial
tools
New kid on the block. All-in-one Javascript runtime. It’s still in the early days but with great promise.
Oxygen
assess
e-commerce
platforms
Fastest way to deploy Hydrogen storefronts.
T3 App Stack
assess
webapp
frameworks
T3 getting a lot of attention and traction lately. We feel this might be the framework which potentially can replace Blitzjs, which currently feels a little bit stagnant at the moment.
Digital Ocen Apps
assess
website
platforms
After recent changes in Render pricing, we believe there are more affordable solutions available. We have heard great things about the Digital Ocean App Platform and are excited to give it a try!
Astro
assess
frameworks
website
We find Astro to be superior in certain use-cases, particularly when content is crucial and optimal performance is needed to satisfy SEO gods.
Chakra
hold
webapp
styling
We're putting Chakra UI on a little break for our Web Apps. It's been great, but there are some cool new ways to style apps popping up. Time to see what's out there and keep things fresh!
SolidJS
hold
website
frontend
frameworks
Keeping our eye on this if we’d get a specific use case, but its ecosystem is too minimal, nor does its advantages bring enough value considering its disadvantages in comparison to React.
VueJS
hold
webapp
frontend
We’ve trialed VueJS and deduced there is no reason to use it over React. For our engineers and projects, it’s worse in all regards.
Angular
hold
webapp
frontend
We’ve had to use Angular due to customer requirements. We no longer accept any projects from customers who require Angular.
Flutter
hold
mobileapp
frameworks
We’ve trialed this when the use case seemed to be a fit. We find it has too many rough edges and it diverges too much from our core JS foundation.
GatsbyJS
hold
website
frameworks
We consider GatsbyJS a great framework, but that other frameworks have driven past it, leaving it obsolete.
NestJS
hold
webapp
frameworks
backend
We rarely need pure backend frameworks. If we did, we’d explore other options before trialing NestJS again. E.g. Moleculer, AdonisJS, or just plain express.