Skip to content
Prumo
    Searches every heading in the documentation.

    The decisions are already made.
    And written down.

    Prumo starts a TypeScript project with the framework, the module layout, the database rules, the auth wiring and the test boundaries already chosen. Each one was decided once, written into the project that receives it, and turned into something that runs.

    From the terminal

    One command asks what to build and writes the project.

    npx @stjoseph/prumo new my-app

    Node 22.23.4 or later and pnpm 10.26 or later, on macOS, Linux or Windows. Read the documents

    With Prumo Desktop

    The same CLI in an app that creates, lists and runs your projects, on macOS, Linux and Windows.

    • macOS · Apple silicon and Intel

      Apple siliconIntel

      Unsigned: confirm it once with Open Anyway.

    • Linux · x64

      .deb.rpm

      Unsigned: install it with apt or dnf.

    • Windows · x64

      Setup.exe

      Unsigned: More info, then Run anyway. Blocked where Smart App Control is on.

    Unsigned previews of version 0.0.9. Every build needs Node 22.23.4 or later and pnpm 10.26 or later. How to install

    A new project arrives with two things

    Code that already works
    Installed, wired together, and proven by starting rather than by compiling. Every template is committed in full and none of them calls somebody else’s scaffolder at install time.
    The conventions it follows
    A .prumo/ folder holding the rules that code obeys. Any AI assistant working in the repository reads it and knows them without anyone explaining. The conventions live in the project, not in someone’s head.
    An excerpt of a project generated with --types api,web

    Three types, and what each one is made of

    • api

      The server

      • Fastify with a domain/infra structure
      • tsyringe and Zod
      • MikroORM on PostgreSQL
      • Its own JWT authentication
      • Swagger UI
      • Vitest with Testcontainers
    • web

      The browser app

      • Vite, Next or Astro, with React
      • The same sign-in on each
      • Tailwind and shadcn/ui
      • Forms validated with Zod
    • mobile

      The phone app

      • Expo with Expo Router
      • NativeWind and MMKV
      • Tokens kept in expo-secure-store
      • Run in a development build

    One type produces that project alone. Several produce a pnpm workspace, with the wire contract shared so a change on one side breaks the other at typecheck.

    Nothing important is decided by silence

    Every question the CLI asks also has a flag, which is how it runs in CI without a terminal. Outside an interactive terminal a missing answer is an error rather than a default.

    npx @stjoseph/prumo new my-app --types api,web --single-tenant --single-language --languages en --no-mcp --sign-in password --email --no-social

    The stack is locked, and says so

    One document names every package, every version floor and the nineteen entries that were deliberately dropped. It is written to be treated as given: a generated project inherits it whole, and nothing is left to be settled again per project.

    Open the locked stack

    Prumo Desktop

    A desktop application that creates Prumo projects, lists them, reads their conventions and runs their apps. Version 0.0.9, an unsigned preview for macOS, Linux and Windows, can be downloaded.