BuildDescribing your app
Updated 4 Nov 20262 min readView as Markdown

Describing your app

How to write a first message that gets you a useful first version.

The opening description does most of the work. You do not need technical vocabulary. You need to be specific about people, tasks and data.

Start with the job to be done

One sentence about who needs what:

  • "A tool for our support team to log customer complaints and see who is handling them."
  • "A site where members can book a desk for the day and see which desks are taken."

If you cannot say it in one sentence yet, the first version is probably trying to do too much.

Name the people

Most apps have two or three kinds of user. Name them and say what each can do:

  • Visitors can browse and submit an enquiry, but not see anything else.
  • Members can manage their own bookings.
  • Staff can see everything and change any booking.

Those roles decide what each person sees, so getting them right early saves a rebuild later. See Roles and permissions.

List the things you keep track of

Say what a record looks like in plain language. "A client has a name, an email, a phone number and a list of sessions" is enough for the builder to create the right shape. If you already have a spreadsheet, describe its columns or paste a screenshot of the header row.

Describe screens in the order people use them

"First they see a list of open jobs. Clicking one opens the detail page with notes and a status dropdown. There is a button to create a new job from the list." That is a whole app in three sentences.

Say what should happen when things go wrong

The details that make software feel finished are usually the unhappy paths:

  • What happens when a form is submitted twice?
  • Can a booking be cancelled, and does the slot become available again?
  • What should an empty list say?
  • Who gets an email when something changes?

You do not have to cover all of them up front. Just know that they are part of the work, not polish.

A description that works

A membership site for a small gym.
Members sign in and see this week's classes, book a place,
and cancel up to two hours before the start.
Staff see each class with a list of who booked,
can add a member manually, and can cancel a class (members get an email).
No payments for now.

Add "No payments for now" or "Ignore mobile for the first version". Naming what you are deliberately leaving out keeps the first build small and fast.

Next: Iterating in chat.

Was this page helpful?