Skip to main content
Forst is a programming language that helps you move TypeScript backends to Golang. To accomplish this, it supports you in four key ways:

Why?

Building backend APIs often forces a trade off between runtime performance and developer speed. Maintaining separate schema contracts leads to lots of glue code. Full backend rewrites into more performant languages are often impossible to do safely. Forst exists to remove that friction. You can migrate incrementally or write completely new backends with native performance and an ergonomic DX by design.

Validation and errors

Type constraints validate incoming data automatically before it reaches your application logic. Constraints on the type replace manual checks at the boundary:
Forst is actively developed. Some features are experimental. See the roadmap for current status.

How it fits your stack

Forst compiles .ft sources to Go, and optionally emits TypeScript types for clients: Run forst generate when clients need TypeScript from the same source.

Start here

Why Forst?

Design priorities and what Forst omits.

Quickstart

Install, write your first .ft file, and run it.

Language overview

Go alignment, structural typing, and explicit control flow.

Validated shapes

Types as schemas with built in constraints.

Mix with Go packages

Import Go packages and mix .ft with .go.

Examples and packages

For client type generation, see Generate client types.