Web apps · React
Bug tracker
Log bugs with severity, area and estimate, then move them from open to fixed on a board.

What you get
A focused issue tracker for a small product team: file bugs with severity, platform and estimate, filter by status and work them across a board. The areas, severities and sample issues live in src/app.ts.
Files
Exactly what is copied into a new project: 12 files, nothing generated.
Explorer 12
import type { AppSpec } from "./types"; /** Everything this app shows. Edit freely. */export const app: AppSpec = { "brand": "Patchwork", "icon": "code", "storageKey": "patchwork-bugs-v1", "entity": { "singular": "Bug", "plural": "Bugs" }, "title": "Bugs", "subtitle": "Release 4.12, code freeze on November 14", "titleKey": "title", "statusKey": "status", "tones": { "Open": "bad", "In progress": "warn", "In review": "accent", "Fixed": "good" }, "views": [ "board", "table" ], "fields": [ { "key": "title", "label": "Title", "type": "text", "required": true }, { "key": "area", "label": "Area", "type": "select", "options": [ "Web", "iOS", "Android", "API" ] }, { "key": "severity", "label": "Severity", "type": "select", "options": [ "Critical", "Major", "Minor" ] }, { "key": "assignee", "label": "Assignee", "type": "text" }, { "key": "reported", "label": "Reported", "type": "date" }, { "key": "points", "label": "Points", "type": "number" }, { "key": "status", "label": "Status", "type": "select", "options": [ "Open", "In progress", "In review", "Fixed" ] }, { "key": "steps", "label": "Steps to reproduce", "type": "longtext", "hideInTable": true } ], "summary": [ { "label": "Bugs", "kind": "count" }, { "label": "Open", "kind": "count", "status": "Open" }, { "label": "Points open", "kind": "sum", "field": "points", "status": "Open" }, { "label": "Fixed", "kind": "count", "status": "Fixed" } ], "seed": [ { "title": "Checkout button stays disabled after a coupon is removed", "area": "Web", "severity": "Critical", "assignee": "Leah", "reported": "2026-10-26", "points": 3, "status": "In progress", "steps": "Add a coupon, remove it, then try to pay." }, { "title": "Push notifications arrive twice on iOS 19", "area": "iOS", "severity": "Major", "assignee": "Kenji", "reported": "2026-10-22", "points": 5, "status": "Open", "steps": "Enable notifications, background the app, send a test push." }, { "title": "Search returns 500 for queries with an ampersand", "area": "API", "severity": "Major", "assignee": "Ravi", "reported": "2026-10-19", "points": 2, "status": "In review", "steps": "GET /search?q=salt%20%26%20pepper" }, { "title": "Dark mode: order total unreadable on receipts", "area": "Android", "severity": "Minor", "assignee": "Leah", "reported": "2026-10-17", "points": 1, "status": "Fixed", "steps": "" }, { "title": "Session expires while uploading large photos", "area": "Web", "severity": "Major", "assignee": "Ravi", "reported": "2026-10-25", "points": 3, "status": "Open", "steps": "Upload a 40 MB photo on a slow connection." }, { "title": "Date picker skips the 31st in some months", "area": "iOS", "severity": "Minor", "assignee": "Kenji", "reported": "2026-10-12", "points": 2, "status": "Fixed", "steps": "" }, { "title": "Rate limit headers missing on 429 responses", "area": "API", "severity": "Minor", "assignee": "Ravi", "reported": "2026-10-27", "points": 1, "status": "Open", "steps": "" }, { "title": "Android back gesture closes the cart instead of the sheet", "area": "Android", "severity": "Major", "assignee": "Leah", "reported": "2026-10-23", "points": 2, "status": "In progress", "steps": "Open the cart, open the size sheet, swipe back." } ]};Remix
Remix this template
Describe what to change and the agent starts from Bug tracker's files. The box is already started for you: finish “Start from Bug tracker and …”
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.
Keep browsing
All templates
React starter
A clean React + TypeScript + Tailwind single-page app. The default target for AI generation.

Sales leads CRM
A lean CRM for a small sales team: leads, deal values, next follow-ups and a pipeline board.

Wedding guest list
Keep the guest list, RSVPs, meal choices and table plan for the big day in one place.
Build on Bug tracker
Create a free account, start from this template, and ask the AI agent to turn it into your app.