/tramvai

A modular framework for universal JS applications

Primary LanguageTypeScriptApache License 2.0Apache-2.0

taiga ui logo

Modular framework for universal React applications


Features

  • โœˆ๏ธ Universal

    Creates SSR React applications - includes solid server with metrics, health checks and graceful degradation support

  • ๐Ÿ’‰ Dependency Injection

    Provides simple and powerful DI system, inspired by Angular and Nest.js best practices

  • ๐Ÿงฉ Modular

    Every application build from list of feature modules - doing one thing right!

  • โšก Fast and lightweight

    Enforces best web-performance techniques - resources preloading and inlining, lazy hydration ๐Ÿš€, modern ES bundles, tree-shakable libraries

  • ๐Ÿ”— Chain of commands

    Elegant pattern for complete control over application life-cycle - predictable flow for every HTTP request into application, running async actions in parallel, limits the duration of server-side actions

  • ๐Ÿงฑ Micro Frontends

    Heavily integrated solution for Micro Frontends with SSR and Module Federation

  • ๐Ÿ› ๏ธ Tooling

    Functional CLI for generating, develop, analyze, and bundling tramvai applications - powered by webpack@5

  • ๐Ÿงช Testing

    Complete set of unit and integration testing utilites - powered by jest and testing-library

  • ๐Ÿ•Š๏ธ Migrations

    Automatic migrations with jscodeshift codemodes

Get started

  1. Generate new application

    npm init @tramvai@latest my-awesome-app
  2. Run development server

    cd my-awesome-app && npm start

    application will be available at http://localhost:3000/

Tutorials

Pokedex application

Sandboxes

Edit on CodeSandbox