# sergiodxa/remix-utils

A set of utility functions and types to use with Remix.run

Repository: https://github.com/sergiodxa/remix-utils
Canonical: https://ross.abutalabs.com/products/remix-utils
Homepage: https://sergiodxa.github.io/remix-utils/
Language: TypeScript
License: MIT
License Family: permissive
Last push: 2026-08-01T10:02:49+00:00

## Health v2 (maintenance only)
Score: 94/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 95, release rhythm 89, longevity 100
- inputs: {"age_days": 1948, "days_push": 32, "days_rel": 74, "gap_med": 5, "n_releases_24m": 20}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2368, forks 147 (observed 2026-08-28T04:06:41.690620+00:00)

## What it is
Remix Utils is a TypeScript collection of utility functions and types for building web apps with Remix and React Router, covering areas like promise handling, JWT auth, CSRF protection, timeouts, IP detection, and server timing. It ships as an npm package and is also distributed through a shadcn registry so individual utilities can be installed on demand with their optional dependencies.

## Use cases
- run multiple promises in parallel inside a Remix loader
- add a timeout to a fetch call in a React Router app
- protect form submissions with CSRF tokens in Remix
- create and verify JWTs in a React Router application
- get the client IP address from a Remix request
- parse the Accept-Language header to detect a user's locale
- emit Server-Timing headers to profile Remix loaders
- render a component only on the client in Remix

## When to choose
- You're building an app with Remix or React Router and want battle-tested helpers for loaders, actions, and components
- You prefer cherry-picking small, modular utilities with optional dependencies instead of a heavy framework
- You need common web app helpers (CSRF, JWT, timeouts, IP parsing) with TypeScript types included

## When to avoid
- Your project doesn't use Remix or React Router, since most utilities assume their request/response model
- You're still on React Router v7 and can't upgrade, because v10 requires React Router v8
- You need a general-purpose utility belt like lodash rather than web-framework-specific helpers

## Facets
- artifact type: library
- maturity: active
- function: concurrency, auth, middleware, developer-tools, monitoring
- domain: web-development, backend, frontend, developer-tools
- platform: browser
- tags: remix, react-router, react, typescript, utility-library, promise-helpers, csrf, jwt, server-timing, shadcn-registry, nodejs, web-server

## Member repositories
- sergiodxa/remix-utils (main) score 94

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:41.690620+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:35:56.685922+00:00, confidence not recorded.
  - readme: https://github.com/sergiodxa/remix-utils (fetched 2026-08-28T04:06:41.690620+00:00, sha c230de32d942)
  - homepage: https://sergiodxa.github.io/remix-utils/ (fetched 2026-08-29T10:16:35.720916+00:00, sha dc9d4a8b3782)
- Data as of 2026-08-30T08:39:29.467469+00:00.
