Skip to content
codexa

Web apps · React

Team expenses

Collect team expense claims, approve them and see what is still waiting to be reimbursed.

Team expenses starter, as built from its own files
Starter screenshot captured from this template's own build at 1440×900. It shows the template as it ships, not output generated from a prompt.

What you get

An expense tracker for a small team: log claims with category, amount and date, approve or reject them, and keep an eye on what is still owed. The categories, people and sample claims live in src/app.ts.

Files

Exactly what is copied into a new project: 12 files, nothing generated.

Raw data: GET /api/v1/templates/app-team-expenses

src/types.ts
src/types.ts
/** The shape of src/app.ts: the record type, its fields, statuses and sample data live there. */import type { IconName } from "./Icon"; export type Tone = "good" | "warn" | "bad" | "neutral" | "accent"; export type Field = {  key: string;  label: string;  type: "text" | "number" | "money" | "date" | "select" | "email" | "longtext";  options?: string[];  required?: boolean;  /** Leave the column out of the table (still shown in the form). */  hideInTable?: boolean;}; export type Value = string | number;export type Row = Record<string, Value> & { id: string }; export type AppSpec = {  brand: string;  icon: IconName;  /** Bump when the seed data changes so browsers reload it. */  storageKey: string;  entity: { singular: string; plural: string };  title: string;  subtitle: string;  currency?: string;  fields: Field[];  /** Field shown in bold as the record's name. */  titleKey: string;  /** A select field used for the filter, pills and board columns. */  statusKey: string;  tones: Record<string, Tone>;  summary: { label: string; kind: "count" | "sum"; field?: string; status?: string }[];  views: ("table" | "board")[];  seed: Record<string, Value>[];};

Remix

Remix this template

Describe what to change and the agent starts from Team expenses's files. The box is already started for you: finish “Start from Team expenses and …”

Agent ready

Creates a free account first; your idea is carried over.

Dependencies

Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.

  • react^19.1.0
  • react-dom^19.1.0
  • vite^6.3.0
  • @vitejs/plugin-react^4.4.0
  • tailwindcss^4.1.0
  • @tailwindcss/vite^4.1.0
  • typescript^5.8.0

How it runs

Framework
Vite + React + TypeScript
Dev command
npm run dev
Build command
npm run build
Output directory
dist
Port
5173
Entry route
/

Projects run in an isolated sandbox with a live preview. Read the projects documentation for settings, snapshots and deployment.

All templates

Build on Team expenses

Create a free account, start from this template, and ask the AI agent to turn it into your app.