@orchestr-sh/orchestr · v1.9.2

Laravel for TypeScript

A Laravel-inspired framework built in TypeScript. Brings Laravel's elegant syntax and architecture to the Node.js ecosystem.

$ npm install @orchestr-sh/orchestr

Familiar syntax, modern stack

If you know Laravel, you already know Orchestr.

app/Controllers/UserController.ts
import { Injectable, Controller } from '@orchestr-sh/orchestr';

@Injectable()
export class UserController extends Controller {
  constructor(private userService: UserService) {
    super();
  }

  async index(req: Request, res: Response) {
    const users = await this.userService.getAll();
    return res.json({ users });
  }
}

Everything you love about Laravel

Built from the ground up with TypeScript, bringing type safety to Laravel's elegant architecture.

Service Container

Full IoC container with automatic dependency injection using TypeScript reflection.

Routing

Laravel-style routing with parameter binding, middleware, and file-based route loading.

Query Builder & ORM

Fluent query builder and Ensemble ORM with relationships, soft deletes, and attribute casting.

Service Providers

Bootstrap and organize your application services with Laravel's provider pattern.

Type Safety

Full TypeScript support with IntelliSense, autocomplete, and compile-time type checking.

Facades

Static proxy access to services with Route, DB, and custom facades.

Get started in seconds

Install and start building with familiar Laravel syntax.

1

Install

npm install @orchestr-sh/orchestr reflect-metadata
2

Create your app

import 'reflect-metadata';
import { Application, Kernel, Route } from '@orchestr-sh/orchestr';

const app = new Application(__dirname);
const kernel = new Kernel(app);

Route.get('/', async (req, res) => {
  return res.json({ message: 'Hello from Orchestr!' });
});

kernel.listen(3000);
3

Start building

Controllers

MVC architecture with dependency injection

Database

Query builder and ORM with relationships

Middleware

Global and route-level middleware pipeline

Providers

Service providers for organization

Laravel developers feel right at home

Familiar syntax, same patterns, enhanced with TypeScript.

Laravel (PHP)

Route::get('/users', [UserController::class, 'index']);

class UserController extends Controller {
    public function index() {
        $users = User::where('active', true)->get();
        return response()->json(['users' => $users]);
    }
}

Orchestr (TypeScript)Recommended

Route.get('/users', [UserController, 'index']);

class UserController extends Controller {
    async index() {
        const users = await User.where('active', true).get();
        return res.json({ users });
    }
}

Start building with Orchestr

Experience Laravel's elegance with TypeScript's power.