Skills / Build a web app
Build a web app
Build a small web app and put it live. One data type done completely: it works, persists, and handles bad input. Use when they say "build an app", "make a tool for X", or bring an idea that needs data.
Use this skill. Nothing to install.
Don't have an agent? · Raw file: skills/build-web-app.md
Watch the first two minutes
This is how a session goes, including the part where the app sounds too hard. Click through it.
Scripted example of a real session.
Think an app needs a server and a login?
The smallest real app needs neither. It needs one data type handled completely: you can add an entry, see it, change it, delete it, and it is still there after a reload. The browser's own localStorage covers persistence, a free host covers the URL, and bad input gets rejected with a message instead of breaking things. People ship apps like these with this skill:
What you end up with
A working app at a URL, and a repo that shows restraint. Here is the shape of a finished first app:
game-nights/ ├── index.html ├── app.js the whole app, ~150 lines 1 └── README.md what it is + "later" list 2 one entry: { date, game, winner, points } lives in: localStorage, survives reload live at: username.github.io/game-nights the loop, all working: add entry validated, bad input refused list designed empty state edit / delete both there standings all-time table 3
- Small enough to read. You modeled the data out loud before any code, so you can point at the line that stores an entry and the line that sorts the standings.
- The README holds the cut features. Achievements, profiles, season mode: all written down under "later". Writing them down is how the version that exists got finished.
- One payoff feature. The derived view that makes the app worth opening: a streak, a total, a standings table. This skill picks it with you and builds it last.
Questions people actually ask
Is this free?
Yes. The skill is free, hosting on GitHub Pages is free at this scale, and localStorage costs nothing because it ships inside the browser. The agent you paste the skill into may have a free tier; Gemini's is the widest.
Do I need to know how to code?
No, but you will learn some by watching. The agent implements in visible steps and explains each one in a sentence, and your choices decide the names, the fields, and what the app shows first.
Will my data disappear?
localStorage lives in one browser on one device, and clearing that browser's site data clears it. For a first app that trade is fine, and the skill says so up front. An export button is a reasonable "later" item if the data starts to matter.
Will it work on my phone?
Yes, and the skill treats that as part of done. Session five is unhappy paths plus a phone pass, because a tracker you can't use in the moment doesn't get used.
What happens when I want accounts and shared data?
That is the honest boundary of this skill: everything lives in one browser. When a real second user shows up, backend-basics and auth-basics are the next skills, and the app you built here is the right starting point for them.
Where to go from here
Need an idea you'd actually open twice? Start from your real life:
App live? Build on it:
Ideas to use it on
- An alumni and mentors directory that opts in — A directory connecting students at your school with alumni and adult mentors who explicitly opted in: where they work or study, what they'll take questions about, and how they prefer to be reached.
- Split-the-bill calculator — A calculator built for how your friend group splits a bill, not the even-split textbook case.
- An image classifier for your own photos — Train an image classifier on categories from your own camera roll: your dog vs other dogs, sketchbook pages vs lecture notes, the climbing gym vs the skatepark.
- Chore rotation board — A board that answers one question: whose turn is it.
- Flashcards for one class — A flashcard app for the one class you are studying right now, with a deck you type in from your own notes.
- A membership and dues tracker for a real club — A membership roster and dues ledger for a club you actually belong to.
- A club election people can trust — An election system for a real vote your club actually needs to hold: officers, a budget priority, next semester's event.
- The platform your club actually runs on — A management platform for a club you are actually in: member roster, events with RSVP, attendance taken at real meetings, and announcements from officers.
- Collection manager — A manager for a collection you actually keep: cards, sneakers, vinyl, plants, books, minifigs.
- Countdown board — One screen showing the dates you are counting down to, with days remaining on each: the exam, the season opener, your best friend's birthday, the license test.
- A deadline aggregator with its own backend — One page showing every deadline that matters to you and your classmates, pulled from the scattered places they actually live: a teacher's posted calendar (ICS feed), a class platform with an API or export, plus manual entry for the ones that exist only on a whiteboard.
- Decision spinner — A spinner for the decisions your group repeats: who rides shotgun, who picks the movie, which chore is whose.
- Dinner picker — One button that answers "what's for dinner tonight" from a list of the meals your family cooks.
- An inventory system for a family business — A stock-tracking system for a business run by your family or someone you know well: a shop, a stall, a food truck, a workshop.
- Family tree, rendered — Interview your parents and relatives, capture the family as a plain data file (one person per record: name, dates, parents, notes), and render it as a browsable tree.
- How well do you know me — A quiz about you or your friend group: real questions with one right answer each, a score at the end, and a results screen worth screenshotting back to the group chat.
- Game-night standings — An app that records your friend group's game-night results as they happen and computes a standings table plus each player's sorest statistic: the losing streak, the always-second record, the win rate that collapses at one specific game.
- Converter for your hobby — A converter for the conversions your hobby makes you do: grams to cups for your baking, inches to millimeters for your builds, or the currency for the trip your family is planning.
- An idle game that respects the player — An incremental game where a number goes up: pick a resource from your life (loaves baked, laps swum, posters printed) and let the player click for it, then buy generators that produce it automatically, then buy upgrades that multiply the generators.
- The league office for your rec league — A season platform for a rec league you play in or help run: pickup basketball, intramural volleyball, a fantasy league, a chess ladder.
- Your listening, charted — Request your listening history export from your streaming service, parse the raw file, and build an app that charts what you played: top artists by month, the song you would not admit to, the drift from one genre to another.
- A daily puzzle over your niche's vocabulary — A wordle-like guessing game where every answer comes from the vocabulary of your niche: climbing holds, fishing lures, K-pop groups, chess openings, whatever your group chat already argues about.
- Packing list generator — Pick a trip type, get the list, check things off as they go in the bag.
- Pantry inventory — Everything in the family freezer and pantry, entered once, with a page that shows what is oldest and should be used first.
- Paycheck calculator — A calculator for your part-time job's pay: enter the hours you worked, see what Friday's check should be.
- A recommender trained on your own ratings — You have years of opinions about books or movies.
- A tracker for something you actually track — A web app that tracks one thing from your real life: habits, workouts, reading, practice hours, spending: and shows you something derived from the data: a streak, a total, a trend.
- A physics toy that turned into a game — Start with a toy: things on a canvas that fall, bounce, stack, or swing, fun to poke with a mouse before there are any rules.
- Plant watering schedule — The plants in your house, each with its own watering interval, and a today view that answers one question: what is thirsty right now.
- QR check-in for a real event — Registration and door check-in for an event you or your group is actually running: a club showcase, a tournament, a fundraiser evening.
- The quote wall — An archive of funny things your friends and family have said, each quote dated and attributed, with a random-quote button that makes the group chat resurface old ones.
- A buy-and-sell board for your school — A listings board for students at your school: textbooks, calculators, uniforms, concert tickets someone can't use.
- Score keeper with house rules — A score keeper for the card or board game your family or friend group plays, including the house rule nobody outside the house believes.
- A booking system for a tutor or coach — A booking system for one real person who sells their time: a tutor, a music teacher, a sports coach, maybe you.
- A sign-up sheet that works — A sign-up sheet for a real group you belong to: event slots, shifts, study sessions, potluck dishes.
- A study-group scheduler with real sign-in — A scheduler for a study group that currently plans everything in a chat thread.
- Study timer with a log — A timer for study sessions plus a plain log of what each session covered.
- A stats platform your whole team updates — A stats site for a team you play on or manage, where the team itself enters the data.
- Text adventure of your house or school — A playable text adventure set in your own house or school: real rooms, real connections between them, and the jokes only people who have been there will get.
- A lending library for neighborhood tools — A lending system for physical things your street or building already shares informally: ladders, drills, camping gear, a sewing machine, board games.
- Tournament bracket — A bracket app for a tournament your friend group is holding: Smash, FIFA, ping pong in the garage, whatever you compete at.
- Which bus — Open it after school and get one answer: catch the 4:12 or wait for the 4:31.
- Workout timer for your routine — An interval timer with your own routine hardcoded first and editable second: your sets, your work intervals, your rest lengths.
Curious? Read the full skill — the exact instructions your agent gets
---
name: build-web-app
category: web
description: Build a small web app and put it live. One data type done completely: it works, persists, and handles bad input. Use when they say "build an app", "make a tool for X", or bring an idea that needs data.
---
# build-web-app
Build a small real app with someone. Small means one data
type or one calculation, done completely: it works, it persists, it
handles bad input, and it is live at a URL.
## Ground rules
- Build it around their real life. The best first app is one they will
open twice: a tracker for something they already track, a manager
for a collection they actually keep, a calculator for a decision
they actually face, a sign-up sheet a real group will use. If they
have no idea, offer three from https://sphinxstack.com/ideas/ and
let them pick.
- Scope is one thing done completely. Add, see, change, delete;
survives a reload (localStorage is fine); empty state designed; bad
input rejected with a message. Control scope by writing the cut
features into the README as "later".
- Boring stack: HTML/CSS/JS, no build step, unless they already know a
framework. Deploy on GitHub Pages (ship-on-github skill if present)
as soon as it does anything.
- Work with them, not instead of them. Model the data out loud
together before code ("what is one entry? what are its fields?").
Implement in visible steps; explain each in a sentence. Their
choices decide names, fields, and what the app shows first.
## Session shape
1. Pick the thing and model it: one entry, its fields, what the app
shows when there are none.
2. Walking skeleton, deployed: add + list, live URL.
3. Persistence + the rest of the loop: edit, delete, reload-proof.
4. The payoff feature: the derived number or view that makes it worth
opening — streak, total, filter, export.
5. Unhappy paths + phone pass + README in their words.
## Done
- Live URL; data survives a reload
- Complete loop on one data type; designed empty state; validated
input
- Works on a phone
- README they wrote describing what it is and what "later" holds
Then: build-resume turns this into a resume line with a live link.








