Skip to content

FarrowProgressive TypeScript Web Framework

Type-Safe · Functional · Progressive | Third-party Documentation Site

Farrow

Quick Start

bash
npm create farrow-app my-app
cd my-app
npm run dev

One-Minute Example

typescript
import { Http, Response } from 'farrow-http'
import { ObjectType, String, Number } from 'farrow-schema'

// Define Schema - get types + validation
class CreateUserRequest extends ObjectType {
  name = String
  age = Number
}

const app = Http()

// Type-safe routing
app.get('/users/<id:int>').use((request) => {
  // request.params.id is automatically number type
  const user = getUser(request.params.id)
  return Response.json(user)
})

// Automatic request body validation
app.post('/users', { body: CreateUserRequest }).use((request) => {
  // request.body is fully type-safe
  const user = createUser(request.body)
  return Response.status(201).json(user)
})

app.listen(3000)

Why Choose Farrow?

Designed for TypeScript

Unlike other frameworks that added type definitions later, Farrow was built for TypeScript from day one. Every API is carefully designed to provide the best type inference experience.

Fewer Bugs, More Confidence

Catch errors at compile time through type checking, not in production. Schema-driven validation ensures data always meets expectations.

Progressive Architecture

You don't need to learn all concepts at the start. Begin with a simple HTTP server, gradually add routing, validation, middleware, and other features as needed.

Ecosystem

Core Packages

Official Integrations

Community Tools

Who's Using Farrow?

"Farrow makes our TypeScript code safer and more elegant. The type inference is amazing!"
— Frontend Architect at a Leading Internet Company

"After migrating from Express to Farrow, our bug rate decreased by 60%"
— CTO at a Startup

"Schema-driven development changed how we work, no more manual validation logic"
— Full-Stack Developer

This is a third-party Farrow documentation site | Built with ❤️ and TypeScript