An open API service indexing awesome lists of open source software.

https://github.com/feunard/alepha

🍃 Easy-to-use modern TypeScript framework for building many kind of applications.
https://github.com/feunard/alepha

bun framework nodejs react rest-api ssr typescript workerd

Last synced: about 2 months ago
JSON representation

🍃 Easy-to-use modern TypeScript framework for building many kind of applications.

Awesome Lists containing this project

README

          



Alepha logo
Alepha


TypeScript Framework Made Easy


npm version
license
coverage
downloads

## What is Alepha?

Full-stack TypeScript framework for agentic era. Define your schema once — get database, API, types, and forms.

- **One schema, everywhere** — Database, API validation, TypeScript types, React forms — all from one definition
- **Full autocomplete** — Client calls server with complete type safety, zero codegen
- **Multi-runtime** — Same code runs on Node, Bun, and Cloudflare Workers
- **Deploy anywhere** — Cloudflare, Vercel, Docker, bare metal

Built on predictable conventions and typed primitives — works great with AI coding assistants (BYOA).

Each layer builds on the previous.

| Layer | Description | Primitives |
|--------------|-------------|---------------------------------------------------------|
| **Core** | DI, lifecycle, config | `$inject`, `$env`, `$module`, `$hook`, `$logger` |
| **Backend** | Database, queues, storage, API | `$entity`, `$action`, `$queue`, `$bucket`, `$scheduler` |
| **Frontend** | React with SSR, routing, i18n | `$page`, `$head`, `$atom`, `$dictionary` |
| **Modules** | Users, auth, jobs, audits | `$realm`, `$job`, `$audit`, `$notification` |
| **Admin** | Admin panel & auth UI | `$uiAdmin`, `$uiAuth` |

## Example

```tsx
// src/Api.ts
import { t } from "alepha";
import { $action } from "alepha/server";
import { $entity, $repository, db } from "alepha/orm";

const viewEntity = $entity({
name: "views",
schema: t.object({
id: db.primaryKey(),
createdAt: db.createdAt(),
}),
});

export class Api {
views = $repository(viewEntity);

inc = $action({
schema: { // ← validates + generates OpenAPI
response: t.object({
count: t.number()
})
},
handler: async () => {
await this.views.create({});
return { count: await this.views.count() };
},
});
}
```

```tsx
// src/AppRouter.tsx
import { $client } from "alepha/server/links";
import { $page } from "alepha/react/router";
import type { Api } from "./Api.ts";

export class AppRouter {
api = $client(); // ← fully typed, zero codegen

home = $page({
loader: () => this.api.inc(),
component: (props) =>

Counter: {props.count}
,
});
}
```

## Getting Started

Requirements: [Node.js](https://nodejs.org/) 22+ or [Bun](https://bun.sh/) 1.3+

```bash
# L1: Backend only
npx alepha init my-api --api

# L2: React frontend (with or without backend)
npx alepha init my-app --react

# L3: Api, Frontend, Admin UI
npx alepha init my-saas --admin
```

## Learn More

- [Documentation](https://alepha.dev)
- [llms.txt](https://alepha.dev/llms.txt) — for AI assistants
- [GitHub](https://github.com/feunard/alepha)