# Ovineko > Tools born from friction. Solutions that stay. This file contains links to documentation sections following the llmstxt.org standard. ## Table of Contents - [Development](https://ovineko.com/docs/contributing/development.md): - **Node.js** >= 24.11.0 - [Guidelines](https://ovineko.com/docs/contributing/guidelines.md): This is a **personal, opinionated monorepo**. The packages reflect specific workflows and preferences. Pull requests may be declined if they don't ... - [Installation](https://ovineko.com/docs/getting-started/installation.md): Each Ovineko package is published independently to npm. Install only the packages you need. - [Quick Start](https://ovineko.com/docs/getting-started/quick-start.md): Add resilient chunk loading and error recovery to your Vite + React SPA in three steps. - [Introduction](https://ovineko.com/docs/intro.md): A collection of tools born from friction. Solutions that stay. - [@ovineko/clean-pkg-json](https://ovineko.com/docs/packages/clean-pkg-json.md): Zero-config tool to clean `package.json` before publishing and restore it after. - [@ovineko/datamitsu-config](https://ovineko.com/docs/packages/datamitsu-config.md): Internal configuration package for datamitsu tooling (linting, formatting, etc.) - [@ovineko/fastify-base](https://ovineko.com/docs/packages/fastify-base.md): Pre-configured Fastify server with Sentry, Prometheus, OpenTelemetry, healthcheck, and other common integrations. - [Overview](https://ovineko.com/docs/packages/overview.md): Standalone utility packages for modern web applications. Each package is independently versioned and published. - [@ovineko/react-router](https://ovineko.com/docs/packages/react-router.md): Type-safe wrapper for React Router v7 with valibot schema validation, automatic error handling, and typed params. - [Philosophy](https://ovineko.com/docs/philosophy.md): There's a particular kind of pain — when you realize you're solving a problem you've already solved. Not just similar. The exact same one. And once... - [Core (@ovineko/spa-guard)](https://ovineko.com/docs/spa-guard/core.md): Core runtime for spa-guard — chunk load error handling, version checking, spinner, i18n, and event schema for SPAs. - [ESLint (@ovineko/spa-guard-eslint)](https://ovineko.com/docs/spa-guard/eslint.md): ESLint plugin with rules that enforce spa-guard usage patterns: `no-direct-lazy` and `no-direct-error-boundary`. - [Fastify (@ovineko/spa-guard-fastify)](https://ovineko.com/docs/spa-guard/fastify.md): Fastify plugin for spa-guard beacon endpoint and HTML cache handler with ETag/304 support. - [Integration Guide (15 minutes)](https://ovineko.com/docs/spa-guard/integration-guide.md): This guide walks through adding SPA Guard to an existing React + Vite application. Steps 1–5 are the core setup (~10 minutes). Steps 6–7 are option... - [Node.js (@ovineko/spa-guard-node)](https://ovineko.com/docs/spa-guard/node.md): Server-side HTML cache for spa-guard — pre-compresses your SPA's HTML for all languages and serves it with ETag/304 and content-encoding negotiation. - [Overview](https://ovineko.com/docs/spa-guard/overview.md): A family of packages for resilient single-page applications with automatic retry, cache busting, and error reporting. - [React Router (@ovineko/spa-guard-react-router)](https://ovineko.com/docs/spa-guard/react-router.md): React Router v7 error boundary integration for [spa-guard](./core). - [React (@ovineko/spa-guard-react)](https://ovineko.com/docs/spa-guard/react.md): React hooks, components, and error boundaries for [spa-guard](./core). - [Why Server-Side HTML Cache?](https://ovineko.com/docs/spa-guard/server-html-cache.md): When JavaScript fails to load, who renders the fallback UI? This is the bootstrapping problem — and it's why `@ovineko/spa-guard-node` and `@ovinek... - [Vite Plugin (@ovineko/spa-guard-vite)](https://ovineko.com/docs/spa-guard/vite.md): Vite plugin for spa-guard — injects the runtime inline script and loading spinner into your SPA's HTML at build time. - [Why SPA Guard?](https://ovineko.com/docs/spa-guard/why.md): The problem SPA Guard solves is real, subtle, and nearly universal for any application that ships to production. This page documents the error case...