← Blog
node.jsreactreact nativeelectronengineering

My Go-To Stack: Node.js, React, and React Native

28 February 2026

Every developer eventually settles on a stack. Not because they've stopped learning, but because they've learned enough to recognise what actually works — for them, for their team, for their clients.

Mine is Node.js on the backend, React on the web, React Native (with Expo) on mobile, and Electron on desktop. I've shipped everything from real-time messaging platforms to booking systems to file organizers on this exact combination. Here's why.

One Language to Rule Them All

The single biggest advantage of this stack is JavaScript — or rather TypeScript — everywhere. The same language, the same patterns, the same mental model from the database layer to the UI.

This matters more than most people realize. When you're working alone or in a small team, context-switching between languages is expensive. Every time you move from Python to JavaScript to Swift, you're paying a cognitive tax. Keeping everything in TypeScript eliminates that tax entirely.

Shared types between frontend and backend. Shared utility functions. Shared validation logic. Code that travels freely across layers without translation.

Node.js: Fast Enough, Flexible Enough

Node.js gets unfairly criticized. Yes, it's not the right tool for CPU-bound computation. But for the vast majority of web applications — I/O-heavy services, APIs, WebSocket servers, real-time systems — it's excellent.

I've run Node.js backends handling thousands of concurrent WebSocket connections. I've built REST APIs that serve clients across four continents without breaking a sweat. The event loop model, combined with modern async/await syntax, makes for clean, readable, performant code.

The ecosystem — npm — is unmatched in breadth. Whatever you need, someone has already built it.

React: The Right Abstraction

React's component model is, to me, the most natural way to think about UI. You describe what the interface should look like given a certain state, and React figures out how to get there. Declarative, composable, predictable.

React has also become the lingua franca of frontend development. The talent pool is vast, the tooling is mature, and frameworks like Next.js have made it production-ready for virtually any use case.

React Native + Expo: One Codebase, Two Platforms

Building native apps used to mean choosing between iOS and Android — two languages, two codebases, two teams. React Native changed that, and Expo made it genuinely pleasant.

With Expo, I can go from idea to app store submission without touching Xcode or Android Studio for the majority of the development cycle. The developer experience is fast, the OTA updates are a game changer, and the component library covers everything I've ever needed.

Argan Mobile is a good example — a full meetings platform with audio and video, built entirely with React Native.

Electron: The Desktop Wildcard

For desktop applications, Electron lets me take everything I've already built for the web and package it as a native app for macOS and Windows. The performance tradeoffs are real, but for most applications they're completely acceptable.

Crono Desktop — a terminal-style file organizer with local encrypted storage — is built entirely on Electron and Node.js. It shipped fast precisely because I didn't have to learn a new paradigm.

The Real Advantage: Speed

The stack I use is not the most exotic, not the trendiest, and certainly not the only valid choice. What it is, is fast — fast to build with, fast to iterate on, fast to deploy.

As a solo developer running Honeyside, speed is everything. Every hour I spend fighting a new framework is an hour I'm not shipping value to clients. The depth I've built in this stack over 12+ years lets me move quickly, debug confidently, and deliver reliably.

That's the stack. That's why.