stacks

Stack playbooks

Pick a stack on purpose

Each playbook covers the circumstances that justify it, why the pieces work together, architectural examples, and the tradeoff that should send you elsewhere.

Not sure which one fits?Answer a few questions and get the playbook a dev would reach for — or an honest answer when nothing fits.Stack picker →

Vite + React + Supabase + Vercel

A short path from idea to a real product with auth, a database, and a public URL.

ViteReact + TypeScriptTailwind CSSSupabase (Postgres)

skip if — you need server-rendered marketing pages for SEO, or if your authorization rules are too complex to express as row policies.

Next.js + Postgres + Prisma + Vercel

The default choice when you need SEO, server rendering, and typed database access in one codebase.

Next.js (App Router)React Server ComponentsPostgresPrisma

skip if — your app is a purely internal dashboard behind a login — the server rendering cost buys you SEO you will never use.

Astro + Markdown + CDN

Content sites that stay fast because there is almost no JavaScript to ship.

AstroMarkdown / MDXContent CollectionsTailwind CSS

skip if — the page content depends on who is logged in — personalization fights a fully static build.

WordPress + managed hosting

Hard to beat when non-developers must publish daily and the budget favors plugins over engineers.

WordPressPHP + MySQLManaged host (WP Engine, Kinsta, Pressable)Block themes

skip if — the product is an application rather than a site — app-like state in WordPress means fighting the platform every sprint.

React Native + Expo

One TypeScript codebase for iOS and Android when the app is mostly screens, lists, and forms.

React NativeExpo SDKExpo RouterEAS Build / Submit

skip if — the product depends on heavy custom rendering, sustained background processing, or bleeding-edge OS features on day one.

Turborepo + pnpm + shared UI package

For teams running several apps that must look and behave like one product.

pnpm workspacesTurborepopackages/uipackages/config

skip if — you have one app and one team — a monorepo adds tooling overhead that only pays off across multiple consumers.

Tauri + React + SQLite

Small, fast desktop apps built with web skills, with data stored on the user's machine.

TauriReact + TypeScriptViteRust

skip if — you need pixel-identical rendering on every OS or rely on Chromium-only APIs — each platform's webview differs, and Electron is the safer bet there.

FastAPI + Postgres + SQLAlchemy

A typed Python API for when your data work, ML models, or team already live in Python.

FastAPIPydanticSQLAlchemyAlembic

skip if — the whole team writes TypeScript and there's no Python-specific work — a TypeScript backend keeps one language and shares types with the frontend.

Phaser + TypeScript + Vite

2D games that load instantly in a browser tab — and can still ship to Steam.

PhaserTypeScriptViteTiled

skip if — you need 3D, console releases, or tens of thousands of moving objects — a native engine like Godot or Unity fits better.

Godot + GDScript

A royalty-free engine for indie games headed to Steam, mobile, or consoles.

GodotGDScriptC# (optional)Kenney assets

skip if — the game must run well in a browser tab, or the team is already deep in Unity's asset ecosystem — Godot's web export has limits and its asset marketplace is smaller.

B2B SaaS (organizations / multi-tenant): Next.js + Postgres + Better Auth

Organizations / multi-tenant apps where your customers are companies: one shared database, per-org data, roles, and SSO.

Next.js (App Router)PostgresPrismaBetter Auth

skip if — your customers are individuals, not organizations — per-tenant scoping, roles, and SSO add weight a single-user app never uses.

TypeScript API service: NestJS + Postgres + Prisma

A standalone TypeScript API that several clients depend on — mobile apps, partners, other services — with a validated contract and generated docs.

NestJSPostgresPrismaOpenAPI (@nestjs/swagger)

skip if — the API is small or has a single client — a lighter framework such as Fastify or Hono, or route handlers next to your web app, costs far less ceremony.

Collaborative editing (local-first): Yjs + Hocuspocus + Tiptap + Postgres

Documents and boards several people edit at once — changes merge automatically, survive going offline, and persist to Postgres.

YjsHocuspocusTiptapy-indexeddb

skip if — edits rarely overlap — last-write-wins through a normal API is simpler, and a collaboration server is one more stateful service to run.

3D web game: Three.js + Rapier + Vite

3D games and explorable worlds that run in a browser tab — a link instead of an install.

Three.jsRapierViteTypeScript

skip if — the game needs large worlds, console releases, or an editor-driven workflow for designers — a full engine such as Godot or PlayCanvas fits better.

Desktop app: Electron + React + Vite

Desktop apps that must look and behave the same on every OS — bundled Chromium, a React UI, and Node.js behind a narrow bridge.

ElectronReact + TypeScriptVitePreload + contextBridge

skip if — download size or memory use matters more than identical rendering — Tauri uses the OS webview and ships a fraction of the size.

Shopify + Hydrogen + Oxygen

A custom React storefront backed by Shopify commerce, with server-rendered pages and a hosted checkout rather than a cart and order system you build yourself.

ShopifyHydrogenReact + TypeScriptReact Router

skip if — you need to self-host the commerce backend, or a standard Shopify theme already meets the brief — a custom storefront adds development and integration work.

Unity + C#

A code-led game workflow: C# gameplay systems, an editor for scenes and assets, and a rendering pipeline chosen for the hardware you actually ship to.

UnityC#URP / HDRPUnity Profiler

skip if — an open-source engine license is a hard requirement, or designers need a Blueprint-led Unreal workflow — Unity uses commercial engine terms and this playbook centers C#.

Unreal Engine + Blueprints + C++

A designer-led 3D game workflow: Blueprints for iteration, C++ for shared foundations, and Unreal's rendering and cinematic tools with a measured device budget.

Unreal EngineBlueprintsC++Sequencer

skip if — the game must run in a browser, an open-source engine license is required, or the team wants C# as its main gameplay language.

Native iOS — Swift + SwiftUI

An iOS app with SwiftUI screens and Swift services around Apple SDKs, for teams whose device integration matters more than sharing one UI across platforms.

SwiftSwiftUIUIKit interoperabilityApple device frameworks

skip if — Android is the first target, or one shared UI implementation across iOS and Android is a hard requirement.

Native Android — Kotlin + Jetpack Compose

An Android app with Compose screens and Kotlin services around platform APIs, with explicit state ownership, device testing, and task-specific background scheduling.

KotlinJetpack ComposeViewModel + repositoriesAndroid device APIs

skip if — iOS is the first target, or one shared UI implementation across iOS and Android is a hard requirement.

Roblox Studio + Luau

Build a multiplayer experience for the Roblox platform with Studio, Luau scripts, and Roblox-hosted services. Choose this when reaching Roblox players matters more than shipping a standalone game.

Roblox StudioLuauRemoteEventsDataStoreService

skip if — you need a standalone store release, an ordinary browser game, offline play, or control over hosting outside Roblox.

GameMaker + GML

An editor-led workflow for 2D games: rooms and objects for composition, GML for reusable gameplay, and platform exports for release.

GameMakerGML

skip if — 3D is central, an open-source engine is required, or the team wants Lua rather than GML.

Ren'Py + story scripts

A story-first workflow for visual novels: dialogue and branching in Ren'Py scripts, screens for UI, and Python for custom rules.

Ren'PyScreen languagePython

skip if — real-time action or 3D simulation drives the game, or direct console export is a requirement.

LÖVE + Lua

A code-led 2D workflow with Lua and LÖVE: write the game loop and systems yourself, with rendering, input, audio, and physics APIs supplied by the framework.

LÖVELua modules

skip if — you need a visual scene editor, 3D, or an official browser or console export workflow.

Construct 3 + event sheets

An event-led 2D workflow for teams that want to build gameplay visually in a browser-based editor, with scripting available when needed.

Construct 3Event sheetsJavaScript

skip if — an open-source engine is required, advanced 3D is central, or a code-first Lua workflow is the goal.

RPG Maker MZ + events

A map-and-event workflow for 2D RPGs: build maps, configure the game database, script encounters through events, and add compatible plugins only when needed.

RPG Maker MZEvents, switches, and variablesJavaScript plugins

skip if — the game requires a general-purpose 3D engine, a code-first Lua workflow, or direct console export.

Defold + Lua

An editor-and-Lua workflow for compact cross-platform games: collections and components for composition, Lua scripts for behavior, and a built-in build pipeline.

DefoldLua scripts and modulesMessage passing

skip if — an OSI-approved open-source engine license is mandatory, or the team needs a high-fidelity 3D editor workflow.

SvelteKit + server routes

A Svelte-first application workflow for public pages and authenticated features: server loads and form actions keep sensitive work beside the UI.

SvelteKitTypeScript

skip if — the team requires React, or the product needs organization SSO or collaborative editing without first designing those systems.

Vue + Vite + Supabase

A Vue client application with managed authentication and relational data: static frontend delivery, explicit row policies, and server functions for privileged work.

VueViteSupabase

skip if — public pages require server rendering, or complex organization permissions need a dedicated server authorization layer.

Firebase Auth + Firestore + Hosting

A managed backend workflow for client apps with document data, authentication, and live updates; security rules and query costs are part of the design.

Firebase AuthenticationCloud FirestoreFirebase Hosting

skip if — relational joins and reporting drive the data model, strict self-hosting is required, or a document-query cost model is unsuitable.

Babylon.js + TypeScript + Vite

A code-first browser 3D workflow with engine-level scene, camera, material, and asset systems; build and ship a measured web bundle.

Babylon.jsTypeScriptVite

skip if — native console distribution is the primary target, or the team requires a visual editor as its main authoring workflow.

PlayCanvas + entities and scripts

A browser-first 3D workflow built around entities, components, assets, and scripts, with an optional hosted editor for visual scene authoring.

PlayCanvas engineScene and asset workflow

skip if — native console distribution is primary, or a required offline visual editor is incompatible with the chosen hosted authoring workflow.

MonoGame + C# + content pipeline

A code-first 2D game workflow for .NET teams that want control of update, draw, and asset processing without an integrated scene editor.

MonoGameContent pipeline

skip if — a visual scene editor is required, browser delivery is the primary target, or a high-fidelity 3D production workflow is central.

raylib + C + explicit game loop

A small C-based 2D game workflow: initialize the library, update game state, draw each frame, and own resource lifetime and packaging.

raylibC game loop

skip if — a visual scene editor is required, browser delivery is the primary target, or a high-fidelity 3D production workflow is central.

libGDX + Java + platform backends

A Java-based 2D game workflow with shared game code and separate platform launchers; manage assets, lifecycle, and packaging explicitly.

libGDXJava core and launchers

skip if — a visual scene editor is required, browser delivery is the primary target, or a high-fidelity 3D production workflow is central.

WWADD — Choose the tool. Make the move. Build the stack.

FREE REFERENCE · NO LOGINCONTACTPRIVACYTERMS