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
- Generated Go
- Generated TypeScript
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
- Compiler examples: github.com/forst-lang/forst/tree/main/examples/in
- npm compiler:
@forst/cli - Gradual adoption:
@forst/sidecarfor invoking Forst from Node during migration