Skip to main content

Welcome to Xond

Xond is Nufaza’s rapid application development framework. It packages the tooling, generators and conventions we use to deliver production systems quickly while keeping the stack modern and maintainable. The core pillars are:

  • React + Vite + Tailwind for the frontend experience, delivered by @xond/ui.
  • Prisma, PostgreSQL/MySQL and Node.js powering an extensible REST backend in @xond/api.
  • Workflow orchestration, notifications and RBAC implemented through @xond/workflow.
  • Reverse engineering & code generation pipelines that turn an existing database into ready-to-ship UI, forms, data tables and secured APIs.

This documentation explains how the pieces fit together and how to operate the framework in the Nufaza monorepo.

How Xond accelerates delivery

  1. Reverse engineer an existing schema, or design a new one in your preferred modeling tool (we use PowerDesigner). The generators produce Prisma models and keep them synchronized.
  2. Generate REST endpoints with JWT-secured controllers, CRUD services, pagination, query helpers and validation harnesses.
  3. Generate React UI: forms, data tables, filters and widgets paired with the backend contract. Tailwind ensures consistency, while the code stays fully editable.
  4. Iterate via configuration—not scaffolding. Xond is designed so regenerated code respects local overrides and your team can layer bespoke logic where needed.

Create a new application with Xond

Follow these steps when bootstrapping a new module or product inside the monorepo:

  1. Design your database
    Model the schema (PowerDesigner ERD, dbdiagram or SQL). Commit the generated DDL scripts to apps/<your-app>/prisma/ so they become the single source of truth.

  2. Provision environment settings
    Copy .env.example from a similar project and define:

    • Database connection strings (DATABASE_URL, SHADOW_DATABASE_URL)
    • JWT secrets and token lifetimes
    • Storage, cache or third-party service credentials
  3. Link the schema scripts
    Provide two SQL files per database:

    • create-structure.sql for migrations / initial structure
    • update-structure.sql for incremental changes
      Reference them from the npm scripts (see package.json) to automate execution.
  4. Prepare reference data
    Maintain Excel or CSV files for lookup tables and seed data. Generate insert/update scripts and place them under prisma/dummy/ (mirroring the ICBS and AQAL apps).

  5. Generate Prisma client & run scripts
    Use the helper scripts in package.json:

    pnpm --filter <your-app> prisma:generate
    pnpm --filter <your-app> db:migrate
    pnpm --filter <your-app> db:seed

    These scripts apply the structure files, run Prisma migrations and seed data so the reverse engineering tools can inspect the live database.

  6. Run the Xond generators
    Invoke the generators from @xond/api and @xond/ui to scaffold controllers, services and UI. They are idempotent—regenerate when schema changes without losing custom overrides.

The platform modules

  • @xond/api – Prisma powered REST APIs, authentication, multi-tenant helpers and reverse engineering utilities.
  • @xond/ui – React/Vite component library, layout system, form controls and Storybook documentation.
  • @xond/workflow – Workflow designer, node-based orchestration, notifications and approval pipelines.

Use the navigation to deep dive into each module or continue to the quickstart guides to spin up your first generated service.