Skip to main content
The Serial mono-repo is organized into three main sections: Frontend, Zuplo, and Supabase. Each section serves a specific purpose in the overall architecture of the project.

Frontend

The frontend section of the mono-repo contains the React-based user interface for the Serial application.
frontend/
|--- src/
|   |--- features/
|   |--- shared/
|   |--- styles/
|--- public/
|--- vite.config.js
|--- package.json
|--- tsconfig.json
|--- tsconfig.base.json
|--- tsconfig.nostrict.json
|--- index.html
Key points about the frontend structure:
  • The src folder contains the main source code, organized into features and shared components.
  • styles folder holds CSS and Tailwind configuration.
  • Configuration files like vite.config.js, package.json, and various TypeScript configurations are in the root of the frontend directory.
  • The project uses Vite as the build tool, as evidenced by the vite.config.js file.

Zuplo

Zuplo is used for API management and serverless functions in the Serial project.
zuplo/
|--- modules/
|   |--- endpoints/
|   |   |--- ai/
|   |   |--- companies/
|   |   |--- components/
|   |   |--- files/
|   |   |--- integrations/
|   |   |--- work-orders/
|   |   |--- ...
|--- config/
|   |--- routes.oas.json
|--- tests/
|--- package.json
|--- tsconfig.json
Key points about the Zuplo structure:
  • The modules/endpoints folder contains various API endpoints organized by functionality.
  • config/routes.oas.json defines the OpenAPI specification for the API routes.
  • Note that a more complete OpenAPI specification is available in the documentation section of the repo.
  • There’s a dedicated tests folder for API tests.
  • TypeScript is used, as indicated by the tsconfig.json file.

Supabase

Supabase is used as the backend database and authentication service for the Serial project.
supabase/
|--- supabase/
|   |--- migrations/
|   |--- config.toml
|--- package.json
Key points about the Supabase structure:
  • The migrations folder contains SQL files for database schema changes.
  • config.toml is used for Supabase project configuration when running locally.

Shared Components

The mono-repo also includes some shared elements:
  • A types folder at the root level, containing shared TypeScript definitions used across the project.
  • A documentation folder, containing project documentation using Mintlify for documentation generation.
This structure allows for a cohesive development experience, with frontend, API management, and database operations all contained within a single repository. It facilitates easier coordination between different parts of the application and streamlines the development workflow.