import React, { useEffect } from "react"; import { createRoot } from "react-dom/client"; import { initLandingPage } from "./animation"; function App() { useEffect(() => { const el = document.getElementById("animation-container"); if (el) return initLandingPage(el); }, []); return (
AshTypescript

AshTypescript

End-to-end type safety from Ash to TypeScript

Main Features

Docs GitHub

Type-Safe RPC

Auto-generated typed functions for every Ash action.

View docs →

Typed Controllers

Typed route helpers for Phoenix controllers.

View docs →

Typed Channels

Typed event subscriptions for Phoenix channels.

View docs →

Zod Validation

Generated Zod schemas for form validation.

View docs →
); } createRoot(document.getElementById("app")!).render( , );