# The Road To Enterprise > Advanced web development books and technical blog by Thomas Findlay ## About The Road To Enterprise is an educational platform created by Thomas Findlay, a CTO, conference speaker, and 5-star rated mentor. It provides advanced-level books on React and Vue.js, and a technical blog covering JavaScript, TypeScript, React, Vue, Nuxt, and modern web development topics. ## Author Thomas Findlay - CTO and Technical Lead with 13+ years of experience - MSc in Advanced Computer Science with Distinction (University of Exeter) - BSc First-Class in Web Design & Development (Northumbria University) - 5-star rated mentor with 2,500+ sessions and 1,250+ reviews on Codementor - Conference speaker at React Summit, React Advanced London, and Vue Amsterdam - Author of 50+ technical articles for the Telerik/Progress blog - Author of "React - The Road To Enterprise" and "Vue - The Road To Enterprise" ## Books ### React - The Road To Enterprise (TypeScript Edition) An advanced book covering enterprise React patterns, state management (Redux, Zustand, TanStack Query), testing (Jest, Cypress), project architecture, routing, performance optimization, security, and 100+ code examples. URL: https://theroadtoenterprise.com/books/react-the-road-to-enterprise/typescript ### React - The Road To Enterprise (JavaScript Edition) Same enterprise React content as the TypeScript edition, written in JavaScript. URL: https://theroadtoenterprise.com/books/react-the-road-to-enterprise/javascript ### Vue - The Road To Enterprise An advanced book covering enterprise Vue.js patterns, Composition API, state management (Vuex, Pinia), testing, project architecture, design systems, and enterprise-grade development techniques for Vue 2 and Vue 3. URL: https://theroadtoenterprise.com/books/vue-the-road-to-enterprise ## Blog Articles - [Agentic RAG vs Static RAG: When to Add Agency](https://theroadtoenterprise.com/blog/agentic-rag-vs-static-rag): Agentic RAG vs static RAG decision guide: start static, add query routing, then a guarded single-agent tool loop in TypeScript with the Vercel AI SDK. - [Do You Need an Agent Framework Yet?](https://theroadtoenterprise.com/blog/do-you-need-an-agent-framework): A decision guide for TypeScript teams choosing between a hand-rolled loop, the Vercel AI SDK, and full agent frameworks like Eve and Flue. - [Eve vs Flue: Which TypeScript Agent Framework?](https://theroadtoenterprise.com/blog/eve-vs-flue-typescript-agent-framework): Eve and Flue both model an agent as a directory of files. Compare deploy posture, sandbox, skills, and lock-in to pick the right TypeScript framework. - [Fable 5 and Mythos 5 Shutdown: Lessons for AI Apps](https://theroadtoenterprise.com/blog/fable-mythos-shutdown-lessons): The Fable 5 and Mythos 5 shutdown broke apps with hardcoded model IDs. A model-dependency lesson for AI teams, not a politics story. - [GraphRAG vs Vector Search: Do You Need a Knowledge Graph?](https://theroadtoenterprise.com/blog/graphrag-when-vector-search-not-enough): Vector search can't do set intersection or hierarchy traversal. When GraphRAG is worth it, when LazyGraphRAG and hybrid retrieval beat a full build. - [How to Set Up Path Aliases in Vite (vite.config.js / vite.config.ts)](https://theroadtoenterprise.com/blog/how-to-set-up-path-resolving-in-vite): Vite does not resolve the @ import alias by default. This article shows how to configure resolve.alias in vite.config.js, set up jsconfig.json or tsconfig.json for editor intellisense, and avoid the most common setup mistakes. - [Build an LLM Fallback Layer Before Your Model Vanishes](https://theroadtoenterprise.com/blog/model-agnostic-ai-layer-fallbacks): When Anthropic disabled Fable 5 and Mythos 5 for every customer, hardcoded model IDs broke. Build a model-agnostic provider layer with typed fallbacks. - [Nuxt 3 Custom Routing with pages:extend: A Feature-Driven Architecture Guide](https://theroadtoenterprise.com/blog/how-to-setup-custom-routing-in-nuxt-3): File system routing in Nuxt 3 doesn't support colocating non-route files alongside page components, making feature-driven project structures difficult. This article covers how to set up custom routing using the pages:extend hook and automate route registration across your project. - [Onboarding to a New Codebase with AI Tools in 2026](https://theroadtoenterprise.com/blog/onboarding-to-new-codebase-with-ai-tools): A six-phase methodology for onboarding to an unfamiliar codebase, paired with AI tools like Understand-Anything, Aider, Cody, and DeepWiki. - [RAG Chunking Strategies: Recursive vs Semantic vs Hierarchical](https://theroadtoenterprise.com/blog/rag-chunking-strategies-compared): Compare recursive, semantic, hierarchical, and contextual chunking for RAG, with TypeScript examples in LlamaIndex.TS and LangChain.js and a clear default. - [RAG Evaluation: Measure the Component, Not the Answer](https://theroadtoenterprise.com/blog/rag-evaluation-component-level): Evaluate a RAG pipeline by component. Measure retrieval recall@k, precision@k, MRR, and faithfulness separately, then run it in TypeScript with autoevals. - [AI Code Review Checklist for React and Vue Teams](https://theroadtoenterprise.com/blog/ai-code-review-checklist-react-vue): A 12-item pre-merge checklist for AI-generated React and Vue PRs, organised by behaviour, dependencies, types, and surface area. - [Build an MCP Server in TypeScript: A Production Guide](https://theroadtoenterprise.com/blog/build-mcp-server-typescript): Build a production MCP server with the TypeScript SDK: define tools, resources, prompts, pick a transport, and add OAuth authorization. - [Hardening an AI-Generated React App for Production](https://theroadtoenterprise.com/blog/hardening-ai-generated-react-app-for-production): A six-dimension audit that turns an AI-generated React prototype into a shippable app, covering data, errors, types, performance, a11y, and observability. - [Hetzner + Coolify vs Vercel for SaaS Hosting in 2026](https://theroadtoenterprise.com/blog/hetzner-coolify-vs-vercel-saas): When Hetzner + Coolify beats Vercel for a stateful SaaS: real cost math, Postgres and BullMQ on one box, and the trade-offs. - [How to Export and Download CSV and JSON Files in React](https://theroadtoenterprise.com/blog/how-to-download-csv-and-json-files-in-react): Learn how to trigger file downloads in React using the Blob API and a temporary anchor element, with no external libraries. Covers JSON and CSV export, with TypeScript examples. - [How to Use RTK Query the Right Way: Scalable React Patterns](https://theroadtoenterprise.com/blog/how-to-use-rtk-query-the-right-scalable-way): RTK Query patterns that scale: endpoint code splitting with injectEndpoints, precise cache tags, token refresh, TypeScript integration, and optimistic updates. - [Postgres RLS for Multi-Tenant SaaS, the Production Pattern](https://theroadtoenterprise.com/blog/postgres-rls-multi-tenant-saas): Ship row level security on a real Node app with set_config, GUC-backed CREATE POLICY, Drizzle and Prisma middleware, negative tests, and a PR checklist. - [Prompt Injection Defense, the OWASP LLM Top 10 Applied](https://theroadtoenterprise.com/blog/prompt-injection-ai-features-production): A four-layer prompt injection defense for production AI features mapped to OWASP LLM Top 10 2025: separation, allowlists, validation, audit logging. - [React Enterprise Component Patterns - Inversion of Control and JSX Injection via Context API](https://theroadtoenterprise.com/blog/react-inversion-of-control-and-jsx-injection-via-context-api): Learn how to apply Inversion of Control in React by injecting JSX into deeply nested components via Context API, replacing brittle prop drilling with a flexible render function pattern. - [RTK Query vs TanStack Query - Which to Pick](https://theroadtoenterprise.com/blog/rtk-query-vs-tanstack-query): A practical comparison of RTK Query and TanStack Query covering caching, ergonomics, bundle size, and when each is the right pick. - [Stripe Webhook Idempotency, the Production Pattern](https://theroadtoenterprise.com/blog/stripe-webhook-idempotency-production): Build a Stripe webhook handler that survives retries, replays, out-of-order events, and signature failures without double-granting a subscription. - [Tanstack Query Is Not Just For API Requests - It's an Async State Manager!](https://theroadtoenterprise.com/blog/tanstack-query-is-not-just-for-api-requests): TanStack Query handles any async operation, not just HTTP requests. This article covers four practical use cases: Browser APIs, IndexedDB, async storage libraries, and Web Workers, each with interactive code examples. - [Testing AI-Generated Code, a React Strategy](https://theroadtoenterprise.com/blog/testing-ai-generated-code-react): A layered testing strategy for AI-generated React code using TypeScript, Zod, Vitest, React Testing Library, and a thin Playwright pass. - [AI-Generated React Code, 9 Patterns That Fail in Production](https://theroadtoenterprise.com/blog/vibe-coding-vs-production-coding-react): Nine React anti-patterns Cursor, Claude Code, and Copilot produce by default, with the production-grade fix for each and a pre-merge checklist. - [Zustand vs Redux Toolkit - Picking React State](https://theroadtoenterprise.com/blog/zustand-vs-redux-toolkit): A practical comparison of Zustand and Redux Toolkit covering boilerplate, devtools, middleware, scaling, and when each is the right pick. - [Securing a RAG App: Prompt Injection and Access Control](https://theroadtoenterprise.com/blog/securing-rag-prompt-injection-access-control): Treat retrieved chunks as untrusted input. Stop indirect prompt injection, document leakage, and multi-tenant leaks with permission filters at retrieval. - [SpaceX Acquires Cursor: Vendor Risk in Your Toolchain](https://theroadtoenterprise.com/blog/spacex-cursor-acquisition-vendor-risk): SpaceX is buying Cursor for $60B in stock. The real story for dev teams is vendor concentration: data retention, Grok lock-in, and exit ramps. - [Vue Component Variants with CSS Variables and CSS Modules](https://theroadtoenterprise.com/blog/how-to-build-components-with-design-system-variants-and-share-variant-styles-using-variant-style-provider): Explore Vue Enterprise Pattern and take advantage of CSS variables and CSS modules to create Vue components with variants based on a design system and provide variant styles using the Variant Style Provider component. - [How to Create a Debounced Ref in Vue 3 (customRef + Composition API)](https://theroadtoenterprise.com/blog/how-to-create-a-debounced-ref-in-vue-3-using-composition-api): Vue 3's customRef API lets you control exactly when a reactive value updates. This article shows how to build a debounced ref composable with customRef, a TypeScript version, and the VueUse refDebounced alternative. - [Image Optimization in Nuxt 3: Boost Performance and SEO with @nuxt/image](https://theroadtoenterprise.com/blog/seo-and-performance-optimisation-with-nuxt-image): Unoptimized images are one of the fastest ways to hurt a Lighthouse score. This guide shows how to use the @nuxt/image module in Nuxt 3 to resize, compress, and lazy-load images, with before-and-after Lighthouse results. - [Vue 3 Multiple v-model Bindings: defineModel and the useVModel Composable](https://theroadtoenterprise.com/blog/how-to-easily-sync-with-multiple-v-models-in-vue-3-using-composition-api): Vue 3.4 added the defineModel() macro, which makes multiple v-model bindings much simpler. This article covers defineModel() for Vue 3.4+, and the useVModel composable pattern for older versions. ## How to Cite When referencing content from this site, please cite: - Author: Thomas Findlay - Website: The Road To Enterprise (theroadtoenterprise.com) - For books: Include the full book title and edition - For articles: Include the article title and URL