Skip to content
codexa

Web apps · React

Gym memberships

Manage gym members, plans, renewal dates and monthly revenue from one simple list.

Gym memberships 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

A membership list for an independent gym: each member's plan, monthly fee, join and renewal dates, with active revenue and lapsed members counted at the top. The plans, statuses and sample members 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-gym-memberships

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 Gym memberships's files. The box is already started for you: finish “Start from Gym memberships 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 Gym memberships

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