Files
warmbly/web
Matt 93bb56a458 feat(limits): admin queue + customer request form + ToS clause
Three surfaces close the loop on the limit-increase workflow:

  - admin/dashboard/LimitRequestsPage.tsx queues every pending request
    with full context (org → users → field → current vs requested →
    +delta) and one-click approve/reject. Both actions open a review
    dialog; approve notes are optional, reject notes are required and
    surface to the customer.
  - web/settings/limits/page.tsx is the customer-facing form. Resource
    selector, requested value, reason textarea, plus a list of every
    past request with its status (pending/approved/rejected/cancelled)
    and the reviewer's notes when present. Pending rows expose a
    cancel link. Footer links to the ToS limits clause.
  - site/terms.astro grows a new section 07 ("Usage limits and
    increase requests"). Explicit: "unlimited" means no plan-tier cap
    but a product-wide hard ceiling still applies, increases are at
    Warmbly's sole discretion, and previously granted increases can be
    revoked when reputation signals deteriorate. Bumps every existing
    section heading and id from 07 onward.

Admin sidebar grows a "Limit requests" entry under Accounts (Gauge
icon). Web settings layout grows a "Limits" section under owner-only
sections.
2026-05-28 12:16:02 +02:00
..
2026-02-11 17:54:49 +01:00

Warmbly Web App

React + TypeScript frontend for Warmbly.

Stack

  • React 19
  • Vite (Rolldown)
  • TypeScript
  • TanStack Query
  • Zustand
  • Tailwind CSS 4

Prerequisites

  • Node.js 20+
  • pnpm 10+

Setup

cd web
pnpm install
cp .env.example .env

Run

pnpm dev

Default dev URL: http://localhost:5173

Quality Checks

pnpm lint
pnpm test:run
pnpm build

Project Layout

  • src/app route pages and layouts
  • src/components UI and feature components
  • src/lib/api API clients, hooks, and models
  • src/stores Zustand store slices