Claude Prompt Library

30 Claude Prompts That Build Working Apps

30 copy-paste prompts

Describe the app and Claude returns a complete, single-file browser app you can use right away in the artifact preview, no setup or code editor. Prompts for to-do and notes, habit and budget trackers, timers and flashcards, quizzes, kanban boards, weather and converters, and small CRUD tools.

In short: This page contains 30 copy-paste ready prompts, organized into 6 categories with a description and pro tip for each. The first 15 prompts are free instantly โ€” no signup needed. Hand-curated and tested by the AI Academy team.

By Louis Corneloup ยท Founder, Techpresso
Last updated ยทHand-curated & tested by the AI Academy team

Productivity Apps

5 prompts

To-Do List App

1/30

You are a senior front-end engineer who builds clean, dependable productivity tools. <context> I want a working to-do list app built as one self-contained HTML file with inline CSS and vanilla JavaScript, so it runs instantly in the artifact preview with no setup. All data lives in localStorage so my tasks survive a refresh. </context> <inputs> - App name and vibe: [E.G. DAYLIST, CALM AND MINIMAL] - Fields per task: [TITLE, DUE DATE, PRIORITY] - Grouping: [BY LIST / BY DUE DATE / NONE] - Accent color: [HEX OR NAME] - Empty-state message: [WHAT TO SHOW WITH ZERO TASKS] </inputs> <task> Build a fully working to-do app: an add-task input that creates tasks on Enter or button click; a list with a checkbox to complete, inline edit on double-click, and a delete button; priority badges and a due-date display; filter tabs for All / Active / Completed; a "clear completed" action; and a live count of remaining tasks. Persist everything to localStorage and restore it on load. </task> <constraints> - One self-contained HTML file, no external libraries; vanilla JS only. - Accessible: labelled inputs, keyboard-operable controls, visible focus states. - A clean empty state and no console errors; data must survive a page refresh. </constraints> <format> Return the full HTML as an artifact, then explain the localStorage data shape and how to add a new task field. </format>

Builds a working to-do list app with add, edit, complete, filter, and localStorage persistence as a previewable artifact.

๐Ÿ’ก

Pro tip: Tell Claude the exact task fields you care about up front; adding a field later means touching the form, the render, and the saved shape all at once.

Notes App With Search

2/30

You are a front-end engineer who builds fast, distraction-free writing tools. <context> I want a notes app built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Notes persist in localStorage so nothing is lost on refresh. </context> <inputs> - App name and tone: [E.G. SCRATCH, FAST AND PLAIN] - Note structure: [TITLE PLUS BODY / BODY ONLY] - Sort order: [LAST EDITED / CREATED / TITLE] - Accent color: [HEX OR NAME] - Optional tags: [YES OR NO] </inputs> <task> Build a two-pane notes app: a sidebar list of notes showing title and a snippet, a main editor that autosaves as I type, a new-note button, a delete-note action with confirm, a live search box that filters notes by title and body, and a timestamp showing when each note was last edited. Auto-select the most recent note on load. Persist all notes to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Search must be instant and case-insensitive; autosave must not lose keystrokes. - Accessible controls, visible focus, and a friendly empty state; no console errors. </constraints> <format> Return the full HTML as an artifact, then explain the autosave debounce and how to add tag filtering later. </format>

Creates a two-pane notes app with autosave, instant search, and localStorage persistence as a previewable artifact.

๐Ÿ’ก

Pro tip: Ask Claude to debounce the autosave to about 300ms so typing stays smooth instead of writing to storage on every keystroke.

Pomodoro Focus Timer

3/30

You are a front-end engineer who builds precise, well-behaved timer apps. <context> I want a Pomodoro focus timer built as one self-contained HTML file with inline CSS and vanilla JavaScript, runnable instantly in the artifact preview. It should keep accurate time and track completed sessions across the day in localStorage. </context> <inputs> - App name and mood: [E.G. DEEPWORK, FOCUSED AND QUIET] - Focus length and break length: [E.G. 25 MIN / 5 MIN] - Long-break rule: [E.G. 15 MIN AFTER 4 FOCUS BLOCKS] - Accent color: [HEX OR NAME] - Sound or visual cue at zero: [DESCRIBE] </inputs> <task> Build a working Pomodoro timer: a large countdown display, Start / Pause / Reset controls, automatic switching between focus and break with a clear mode label, a session counter showing completed focus blocks today, a long break after the configured number of blocks, and an editable focus and break length. Use an accurate timer that does not drift, and persist today's completed-session count to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Timing must stay accurate even if the tab is backgrounded; compute from timestamps, not setInterval ticks alone. - Accessible controls and clear mode indication; no console errors. </constraints> <format> Return the full HTML as an artifact, then explain how you kept the timer accurate and how to add a subtle progress ring. </format>

Builds an accurate Pomodoro timer with focus/break cycling and a daily session counter as a previewable artifact.

๐Ÿ’ก

Pro tip: Have Claude drive the countdown from a target timestamp rather than counting setInterval ticks, so the timer stays correct after the tab sleeps.

Kanban Board

4/30

You are a front-end engineer who builds smooth drag-and-drop board apps. <context> I want a kanban board built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Cards and columns persist in localStorage so the board survives a refresh. </context> <inputs> - App name: [E.G. FLOWBOARD] - Columns: [E.G. TO DO, IN PROGRESS, DONE] - Card fields: [TITLE, AND OPTIONALLY A LABEL OR COLOR] - Accent and column colors: [DESCRIBE] - Starting cards: [A FEW EXAMPLE CARDS OR NONE] </inputs> <task> Build a working kanban board: the configured columns, an add-card input on each column, drag-and-drop to move cards between and within columns using the native HTML5 drag API, inline edit of a card title, a delete-card control, and a per-column card count. Persist the full board state to localStorage and restore it on load. </task> <constraints> - One self-contained HTML file, vanilla JS only, no drag libraries. - Drag-and-drop must work on desktop with clear drop indicators; falls back to move buttons if dragging is unavailable. - Accessible, keyboard-reachable controls; no console errors; state survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the board data structure and how to add a new column at runtime. </format>

Builds a drag-and-drop kanban board with columns, cards, and localStorage persistence as a previewable artifact.

๐Ÿ’ก

Pro tip: Ask Claude to add small move-left and move-right buttons on each card so the board still works if native drag-and-drop misbehaves.

Daily Planner (Time-Blocked)

5/30

You are a front-end engineer who builds calm, well-structured planning tools. <context> I want a time-blocked daily planner built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. The day's blocks persist in localStorage keyed by date. </context> <inputs> - App name and vibe: [E.G. ONEDAY, FOCUSED] - Day range and slot size: [E.G. 7AM TO 9PM, 30-MIN SLOTS] - Block fields: [LABEL, AND OPTIONALLY A CATEGORY COLOR] - Accent color: [HEX OR NAME] - A top-three priorities box: [YES OR NO] </inputs> <task> Build a working daily planner: a vertical timeline of time slots for the chosen range, click a slot to add or edit a block label, a category color picker per block, a top-three-priorities panel, a date selector that loads that day's plan, and a clear-day action. Persist each day's plan separately in localStorage so switching dates keeps everything. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Time slots must align cleanly; editing a block must be obvious and reversible. - Accessible controls and visible focus; no console errors; state survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the per-date storage scheme and how to add a weekly view later. </format>

Builds a time-blocked daily planner with editable slots, priorities, and per-date persistence as a previewable artifact.

๐Ÿ’ก

Pro tip: Tell Claude to key localStorage by the ISO date string so each day's plan is stored independently and is trivial to back up.

XML tags are just the start. Learn the full Claude workflow.

A growing library of 300+ hands-on AI tutorials covering Claude, ChatGPT, and 50+ tools. New tutorials added every week.

Start 7-Day Free Trial

Trackers & Money Apps

5 prompts

Habit Tracker

6/30

You are a front-end engineer who builds motivating, low-friction habit tools. <context> I want a habit tracker built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. All habits and check-ins persist in localStorage. </context> <inputs> - App name and tone: [E.G. STREAKLY, ENCOURAGING] - Starting habits: [E.G. READ, WORKOUT, NO SUGAR] - View: [WEEKLY GRID / LAST 30 DAYS] - Accent color and "done" color: [DESCRIBE] - Show current streak: [YES OR NO] </inputs> <task> Build a working habit tracker: add and remove habits; a grid where each row is a habit and each column is a day, with a tap to toggle a day done; a current-streak count and a completion percentage per habit; a today-summary line; and the ability to navigate between weeks or scroll the 30-day window. Persist habits and all daily check-ins to localStorage and restore on load. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Streak math must be correct across day and week boundaries using real dates. - Accessible toggles with clear done/not-done states; no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the streak calculation and how to add habit reminders later. </format>

Builds a habit tracker with a check-in grid, streaks, and localStorage persistence as a previewable artifact.

๐Ÿ’ก

Pro tip: Ask Claude to base streaks on actual calendar dates rather than a counter, so a missed day correctly resets the streak.

Budget & Expense Tracker

7/30

You are a front-end engineer who builds clear, trustworthy personal-finance tools. <context> I want a budget and expense tracker built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Transactions persist in localStorage. </context> <inputs> - App name and currency: [E.G. PURSE, USD WITH $ SYMBOL] - Categories: [E.G. RENT, FOOD, TRANSPORT, FUN] - Monthly budget total: [NUMBER OR "NONE"] - Accent color: [HEX OR NAME] - Date handling: [PER-MONTH VIEW / ALL TIME] </inputs> <task> Build a working expense tracker: an add-transaction form (amount, category, date, optional note); a running list grouped by date with edit and delete; totals for income, spending, and balance; a spending-by-category breakdown shown as simple CSS bars; a budget-remaining indicator if a budget is set; and a month switcher. Format all amounts in the chosen currency. Persist everything to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no chart libraries (use CSS bars). - Money math must avoid floating-point errors (work in cents); totals must always reconcile. - Accessible form and controls; no console errors; data survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain how you avoided rounding errors and how to add CSV export. </format>

Builds a budget and expense tracker with categories, totals, and CSS-bar breakdowns as a previewable artifact.

๐Ÿ’ก

Pro tip: Insist Claude stores amounts in integer cents; doing math in dollars introduces rounding bugs that quietly break your totals.

Water / Hydration Tracker

8/30

You are a front-end engineer who builds friendly daily-goal tracking apps. <context> I want a hydration tracker built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. The day's intake resets each day and persists in localStorage. </context> <inputs> - App name and mood: [E.G. SIP, CHEERFUL] - Daily goal and unit: [E.G. 2000 ML OR 8 CUPS] - Quick-add amounts: [E.G. 250 ML, 500 ML] - Accent and "filled" color: [DESCRIBE] - Celebrate at goal: [DESCRIBE THE CUE] </inputs> <task> Build a working hydration tracker: quick-add buttons for the configured amounts and a custom-amount input; a visual fill (a glass or bar) that grows toward the daily goal; a percentage and remaining-amount readout; an undo for the last entry; an automatic reset when the date changes; and a small history of the last several days. Persist today's intake and recent history to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - The day must roll over correctly at midnight using real dates. - Accessible buttons and clear progress; no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the daily-reset logic and how to make the goal adjustable in settings. </format>

Builds a hydration tracker with quick-add buttons, a visual fill, and daily reset as a previewable artifact.

๐Ÿ’ก

Pro tip: Make Claude compare the stored date to today on load so the count auto-resets instead of carrying yesterday's total forward.

Workout / Gym Log

9/30

You are a front-end engineer who builds practical fitness-logging apps. <context> I want a workout log built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Logged sessions persist in localStorage. </context> <inputs> - App name and tone: [E.G. LIFTLOG, NO-NONSENSE] - Tracked fields per set: [EXERCISE, WEIGHT, REPS] - Common exercises to prefill: [E.G. SQUAT, BENCH, DEADLIFT] - Unit: [KG OR LB] - Show personal bests: [YES OR NO] </inputs> <task> Build a working gym log: start a session for today; add exercises and log sets with weight and reps; edit or delete a set; see a session summary (total volume, set count); a history list of past sessions grouped by date; and a per-exercise personal-best display if enabled. Persist all sessions to localStorage and restore on load. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Fast set entry on mobile with large tap targets; numeric inputs for weight and reps. - Accessible controls and clear summaries; no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the session data structure and how to add a simple progress chart. </format>

Builds a workout log with set tracking, session summaries, and personal bests as a previewable artifact.

๐Ÿ’ก

Pro tip: Tell Claude to prefill your most common exercises so logging a set is two taps, not retyping the exercise name each time.

Savings Goal Tracker

10/30

You are a front-end engineer who builds motivating goal-progress apps. <context> I want a savings-goal tracker built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Goals and contributions persist in localStorage. </context> <inputs> - App name and currency: [E.G. NESTEGG, USD] - Goals to start with: [E.G. EMERGENCY FUND $5000, TRIP $1200] - Track contributions over time: [YES OR NO] - Accent and progress color: [DESCRIBE] - Show projected finish date: [YES OR NO] </inputs> <task> Build a working savings-goal tracker: create goals with a name, target amount, and optional deadline; log contributions toward a goal; a progress bar and percentage per goal; remaining-amount and (if a deadline is set) suggested monthly amount to stay on track; edit and delete goals; and a contributions history per goal. Format amounts in the chosen currency and persist everything to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Money math in integer cents to avoid rounding errors; progress must never exceed 100%. - Accessible forms and controls; no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the on-track calculation and how to add a celebratory state when a goal is hit. </format>

Builds a savings-goal tracker with progress bars, contributions, and on-track math as a previewable artifact.

๐Ÿ’ก

Pro tip: Ask Claude to compute the suggested monthly contribution from the deadline so the app nudges you, not just shows a bar.

Learning & Quiz Apps

5 prompts

Flashcard Study App

11/30

You are a front-end engineer who builds effective spaced-study tools. <context> I want a flashcard study app built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Decks and progress persist in localStorage. </context> <inputs> - App name and subject: [E.G. RECALL, SPANISH VOCAB] - Starting cards: [A FEW FRONT/BACK PAIRS OR NONE] - Study mode: [FLIP THROUGH / KNOW-VS-AGAIN SORTING] - Accent color: [HEX OR NAME] - Shuffle by default: [YES OR NO] </inputs> <task> Build a working flashcard app: add, edit, and delete cards (front and back); a study mode that shows the front, flips to the back on click or spacebar, and lets me mark a card "got it" or "again"; a deck progress readout (remaining, known); a shuffle and restart control; and a card manager view. "Again" cards come back around in the session. Persist the deck and study state to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Keyboard-driven study (space to flip, arrows or keys to grade); smooth flip animation. - Accessible controls and clear progress; no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the again-queue logic and how to add a simple spaced-repetition interval. </format>

Builds a flashcard study app with flip, know/again grading, and deck management as a previewable artifact.

๐Ÿ’ก

Pro tip: Give Claude five real front/back pairs so you can study immediately and see the flip and grading flow before adding your own.

Multiple-Choice Quiz App

12/30

You are a front-end engineer who builds engaging quiz and assessment apps. <context> I want a multiple-choice quiz app built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. The question set is defined in a JS array at the top of the file so it is easy to edit. </context> <inputs> - App name and topic: [E.G. BRAINBUZZ, WORLD CAPITALS] - Questions: [5-10 QUESTIONS WITH OPTIONS AND THE CORRECT ANSWER] - Show explanations: [YES OR NO] - Timer per question: [SECONDS OR NONE] - Accent and correct/wrong colors: [DESCRIBE] </inputs> <task> Build a working quiz: a start screen, one question at a time with selectable options, immediate correct/wrong feedback (and an explanation if enabled), a progress indicator, an optional per-question countdown, a running score, and a results screen showing score, percentage, and a review of missed questions with a retry button. Put all questions in a clearly-labelled array at the top so they are easy to swap. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Cannot change an answer after submitting; no answer leakage in the DOM before selection. - Accessible options (keyboard-selectable, ARIA where useful); no console errors. </constraints> <format> Return the full HTML as an artifact, then explain the question-array format and how to add image-based questions. </format>

Builds a multiple-choice quiz app with scoring, feedback, and a results review as a previewable artifact.

๐Ÿ’ก

Pro tip: Ask Claude to keep the questions in one array at the top of the file so you can rewrite the whole quiz without touching the logic.

Vocabulary / Spelling Drill

13/30

You are a front-end engineer who builds focused practice-drill apps. <context> I want a spelling and vocabulary drill built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. The word list and progress persist in localStorage. </context> <inputs> - App name and level: [E.G. SPELLWELL, GRADE 5] - Word list: [WORDS, EACH WITH A SHORT DEFINITION OR HINT] - Drill type: [TYPE THE WORD FROM A HINT / FILL THE MISSING LETTERS] - Accent color: [HEX OR NAME] - Track accuracy: [YES OR NO] </inputs> <task> Build a working spelling drill: present one word at a time as a hint or definition, an input to type the answer, instant correct/incorrect feedback with the right spelling shown on a miss, the ability to retry a missed word at the end, a running accuracy and streak, and a manage-words view to add or remove entries. Persist the word list and accuracy stats to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Answer matching trims whitespace and is case-insensitive; Enter submits. - Accessible input and feedback; no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the matching logic and how to add audio pronunciation later. </format>

Builds a spelling and vocabulary drill with hints, accuracy tracking, and missed-word retries as a previewable artifact.

๐Ÿ’ก

Pro tip: Tell Claude to trim and lowercase both the answer and the input before comparing, so a stray space or capital letter is not marked wrong.

Flag / Image Guessing Game

14/30

You are a front-end engineer who builds quick, replayable guessing games. <context> I want an image-guessing game built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Items are defined in a JS array; visuals use emoji or CSS shapes so no external images are needed. </context> <inputs> - App name and theme: [E.G. GUESSIT, COUNTRY FLAGS] - Items: [LABEL PLUS AN EMOJI OR DESCRIBED VISUAL FOR EACH] - Answer style: [MULTIPLE CHOICE / TYPE THE NAME] - Rounds per game: [NUMBER] - Accent and correct/wrong colors: [DESCRIBE] </inputs> <task> Build a working guessing game: show one item's visual per round, present the chosen answer style, give instant feedback, track score and round number, and end with a results screen and a play-again button that reshuffles. Use emoji or CSS-drawn shapes for the visuals so the file stays self-contained. Keep the item list in a labelled array at the top. </task> <constraints> - One self-contained HTML file, vanilla JS only, no external images or libraries. - Distractor options for multiple choice must be plausible and never repeat the answer. - Accessible controls; no console errors; replay reshuffles the order. </constraints> <format> Return the full HTML as an artifact, then explain how distractors are generated and how to swap in a different theme. </format>

Builds a replayable image-guessing game with scoring and reshuffling using emoji visuals as a previewable artifact.

๐Ÿ’ก

Pro tip: Use emoji or CSS shapes for the visuals so the whole game stays in one file with no broken-image risk in the preview.

Math Practice Generator

15/30

You are a front-end engineer who builds adaptive practice apps for learners. <context> I want a math practice app built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. It generates fresh problems each session; settings persist in localStorage. </context> <inputs> - App name and learner level: [E.G. NUMBERLAB, GRADE 3] - Operations: [ADD, SUBTRACT, MULTIPLY, DIVIDE] - Difficulty / number range: [E.G. 0-12 OR 0-100] - Problems per set: [NUMBER] - Accent and correct/wrong colors: [DESCRIBE] </inputs> <task> Build a working math practice app: settings to choose operations and number range; auto-generated problems for the set; an answer input with instant correct/incorrect feedback; a running score and timer; a results screen with accuracy and the problems missed; and a "new set" button that generates fresh problems. Keep division clean (no awkward remainders unless chosen). Persist the last-used settings to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Generated problems must respect the chosen range and avoid negatives unless subtraction is selected. - Accessible numeric input (Enter submits); no console errors. </constraints> <format> Return the full HTML as an artifact, then explain the problem generator and how to add a leaderboard of best times. </format>

Builds a math practice app that generates fresh problems with scoring and a timer as a previewable artifact.

๐Ÿ’ก

Pro tip: Ask Claude to generate division problems by multiplying first, guaranteeing whole-number answers and avoiding ugly remainders.

Utility & Tool Apps

5 prompts

Unit Converter

16/30

You are a front-end engineer who builds accurate, no-nonsense utility apps. <context> I want a unit converter built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. It converts live as I type, with no external API. </context> <inputs> - App name: [E.G. CONVERTLY] - Categories to support: [E.G. LENGTH, WEIGHT, TEMPERATURE, VOLUME] - Default category and units: [E.G. LENGTH, METERS TO FEET] - Decimal places: [NUMBER] - Accent color: [HEX OR NAME] </inputs> <task> Build a working unit converter: a category selector; from-unit and to-unit dropdowns populated for the chosen category; a numeric input that converts live as I type in either field; a swap-units button; correct handling of temperature (offset conversions, not just ratios); and a small recent-conversions list. Define the conversion factors in a clear data object at the top so units are easy to add. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Conversions must be mathematically correct, especially temperature; round to the chosen precision without losing accuracy mid-calc. - Accessible inputs and selects; no console errors. </constraints> <format> Return the full HTML as an artifact, then explain the unit-data structure and how to add a new category. </format>

Builds a live unit converter with multiple categories and correct temperature handling as a previewable artifact.

๐Ÿ’ก

Pro tip: Flag temperature explicitly in your inputs; it needs offset math (not a simple ratio) and is the conversion most apps get wrong.

Weather App (Mock-Data Ready)

17/30

You are a front-end engineer who builds clean, responsive weather UIs. <context> I want a weather app built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Use a clearly-marked mock data object so it renders fully offline, with a single function I can later point at a real API. </context> <inputs> - App name and vibe: [E.G. SKYCAST, SOFT AND MODERN] - Cities to mock: [2-4 CITIES WITH CURRENT TEMP, CONDITION, AND A SHORT FORECAST] - Units: [CELSIUS OR FAHRENHEIT, WITH A TOGGLE] - Accent color: [HEX OR NAME] - Show a 5-day strip: [YES OR NO] </inputs> <task> Build a working weather UI: a city selector (or search over the mocked cities); a current-conditions card with temperature, condition, and an emoji or CSS weather icon; details like feels-like, humidity, and wind; an optional 5-day forecast strip; and a unit toggle that converts displayed temperatures. Put all data behind one getWeather(city) function returning the mock object so swapping in a real fetch is a one-spot change. </task> <constraints> - One self-contained HTML file, vanilla JS only, no external images or API calls. - Temperature conversion must be correct; icons are emoji or CSS, not remote images. - Accessible and responsive; no console errors. </constraints> <format> Return the full HTML as an artifact, then explain exactly where to replace getWeather with a real API call. </format>

Builds a responsive weather app UI with mock data and a clear API swap point as a previewable artifact.

๐Ÿ’ก

Pro tip: Ask Claude to isolate all data behind one getWeather function so wiring a real API later is a single, obvious edit.

QR-Style Text & Password Generator

18/30

You are a front-end engineer who builds handy, dependable generator tools. <context> I want a small generator tool built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. It runs fully client-side with no network calls. </context> <inputs> - App name: [E.G. KEYFORGE] - What to generate: [E.G. SECURE PASSWORDS / RANDOM USERNAMES / UUIDS] - Options: [LENGTH, INCLUDE SYMBOLS, EXCLUDE AMBIGUOUS CHARS, ETC] - Strength meter: [YES OR NO] - Accent color: [HEX OR NAME] </inputs> <task> Build a working generator: option controls for the chosen settings; a generate button (and regenerate); a clear display of the result with a one-click copy-to-clipboard and a copied confirmation; a strength or quality indicator if requested; and a short history of the last few results. Use the browser crypto API for randomness where security matters. No values leave the page. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Use crypto.getRandomValues for secure randomness, not Math.random, for passwords. - Accessible controls and a working copy button; no console errors; nothing sent over the network. </constraints> <format> Return the full HTML as an artifact, then explain the randomness source and how to add a strength-scoring rule. </format>

Builds a client-side password or token generator with copy-to-clipboard and a strength meter as a previewable artifact.

๐Ÿ’ก

Pro tip: Insist on crypto.getRandomValues for anything security-related; Math.random is predictable and unfit for generating real passwords.

Markdown / Text Live Preview

19/30

You are a front-end engineer who builds clean, fast editing tools. <context> I want a live text-formatting tool built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. It works fully offline with a small hand-written parser, no markdown library. </context> <inputs> - App name: [E.G. WRITESIDE] - Formats to support: [E.G. HEADINGS, BOLD, ITALIC, LISTS, LINKS, CODE] - Layout: [SPLIT EDITOR-PREVIEW / TABBED] - Accent color: [HEX OR NAME] - Save draft to localStorage: [YES OR NO] </inputs> <task> Build a working live-preview editor: a text area on one side and a rendered preview on the other that updates as I type; support for the listed formats via a small parser; a word and character count; a copy-rendered-HTML button; and an autosaved draft if enabled. Sanitize the output so raw HTML in the input cannot inject scripts. </task> <constraints> - One self-contained HTML file, vanilla JS only, no markdown or sanitizer libraries. - Escape user HTML before applying formatting to prevent injection; preview updates without lag. - Accessible editor and controls; no console errors. </constraints> <format> Return the full HTML as an artifact, then explain the parser approach, the escaping order, and how to add a new format. </format>

Builds a live markdown-style editor with a hand-written parser and safe HTML output as a previewable artifact.

๐Ÿ’ก

Pro tip: Make Claude escape the raw input before applying any formatting; reversing that order is how preview tools end up vulnerable to injection.

Color Palette & Picker Tool

20/30

You are a front-end engineer who builds tidy design-utility apps. <context> I want a color tool built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Saved palettes persist in localStorage. </context> <inputs> - App name: [E.G. HUEBOX] - Features: [E.G. PICK A COLOR, GENERATE A PALETTE, CHECK CONTRAST] - Palette type: [E.G. SHADES, COMPLEMENTARY, ANALOGOUS] - Output formats: [HEX, RGB, HSL] - Accent color: [HEX OR NAME] </inputs> <task> Build a working color tool: a color input or picker; a generated palette based on the chosen scheme; each swatch shown with its HEX, RGB, and HSL values and a one-click copy; a save-palette action with a saved-palettes list; and a contrast checker that reports the ratio and a pass/fail against WCAG AA for a chosen text color. Persist saved palettes to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Color-space conversions (HEX/RGB/HSL) and the contrast ratio must be computed correctly. - Accessible controls and working copy buttons; no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the contrast-ratio formula and how to add a colorblind-simulation preview. </format>

Builds a color picker and palette tool with format conversions and a WCAG contrast checker as a previewable artifact.

๐Ÿ’ก

Pro tip: Have Claude show the live WCAG contrast ratio against your text color so the palette is usable, not just pretty.

CRUD & Collection Apps

5 prompts

Contacts / Address Book

21/30

You are a front-end engineer who builds reliable CRUD data apps. <context> I want a contacts app built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. All records persist in localStorage. </context> <inputs> - App name: [E.G. ROLODEX] - Fields per contact: [NAME, EMAIL, PHONE, COMPANY, NOTES] - Sort and filter: [BY NAME / BY COMPANY, PLUS A SEARCH BOX] - Accent color: [HEX OR NAME] - Starting contacts: [A FEW EXAMPLES OR NONE] </inputs> <task> Build a working contacts app with full CRUD: a list view of contacts; an add and edit form in a modal or panel; a delete with confirm; a live search across the configured fields; sorting; and field validation (valid email format, required name). Persist all contacts to localStorage and restore on load. Include an export-to-JSON action. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Email validation and required-field checks before save; no duplicate-id collisions. - Accessible forms and modal (focus trap, escape to close); no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the record schema, id strategy, and how to add CSV import. </format>

Builds a full-CRUD contacts app with search, validation, and JSON export as a previewable artifact.

๐Ÿ’ก

Pro tip: Ask Claude for a stable unique id per contact (like crypto.randomUUID) so edits and deletes never hit the wrong record.

Recipe Box

22/30

You are a front-end engineer who builds pleasant collection-management apps. <context> I want a recipe box built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Recipes persist in localStorage. </context> <inputs> - App name and vibe: [E.G. COOKBOOK, WARM] - Fields per recipe: [TITLE, INGREDIENTS, STEPS, TAGS, TIME, SERVINGS] - Filter by: [TAG AND/OR SEARCH] - Accent color: [HEX OR NAME] - Starting recipes: [ONE OR TWO EXAMPLES OR NONE] </inputs> <task> Build a working recipe box with full CRUD: a card grid of recipes; a detail view showing ingredients and numbered steps; add and edit forms with a multi-line ingredients and steps input; delete with confirm; tag chips and a tag filter plus a search box; and a servings adjuster that scales ingredient quantities where they are numeric. Persist all recipes to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Ingredient scaling must handle numeric quantities gracefully and leave non-numeric text alone. - Accessible forms and navigation; no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the recipe schema and how the servings scaler parses quantities. </format>

Builds a full-CRUD recipe box with tags, search, and a servings scaler as a previewable artifact.

๐Ÿ’ก

Pro tip: Tell Claude how you write quantities (e.g. "2 cups") so the servings scaler parses the number and leaves the unit untouched.

Reading List / Bookshelf

23/30

You are a front-end engineer who builds tidy personal-library apps. <context> I want a reading-list app built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. The library persists in localStorage. </context> <inputs> - App name: [E.G. SHELFIE] - Fields per book: [TITLE, AUTHOR, STATUS, RATING, NOTES] - Statuses: [E.G. TO READ, READING, FINISHED] - Accent color: [HEX OR NAME] - Show reading stats: [YES OR NO] </inputs> <task> Build a working reading list with full CRUD: add, edit, and delete books; status tabs or filters; a star rating for finished books; a search across title and author; a stats panel (counts per status, books finished this year) if enabled; and a spine or card layout. Persist the library to localStorage and restore on load. Include export-to-JSON. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Status changes update filters and stats live; stable ids per book. - Accessible rating control (keyboard-operable stars) and forms; no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the book schema and how to add a reading-streak or pages-read metric. </format>

Builds a full-CRUD reading-list app with statuses, ratings, search, and stats as a previewable artifact.

๐Ÿ’ก

Pro tip: Ask Claude to make the star rating keyboard-operable; mouse-only star widgets quietly fail accessibility and are easy to get wrong.

Simple Inventory Manager

24/30

You are a front-end engineer who builds practical small-business CRUD tools. <context> I want an inventory manager built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Items persist in localStorage. </context> <inputs> - App name and currency: [E.G. STOCKROOM, USD] - Fields per item: [NAME, SKU, QUANTITY, UNIT PRICE, REORDER LEVEL] - Low-stock rule: [HIGHLIGHT WHEN QTY <= REORDER LEVEL] - Accent color: [HEX OR NAME] - Starting items: [A FEW EXAMPLES OR NONE] </inputs> <task> Build a working inventory manager with full CRUD: a sortable table of items; add and edit forms; quick plus and minus buttons to adjust quantity; a low-stock highlight and a low-stock filter; a search box; a total-inventory-value figure; and export-to-CSV. Format money in the chosen currency and persist all items to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Money math in integer cents; quantity never goes negative; unique SKUs enforced on save. - Accessible table and forms; no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the item schema and how to add a stock-movement history log. </format>

Builds a full-CRUD inventory manager with low-stock alerts, value totals, and CSV export as a previewable artifact.

๐Ÿ’ก

Pro tip: Have Claude block duplicate SKUs at save time; a duplicate key is what silently corrupts edits and quantity adjustments later.

Bookmark / Link Manager

25/30

You are a front-end engineer who builds fast personal-organizer apps. <context> I want a bookmark manager built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Bookmarks persist in localStorage. </context> <inputs> - App name: [E.G. STASH] - Fields per bookmark: [TITLE, URL, TAGS, NOTE] - Organization: [TAG FILTER AND/OR FOLDERS] - Accent color: [HEX OR NAME] - Starting bookmarks: [A FEW EXAMPLES OR NONE] </inputs> <task> Build a working bookmark manager with full CRUD: add, edit, and delete bookmarks; auto-derive a display title from the domain if none is given; tag chips with a tag filter; a search across title, URL, and notes; open-in-new-tab links; and export and import as JSON. Validate that the URL is well-formed before saving and persist everything to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - URL validation before save; external links use rel="noopener" and open in a new tab. - Accessible forms and controls; no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the bookmark schema and how to add drag-to-reorder. </format>

Builds a full-CRUD bookmark manager with tags, search, URL validation, and JSON import/export as a previewable artifact.

๐Ÿ’ก

Pro tip: Ask Claude to add rel="noopener" to every outbound link; without it, opened pages can tamper with your app's tab.

Most people use 10% of Claude. Tutorials unlock the rest.

AI Academy: 300+ hands-on tutorials on Claude, ChatGPT, Midjourney, and 50+ AI tools. New tutorials added every week.

Start Your Free Trial

Fun & Creative Apps

5 prompts

Drawing / Sketch Pad

26/30

You are a front-end engineer who builds responsive canvas-based creative apps. <context> I want a drawing app built as one self-contained HTML file with inline CSS and vanilla JavaScript using the canvas API, previewable instantly as an artifact. It works with mouse and touch. </context> <inputs> - App name and vibe: [E.G. DOODLE, PLAYFUL] - Tools: [BRUSH, ERASER, AND ANY OF: LINE, RECTANGLE, FILL] - Brush sizes and a color palette: [DESCRIBE] - Background: [WHITE / TRANSPARENT / GRID] - Save as PNG: [YES OR NO] </inputs> <task> Build a working sketch pad on an HTML canvas: free-draw with the brush, an eraser, adjustable brush size, a color picker plus quick-swatch palette, clear-canvas, undo (and redo if feasible), and a download-as-PNG button if enabled. Support both mouse and touch input with smooth strokes. Size the canvas responsively without blurring the drawing. </task> <constraints> - One self-contained HTML file, vanilla JS and canvas only, no libraries. - Strokes must be smooth (interpolate between points); handle high-DPI displays so lines are crisp. - Touch and mouse both work; no console errors. </constraints> <format> Return the full HTML as an artifact, then explain the undo stack and how you handled high-DPI scaling. </format>

Builds a canvas drawing app with brush, eraser, undo, and PNG export supporting mouse and touch as a previewable artifact.

๐Ÿ’ก

Pro tip: Tell Claude to scale the canvas for devicePixelRatio; skipping it is why so many canvas drawings look blurry on retina screens.

Random Decision / Spinner Wheel

27/30

You are a front-end engineer who builds delightful little decision apps. <context> I want a spinner-wheel decision app built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. The options list persists in localStorage. </context> <inputs> - App name and use case: [E.G. PICKIT, WHAT TO EAT] - Default options: [A FEW CHOICES OR NONE] - Spin style: [WHEEL / SLOT-STYLE SHUFFLE] - Accent and segment colors: [DESCRIBE] - Remove winner after spin: [YES OR NO] </inputs> <task> Build a working decision app: an editable list of options (add, edit, delete); a wheel drawn with CSS or canvas divided into colored segments; a spin button with a smooth, easing animation that lands on a random option and announces the winner; an option to remove the winner so you can keep narrowing down; and a reset. Persist the options list to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no libraries. - The visual landing position must actually match the announced winner (no mismatch). - Spin animation uses CSS easing; accessible controls; no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain how you synced the visual rotation to the chosen result. </format>

Builds a spinner-wheel decision app with editable options and a fair, synced spin animation as a previewable artifact.

๐Ÿ’ก

Pro tip: Make Claude pick the winner first, then rotate the wheel to land on it, so the animation and the announced result never disagree.

Tip / Bill Splitter

28/30

You are a front-end engineer who builds quick, accurate calculation apps. <context> I want a tip and bill-splitter built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. It calculates live as I type. </context> <inputs> - App name and currency: [E.G. SPLITWISE-LITE, USD] - Tip presets: [E.G. 10%, 15%, 20%, CUSTOM] - Default split: [NUMBER OF PEOPLE] - Rounding option: [ROUND UP PER PERSON / EXACT] - Accent color: [HEX OR NAME] </inputs> <task> Build a working bill splitter: a bill-amount input, tip-percentage presets plus a custom field, a people counter, and live outputs for tip amount, total, and per-person share; an optional round-up-per-person mode with a clear note of the extra collected; and a reset. Format all amounts in the chosen currency. Handle zero people and empty input without errors. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Money math in integer cents; per-person rounding must reconcile to a sensible total. - Accessible inputs (numeric), live updates, and clear results; no console errors. </constraints> <format> Return the full HTML as an artifact, then explain the rounding reconciliation and how to add uneven (per-person) splits. </format>

Builds a live tip and bill-splitter with presets, per-person rounding, and currency formatting as a previewable artifact.

๐Ÿ’ก

Pro tip: Ask Claude how it reconciles per-person rounding; naive rounding can make the shares add up to more or less than the real total.

Memory / Match Card Game

29/30

You are a front-end engineer who builds polished, replayable browser games. <context> I want a memory match game built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Card faces use emoji so the file is fully self-contained. </context> <inputs> - App name and theme: [E.G. MATCHUP, ANIMALS] - Card-face set: [A LIST OF EMOJI OR SYMBOLS] - Grid size: [E.G. 4x4 OR 6x4] - Track moves and time: [YES OR NO] - Accent and card-back color: [DESCRIBE] </inputs> <task> Build a working memory game: a shuffled grid of face-down cards in matching pairs; flip on click; keep two matched cards revealed and flip mismatches back after a short pause; lock input during the reveal pause; track moves and elapsed time; a win state with stats; and a new-game button that reshuffles. Use emoji for the card faces. Persist a best-score (fewest moves or best time) to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no external images or libraries. - Input is locked during the compare delay so a fast clicker cannot break the state. - Accessible cards (keyboard-flippable); no console errors; reshuffle on new game. </constraints> <format> Return the full HTML as an artifact, then explain the match-state machine and how to add difficulty levels. </format>

Builds a memory match game with shuffling, move/time tracking, and a best score using emoji cards as a previewable artifact.

๐Ÿ’ก

Pro tip: Insist Claude locks clicks during the mismatch pause; without that lock, rapid clicking corrupts the board state mid-flip.

Countdown to Event

30/30

You are a front-end engineer who builds clean, shareable countdown apps. <context> I want an event countdown app built as one self-contained HTML file with inline CSS and vanilla JavaScript, previewable instantly as an artifact. Saved countdowns persist in localStorage. </context> <inputs> - App name and vibe: [E.G. TICKTOCK, BOLD] - Default events: [E.G. NEW YEAR, A BIRTHDAY, A DEADLINE โ€” EACH WITH A DATE] - Display units: [DAYS, HOURS, MINUTES, SECONDS] - Accent and background: [DESCRIBE OR A GRADIENT] - At-zero behavior: [SHOW A MESSAGE / FLIP TO COUNTING UP] </inputs> <task> Build a working countdown app: add and remove named events with a target date and time; a live ticking display of days, hours, minutes, and seconds for the selected event; a list to switch between saved events; correct at-zero handling; and an option to copy a shareable text summary. Use accurate time math from real timestamps and persist saved events to localStorage. </task> <constraints> - One self-contained HTML file, vanilla JS only, no dependencies. - Countdown must stay accurate across timezones and the second-by-second tick must not drift. - Accessible controls and readable large numerals; no console errors; survives refresh. </constraints> <format> Return the full HTML as an artifact, then explain the timestamp math and how to add a per-event background image slot. </format>

Builds a live event countdown app with multiple saved events and accurate at-zero handling as a previewable artifact.

๐Ÿ’ก

Pro tip: Have Claude compute the remaining time from the difference of two timestamps every tick, so the countdown stays exact instead of drifting.

Frequently Asked Questions

Yes. These prompts ask Claude for a single self-contained HTML file with inline CSS and vanilla JavaScript, which renders live in the artifact preview. You can click, type, and use the app immediately without any setup, build step, or code editor.
No. You fill in the bracketed inputs describing what you want, and Claude returns the finished app as a previewable artifact. If you later want to host it, you copy the HTML into a single .html file and open it in any browser.
Most of these prompts ask Claude to save data in the browser's localStorage, so your tasks, habits, or records survive a refresh. The data lives only in that browser, so use the built-in JSON or CSV export where offered if you want a real backup.
A single self-contained file is what the artifact preview can run instantly with no setup, and it is trivial to save and share. For these focused apps, vanilla JavaScript keeps everything in one place and avoids any dependency that could break the preview.
Be specific in the inputs (accent color, fields, behavior) and then iterate: paste the artifact back to Claude and ask for one change at a time, such as adding a field, a chart, or a dark mode. Small, named edits keep the app working as it grows.
Yes. Several prompts ask Claude to isolate data behind a single function (like getWeather), so swapping mock data for a real API call is a one-spot change. You can also ask Claude to convert the localStorage layer into calls to a backend you provide.

Prompts are the starting line. Tutorials are the finish.

A growing library of 300+ hands-on tutorials on ChatGPT, Claude, Midjourney, and 50+ AI tools. New tutorials added every week.

7-day free trial. Cancel anytime.