Blog: Technical
Technical Articles
Browse all our technical articles

We cut our Mongo DB costs by 90% by moving to Hetzner
We made the switch from AWS-hosted MongoDB Atlas to a self-hosted solution on Hetzner, resulting in a 90% reduction in costs while maintaining performance and reliability.

Chris Taylor
3 min read

Reactive Frameworks Cheatsheet - React, Vue, Svelte and Angular

Maxim Akimov
10 min read

PHP Views Package - Templating Made Easy with Blade and Model-Driven Approach

Maxim Akimov
10 min read

Streamlining Releases: Building Scalable CICD Pipelines with Changesets
Overcome common challenges and scale your CICD pipelines for seamless versioning, releases and deployments.

George Oastler
17 min read

Independent vs Locked Versioning in a Workspace
Discover the key differences between locked and independent versioning in workspaces, and learn how to optimize your team's development and deployment workflows.

George Oastler
6 min read

Mastering Versioning: A Guide to Software Stability
Explore the essentials of versioning in software development, from semantic versioning basics to avoiding common pitfalls, and learn how to manage dependencies and updates with confidence

George Oastler
10 min read

Monorepo vs Multirepo Architecture: How to Decide?
Discover the pros and cons of monorepo vs multirepo architectures, and learn how to choose the right approach for your projects to streamline development and accelerate delivery.

George Oastler
10 min read

How to Test Your Ansible Playbooks Locally
Testing your Ansible playbooks locally can save you time and effort. Here are some tips to help you get started.

Chris Taylor
10 min read

tsx vs ts-node: Time to Drop ts-node for tsx
tsx vs ts-node compared: why tsx runs TypeScript faster than ts-node, and how to migrate your Node.js scripts away from ts-node today.

Chris Taylor
4 min read

actions/cache@v3 restore: GitHub Actions Cache Fix
Fix GitHub Actions caching with actions/cache@v3 and actions/cache/restore: share caches across branches and evict old caches faster.

George Oastler
10 min read

TypeScript: Branded Types 🔧
How to brand TypeScript types for norminal typing, providing an automated and easy-to-use way of making a type nominal.

George Oastler
10 min read

Using Vite To Rebuild Local Dependencies in an NPM Workspace
When we make changes to a package that our vite project depends on, Vite doesn't automatically rebuild the local package dependency as it's outside the module graph. This article explains how to get Vite to rebuild local dependencies in an NPM workspace.

Chris Taylor
6 min read

Vite: How to handle `.node` files
Work around for handling `.node` files in vite using a custom plugin. `.node` files are the nodejs way of providing platform specific code. This sounds great, until Vite enters the mix. Vite has no ability to handle native binaries whilst bundling, interpreting `.node` files as raw js. In this article we discuss how to handle `.node` files in Vite.

George Oastler
10 min read

TypeScript: Mapped Type Magic 🪄
Explore how TypeScript mapped types can create some perplexing paradoxes where Cat === Dog! An overview of how to brand identical types so that the TypeScript compiler can tell them apart from each other.

George Oastler
10 min read