RapidDashboard How-To Quick build: ship an app

Quick build: ship an app

Dashboards read. Apps also write. Four builds your team will actually use, each in stages you can stop after, plus what happens once real people are in it.

Prompt library 15 min read

How an app build is different

A dashboard reads your data and shows it. An app lets people change things, which brings four questions a dashboard never has to answer.

QuestionWhy it mattersSay it in the prompt
Who can log in? An app with a URL and no login is an app your whole network can edit. "Everyone signs in. Managers can edit their own team's records, executives see everything."
Where does new data live? Writing back into your ERP is a different risk from writing into a new table beside it. "Store new records in this app's own database. Read from the ERP and change nothing there."
What happens to mistakes? People delete the wrong row. Plan for it up front. "Nothing is ever hard deleted. Mark records inactive and keep a history of who changed what."
How does it get used on a phone? Most of these apps get used standing up, in a warehouse or a truck. "Design for a phone first. Big touch targets, works with one hand."

Start read-only against production. For the first version of any app, read from your live systems and write only to the app's own database. Once the workflow is proven and people trust it, decide deliberately whether writing back into the source system is worth it. Your coach should be in that conversation.

When to build and when to buy

Building is fast enough now that the question is worth asking honestly rather than assuming either answer. Some categories are solved, and a solved category bought for a few dollars a seat beats anything you build.

Build it whenBuy it when
Your process is genuinely specific and every product you have tried fights it. The category is mature and the products are good: payroll, accounting, email, document signing.
The app is mostly a view and a workflow over data you already hold. The value is in integrations with dozens of third parties you would have to maintain forever.
The users are internal and countable. Thousands of external users, or a compliance surface you would rather someone else certify.
You expect to change it monthly as the process changes. Regulatory certification is required, for example tax filing or clinical record keeping.
Existing tools cover 60% and the missing 40% is where your margin lives. Existing tools cover 95% and the gap is an annoyance rather than a cost.

A common and sensible answer is both: keep the system of record you bought, and build the layer on top that makes it usable for the way your team actually works. Every build on this page works that way.

Pressure-test the idea first
Before we build anything, help me decide whether we should.

What I am thinking of building: <describe it in three sentences>.
Who would use it: <roles and rough numbers>.
What we use today: <spreadsheet / a product / nothing>.

Tell me honestly:
1. Is this a solved category where buying something would serve us better?
   Name what we would buy and roughly what it costs
2. What would we get from building that we could not buy
3. What is the ongoing cost of owning this: what breaks, what needs changing
   when our process changes, what happens if the person who understands it
   leaves
4. Is there a smaller version that gets most of the value

Give me a recommendation, and argue against it in a paragraph so I can see
the other side.

Where your time actually goes

The building is the fast part. Plan your calendar around the parts that need you, because those are the parts that decide whether the app is any good.

PartWho does itWhat it needs from you
Agreeing the data modelYou and the box, in conversationReal attention. This is the stage that saves or costs you a rebuild.
Building the screensThe boxNothing while it runs. Then ten minutes clicking through it.
Connecting live dataThe box, with your approval on the importReviewing the sample rows and duplicate list before anything loads.
Roles and historyThe boxDeciding who sees what, which is a business decision rather than a technical one.
Testing and pre-launch reviewBothAn hour, honestly spent. Skipping it is where bad first impressions come from.
Watching three people use itYouHalf an hour, and worth more than another day of building.

Confirm with your coach Realistic elapsed timelines for your deployment, and whether an app like these needs to move to production before real users can reach it. Deployment mode changes the answer.

Build in stages, always

A single prompt asking for a finished CRM produces a plausible-looking thing nobody trusts. Four prompts, reviewed between each, produce something your team adopts. Every build below follows the same four stages.

1

Agree the data model

No code yet. What records exist, what fields they carry, how they relate. This is the stage where a five-minute conversation saves a rebuild.

2

Build the core screens

List, view, create, edit. Enough to walk through the real workflow once with a real person watching.

3

Connect the live data

Pull in the real records from your source systems. This is where you find out what the data actually looks like.

4

Add roles, history, and polish

Who sees what, who changed what, and how it looks on a phone.

💡

Stop and look between every stage. Open the thing. Click through it. The build moves fast enough that reviewing after each stage costs you ten minutes and saves you a day.

What a good data model looks like

Stage 1 asks the box to propose a model, and it helps to know what you are looking at. Here is the shape a sound CRM model comes back in. Yours will differ in the fields and match in the structure.

RecordKey fieldsRelates toFilled by
Company name, status, industry, owner, source, address Has many contacts and opportunities Mostly imported from accounting
Contact name, email, phone, job title, company Belongs to one company Typed by a rep, two fields required
Opportunity name, company, value, stage, expected close, owner Belongs to one company, has many activities Typed by a rep
Activity type, date, note, who did it, what it relates to Attaches to a company, contact, or opportunity Typed, or logged automatically later
User name, email, role, manager Owns companies and opportunities Imported from your directory

Three things make that model good, and they are the same three in every domain:

  • Each record is one real-world thing. A company is a company. Nothing is a grab bag of loosely related fields.
  • Every relationship has a direction and a count. One company has many contacts. A contact belongs to exactly one company. Ambiguity here becomes duplicate records later.
  • The "filled by" column is honest. Every field somebody has to type is a field somebody will skip. Knowing which is which up front is how you keep required fields to a number a rep will tolerate.

Reviewing the model you get back

Run down these six questions before approving stage 1. Each one catches a rebuild.

1

Can you describe every record type in your own words? If one needs the box to explain it, it is probably an idea about the data rather than a thing your business has.

2

Is any required field one your people will refuse to fill in? Move it to optional now. A required field people work around teaches everyone to enter junk.

3

Does every field have exactly one source of truth? The same fact stored in two places drifts apart within a month.

4

What happens at the awkward edges? A customer acquires another customer. A contact changes company. A job splits into two. Ask specifically, because these are what break a model six months in.

5

What can this model represent that your spreadsheet cannot, and what can it not? The second half of that question is the useful one.

6

Where does this app end? Say out loud what it deliberately will not do, so scope stays a decision rather than a drift.

Stress-test a proposed model
Before I approve this model, stress-test it against how our business actually
behaves.

Walk me through what happens in each of these, and tell me whether the model
handles it or needs changing:
- <a customer acquires another customer we also sell to>
- <a contact leaves and joins a different company we work with>
- <a record needs to belong to two parents at once>
- <a record is created by mistake and has already been referenced elsewhere>
- <two people edit the same record at the same time>

For each field you marked required, tell me what happens when someone does
not know the answer at the moment they are creating the record.

Then tell me the three ways this model is most likely to be wrong, and what
you would need from me to be sure.

The four builds

Each one is four prompts. Run them in order, look at the result between each.

Build 1: A CRM your team will use

Replaces: the shared spreadsheet, the CRM nobody updates because it asks for thirty fields.
Good when: your sales process is specific enough that generic CRMs fight you.

Stage 1: Agree the data model

CRM stage 1
We are going to build a CRM for our team. Before any code, propose the data
model and let me correct it.

About us: we sell <what you sell> to <who buys it>. A typical deal takes
<length> and involves <number> people on the customer side. Our sales stages
today are <list your stages>.

Propose:
- the record types we need and how they relate (companies, contacts,
  opportunities, activities, and anything else you think we need)
- the fields on each, marked required or optional, keeping required fields
  to the minimum a rep will actually fill in
- which fields we can populate automatically from data already connected to
  this box, so nobody types what we already know
- the stage list and what has to be true to move a deal forward

Then ask me the five questions whose answers would most change this design.

No code yet. Show me the model as a plain table I can read.

Stage 2: Build the core screens

CRM stage 2
Build the core screens for the model we agreed.

- A pipeline board: deals as cards in stage columns, drag between stages
- A company page: details, contacts, open and won deals, activity history
- A contact page: details, the company they belong to, their activity
- A quick-add that creates a company, a contact, and a deal in one form
- A search box that finds anything by company or contact name

Design for a phone first. A rep updates this in a parking lot, one-handed.
Keep every form to the required fields, with everything else behind a
"more details" toggle.

Store data in this app's own database. Read from our connected systems and
change nothing in them.

Seed it with realistic sample data so I can click through it, and clearly
label that data as sample. Then give me the link to open it.

Stage 3: Connect the live data

CRM stage 3
Replace the sample data with our real records.

Pull companies and contacts from <your source: accounting system, existing
CRM export, ERP customer table>. Match on <company name / customer number>
and tell me how many matched, how many were ambiguous, and how many were new.

For each company, pull in from our connected financial data:
- lifetime revenue
- revenue in the last twelve months
- date of last order
- current open receivable balance

Show those on the company page as read-only facts, with a note saying which
system each came from and when it last refreshed.

Before you import anything, show me twenty sample rows of what you are about
to load and the duplicates you found, so I can approve it.

Stage 4: Roles, history, and polish

CRM stage 4
Add access control and history.

- Everyone signs in
- Reps see and edit their own accounts and deals
- Managers see and edit their team's
- Executives see everything, read-only by default
- Nothing is ever hard deleted. Mark records inactive and keep them
- Record who changed what and when, and show that history on each record

Then add the two things that make people keep using it:
- a "my week" view showing my deals that need attention: no activity in
  fourteen days, close date in the past, or stuck in one stage over thirty days
- a weekly summary of pipeline movement I can read on a Monday

Tell me how to add a user and assign them a role.

What the box will ask you

  • How to match an imported company against one that already exists, and what to do with near-duplicates.
  • Whether a person who works at two companies is one contact or two.
  • What happens to a deal's history when it is reassigned to a different rep.
  • Whether a lost deal stays visible on the company page or disappears.

The mistake to avoid

Importing every field from the old system because it is there. Bring across what someone looks at, leave the rest, and add a field back when somebody misses it. A CRM with twelve fields per record gets used. The same CRM with sixty fields becomes the thing people avoid.

Where to take it next

  • "Log emails against the contact automatically." (Needs a mail integration. See API integrations.)
  • "Build the pipeline dashboard from Sample 2 on top of this data."
  • "Alert the rep when a customer's receivable goes past sixty days."

Build 2: Job scheduler

Replaces: the whiteboard, the shared calendar, the dispatcher's memory.
Good when: you assign work to people or equipment across days and someone in the field needs to see it.

Stage 1: Agree the data model

Scheduler stage 1
We are going to build a job scheduler. Before any code, propose the model.

About us: we schedule <what: service calls / installs / production runs /
deliveries> against <who or what: technicians, crews, machines, trucks>.
A job takes <typical duration> and we schedule <how far ahead>. Today this
lives in <whiteboard / spreadsheet / shared calendar>.

Propose:
- the record types (jobs, resources, assignments, customers, and anything
  else) and how they relate
- job statuses and the legal transitions between them
- what makes an assignment invalid: double booking, missing skill,
  outside working hours, insufficient travel time
- which of this we can populate from data already connected to this box,
  for example open work orders

Then ask me the five questions that would most change the design.

No code yet.

Stage 2: Build the core screens

Scheduler stage 2
Build the scheduling screens.

- A week view: resources down the side, days across the top, jobs as blocks,
  drag to reschedule or reassign
- A day view for the dispatcher, denser, with travel gaps visible
- An unscheduled queue beside the calendar: jobs needing a slot, sorted by
  promised date, drag onto the board
- A job detail page: customer, location, description, status, assigned
  resource, notes, history
- A "my day" mobile view for the person doing the work: today's jobs in
  order, tap to see details, tap to mark started or complete

Warn on conflicts rather than blocking them. The dispatcher knows things the
system does not, so show the warning and let them proceed.

The mobile view is the one that matters most. Big touch targets, readable in
sunlight, works on a bad connection.

Seed realistic sample data, label it as sample, and give me the link.

Stage 3: Connect the live data

Scheduler stage 3
Connect the real work.

Pull open jobs from <your source: ERP work orders, service tickets, order
system>. Bring across customer, location, description, promised date, and
priority. Refresh <every 15 minutes / hourly> and tell me how you are
handling a job that changes in the source after we have scheduled it.

Pull the resource list from <your source: HR system, equipment register>,
including any skill or certification fields we can use for assignment rules.

Before importing, show me twenty sample rows and any records you could not
map, so I can approve it.

Stage 4: Roles, history, and polish

Scheduler stage 4
Add access control and the operational extras.

- Dispatchers can schedule and reassign anything
- Field staff see only their own assignments and can update status
- Managers see everything, read-only
- Record every schedule change with who, when, and what changed

Then add:
- a daily schedule summary the dispatcher can send out each morning
- a simple utilization view: scheduled hours versus available hours per
  resource per week
- a flag for jobs at risk of missing their promised date

Tell me how to add a user and assign them a role.

What the box will ask you

  • Whether a job can span more than one day, and whether it can be split between two resources.
  • What working hours and holidays apply, and whether they differ per resource.
  • Whether travel time between jobs should be reserved automatically or left to the dispatcher.
  • What happens to an assignment when the source system cancels the underlying job.

The mistake to avoid

Enforcing rules the dispatcher needs to break. Double-booking is sometimes correct because two jobs are next door to each other, and a system that refuses gets abandoned within a week. Warn loudly, then let the human decide, and record that they did.

Where to take it next

  • "Suggest the best resource for each unscheduled job based on skill, location, and current load."
  • "Text the customer when their job is scheduled and again when the tech is on the way."
  • "Build the on-time delivery dashboard from Sample 3 on this data."

Build 3: Monthly financial review

Replaces: the month-end deck someone rebuilds in slides every month.
Good when: the numbers are already available and the work is assembling, explaining, and circulating them.

This one is a hybrid: dashboard numbers with an app wrapped around them, so commentary, sign-off, and history live alongside the figures rather than in an email thread.

Stage 1: Agree the structure

Review stage 1
We are going to build a monthly financial review app that replaces the deck
we rebuild by hand every month.

About us: our fiscal year starts in <month>. We close the books around day
<number> of the following month. The review is read by <who> and the
recurring arguments are about <what: allocations, timing, which entity>.

Propose the structure:
- the sections of the review, in the order a reader wants them
- which numbers appear in each, and where each comes from in our connected
  data
- where a human needs to add commentary rather than the system explaining it
- what "this month is closed and approved" should mean, and who says so

Then ask me the five questions that would most change this.

No code yet. Show me the outline.

Stage 2: Build the review

Review stage 2
Build the review for a selected month.

- A month picker at the top. Everything below reflects the chosen month
- Executive summary: revenue, gross margin, operating expenses, net, cash,
  each with change versus prior month, versus same month last year, and
  versus budget if we have it
- Revenue detail by <product line / division / entity>, with variance
  explanations where the change exceeds <threshold>
- Expense detail by category, ranked by variance to budget, largest first
- Cash: opening, in, out, closing, plus receivables and payables aging
- A commentary box under each section where a human types the explanation,
  saved with the month

Every calculated figure must be traceable: clicking it shows the query and
the underlying records.

Label anything AI-generated as commentary, clearly separated from calculated
figures, so a reviewer always knows which is which.

Seed with our real data for the last three closed months and give me the link.

Stage 3: Add the workflow

Review stage 3
Add the month-end workflow.

Statuses: Draft, In Review, Approved. Only <role> can approve.

Once a month is approved:
- freeze the figures so the page always shows what was approved, even if the
  underlying data changes later
- keep a note of any subsequent change in the source data, so we can see
  drift without the approved numbers moving

Add a comparison view: put any two approved months side by side.

Add an export that produces the same content as a document I can attach to
a board pack.

Stage 4: Automate the boring part

Review stage 4
Automate the assembly.

On day <number> of each month, create next month's review in Draft with all
figures populated, and notify <role> that it is ready for commentary.

For each variance over <threshold>, pre-draft one sentence of explanation
based on the underlying transactions, clearly labeled as a suggestion for a
human to confirm or replace.

Send a reminder if a Draft review is still unapproved after <number> days.

Tell me where the schedule is configured so I can change the dates myself.

What the box will ask you

  • What happens when a prior month is re-opened and figures change after approval.
  • Whether budget lives anywhere it can read, since it usually sits in a spreadsheet.
  • How to treat accruals and reclasses posted after the review was drafted.
  • Whether the approved version needs to be immutable for audit, or just clearly versioned.

The mistake to avoid

Letting the approved figures move. The whole value of this app is that the number your board saw in March is still the number the page shows in September. Freeze on approval and record drift separately, and the app earns trust the deck never had.

Where to take it next

  • "Add a rolling twelve-month forecast built from the last three approved months plus the open pipeline."
  • "Add a covenant page tracking the ratios our lender cares about, with a warning band before we breach."
  • "Give department heads a filtered view showing only their own budget."

Build 4: Approvals and requests

Replaces: the email chain, the paper form, the "who signed off on this?" conversation.
Good when: anything in your business needs somebody's yes before it happens: purchase orders, expenses, time off, discounts, change orders, new vendors.

This is the most reusable build on the page. One app handles several request types, and the fourth type you add costs almost nothing once the first three exist.

Stage 1: Agree the model and the rules

Approvals stage 1
We are going to build an approvals app. Before any code, propose the model.

The request types we want to start with: <for example purchase orders,
expense claims, time off>. For each, tell me what you think the form needs.

Our approval rules today, as best I can describe them:
<for example: anything under $500 the manager approves; $500 to $5,000 also
needs the department head; over $5,000 also needs the CFO; anything for a
new vendor always needs finance>

Propose:
- the record types and how they relate: requests, request types, approval
  steps, approvers, attachments
- how the approval chain is described, so we can change a threshold later
  without rebuilding
- what happens when an approver is away, or when a request sits unanswered
- what statuses a request moves through, and who can move it
- which fields we can fill automatically from data already connected to
  this box, for example budget remaining or vendor status

Then ask me the five questions that would most change this design.

No code yet. Show me the model and the rule structure as tables I can read.

Stage 2: Build the core screens

Approvals stage 2
Build the core screens.

- Submit a request: pick a type, fill a short form, attach files, see who
  will need to approve it before you send
- My requests: everything I have submitted, current status, where it is
  sitting and with whom, how long it has been there
- My approvals: the queue of things waiting on me, oldest first, with
  approve and decline on the same screen and a required reason on decline
- Request detail: the form, the attachments, the full approval trail with
  timestamps and comments
- An admin view listing every open request across the company

Design the approval queue for a phone. Approvers do this between meetings,
and the whole interaction should be readable and answerable in one screen.

Show the requester exactly who is holding the request right now. That single
piece of information removes most of the chasing.

Seed realistic sample data, label it as sample, and give me the link.

Stage 3: Connect the live data

Approvals stage 3
Connect the real context, so approvers can decide without leaving the screen.

Pull the people and reporting lines from <your source: HR system, directory>
so the approval chain follows the real org chart rather than a list we
maintain by hand.

For purchase requests, show on the request itself:
- budget remaining for that <department / cost center> this period
- what we have spent with that vendor in the last twelve months
- whether the vendor is already approved and set up for payment

For expense claims, flag anything outside policy: over a limit, missing a
receipt, or a duplicate of another claim.

Before you connect anything, show me where each figure comes from and how
fresh it is, so I can confirm an approver would be right to rely on it.

Stage 4: Rules, delegation, and the audit trail

Approvals stage 4
Add the rules that make this survive real use.

- Delegation: an approver can nominate a delegate for a date range, and the
  trail records that a delegate acted and on whose behalf
- Escalation: if a request sits unanswered for <2 working days>, remind the
  approver; after <4>, notify their manager
- Recall: a requester can withdraw a request that has not been fully approved
- Resubmit: a declined request can be edited and resubmitted, keeping the
  original and the reason it was declined
- Nobody can approve their own request, at any threshold

Make the audit trail complete and permanent: who did what, when, from where,
and what the request looked like at that moment. Approved requests are never
edited afterwards.

Then give me an admin screen where I can change thresholds and approval
chains myself, without needing another build.

What the box will ask you

  • What happens when the amount changes after partial approval: restart the chain, or continue.
  • Whether approvals are sequential or can happen in parallel.
  • Who approves a request from someone with no manager set.
  • Whether a declined request should notify anyone beyond the requester.

The mistake to avoid

Hard-coding the thresholds. Every business changes its approval limits, and if changing $5,000 to $10,000 needs a rebuild, the app becomes stale within a year. Insist the rules live in a screen you can edit, and stage 4 above asks for exactly that.

Where to take it next

  • "Push approved purchase orders into as draft POs so nobody rekeys them."
  • "Show me a dashboard of approval cycle time by type and by approver."
  • "Add a fourth request type: ."

More ideas, by industry

Each of these follows the same four stages. Use the seed sentence as the opening line of a stage 1 prompt and add the detail from the CRM example above.

IndustryBuildReplaces
ManufacturingDowntime and scrap log: operators record a stoppage in three taps, with reason codesA clipboard and a monthly guess at causes
ConstructionDaily site report: crew, weather, progress, photos, and a change-order logTexts, photos in a phone, and a memory of what was agreed
DistributionReceiving and putaway: what arrived, what was short, where it wentPaper packing slips and a search of the warehouse
HealthcareReferral tracking: where each referral is, who is waiting, what is stalledA spreadsheet and a phone call to check
CPA and accountingClient deliverable tracker: what is due, what is waiting on the client, what is at riskA partner's spreadsheet and a busy-season scramble
LegalMatter budget tracker: budget against actual by matter, with an early warningA month-end surprise and an awkward client conversation
Auto dealershipsReconditioning tracker: where each vehicle is in recon and how many days it has been thereA whiteboard and a walk around the lot
Property managementTurn and work-order tracker: unit status, vendor assignment, days vacantEmail threads per property
Restaurant groupsShift checklist and waste log: opening and closing tasks, waste by itemLaminated sheets nobody keeps
💡

The pattern behind all of these is the same. Something important is currently recorded somewhere that cannot be counted: a whiteboard, a clipboard, a text message. Turning it into records you can query is usually worth more than the app itself, because the dashboard you build on top of it a month later is the part that changes decisions.

Testing before anyone else sees it

Three passes, each a single prompt. Run them after stage 4 and before the pre-launch review, and they catch different classes of problem.

Realistic test data

Sample data that is too tidy hides every problem. Ask for data that looks like your actual records.

Generate messy test data
Fill this app with test data that looks like our real data rather than
tidy examples.

Include the awkward cases on purpose:
- names with apostrophes, accents, and ampersands
- very long names that will test the layout
- records with optional fields empty
- two records that are near-duplicates of each other
- dates at period boundaries: the last day of a month, a leap day, a weekend
- amounts that are zero, negative, and very large
- a record in every status, including the rare ones
- at least one record for every user role

Label all of it clearly as test data and tell me how to remove it in one
step later.

Then screenshot or describe anything that looks broken with this data in it.

Edge cases and failure paths

Walk the edge cases
Walk through what happens in each of these and tell me whether the app
behaves sensibly. Fix nothing yet, just report.

- Someone submits a form with every optional field blank
- Someone submits the same thing twice by double-clicking
- Two people edit the same record at the same moment
- Someone opens a record, leaves for an hour, then saves
- A required source system is unavailable when a page loads
- Someone reaches a record they should not have access to by typing its URL
- Someone uploads a file that is too large, or the wrong type
- The list view has 50,000 records in it
- Someone uses the browser back button in the middle of a multi-step form

For each, tell me what happens now, what should happen, and how bad the gap is.

Permissions, from the other side

The check people skip. Roles look right from an admin account and leak from a normal one.

Test permissions properly
Test the access rules by acting as each role rather than by reading the code.

For every role we defined, list:
- every screen that role can reach
- every record that role can see, and confirm it cannot see the others
- everything that role can create, edit, and delete
- what happens when that role types the URL of a record it should not see

Pay particular attention to:
- list and search results, which often leak records the detail page blocks
- exports and downloads, which often ignore the filters applied on screen
- any report or summary that aggregates across records

Give me a table of role against permission, and flag every place where the
behavior differs from what we agreed in stage 4.

Before you let people in

Every app above ends with real people using it. Ten minutes of checking here prevents the kind of first impression that kills adoption.

Pre-launch review
We are about to give this app to real users. Review it and report back
before I invite anyone.

Check and tell me:
1. Who can currently reach this app, and what an unauthenticated visitor sees
2. Every screen that writes data, and what stops a user writing something
   they should not
3. What happens when a required source is unavailable: a clear message, or
   a broken page
4. Whether any screen exposes data a given role should not see
5. What is hard deleted anywhere, and whether it can be recovered
6. How it looks and behaves on a phone
7. Anything you built with sample or placeholder data still in it

For each problem, tell me the severity and the fix. Fix nothing yet.

Confirm with your coach Before an app goes to real users: the URL it will live at, how users sign in on your deployment, whether it needs to move from dev to production first, and whether it deserves its own instance in the Builder rather than sharing with your dashboards.

The first two weeks

Adoption is decided in the first few days. An app people bounce off once is hard to reintroduce, so spend the effort here rather than on another round of features.

1

Give it to three people, not thirty

Pick the three who will tell you the truth. Include the person most likely to dislike it, because their objection is the one everyone else will have quietly.

2

Watch one of them use it without helping

Half an hour, saying nothing. Every place they hesitate is a place the app is unclear. This is the single highest-value thirty minutes in the whole build.

3

Fix what they tripped over, same day

Turnaround is the message. Fixing something within hours of it being mentioned is what makes people bother mentioning the next thing.

Turn observations into changes
Here is what I watched three people struggle with:
<list what you saw, in their words where you can>

For each one, tell me whether the fix is wording, layout, a default value,
or a change in how the app works. Start with the ones that are wording,
layout, or defaults, since those are quick and account for most of it.

Make those changes now and show me. Leave anything structural until we have
talked about it.
4

Write the one-page guide

Not a manual. One page: what it is for, the three things you do most, and who to ask. Ask the box to draft it from the app itself.

Draft the user guide
Write a one-page guide for the people who will use this app.

Structure:
- what this app is for, in two sentences
- the three things people will do most often, each as numbered steps with
  the exact button names
- the two questions people are most likely to have, answered
- who to contact when something looks wrong

Write it for someone who has never seen the app and does not care how it
works. No jargon, no screenshots needed, fits on one page.

Then add a short "what's new" section I can update as we change things.
5

Open it up, and leave a way to complain

A link in the app that collects feedback beats a request to email you. People report the small things when reporting is one click, and the small things are what decide whether they keep using it.

💡

Retire the thing it replaces, on a date. An app running alongside the old spreadsheet loses to the spreadsheet, because the spreadsheet is familiar. Pick a date, say it out loud, and make the old thing read-only when it arrives.

Living with it after that

The build is the short part. An app people rely on needs an owner, a way to change safely, and a copy of its data somewhere else.

Changing an app people are using

The rules change once real records exist. A field you rename has values in it, and a workflow you alter has requests part-way through it.

Plan a change to a live app
I want to change this app: <describe the change>.

People are using it and there is real data in it, so plan before you build.
Tell me:
1. What existing records this affects, and how many
2. Whether any data has to be converted, and what happens to records that
   cannot be converted cleanly
3. What happens to work that is part-way through the current workflow
4. Whether anyone sees anything different, and whether they need warning
5. How we undo this if it goes wrong
6. Whether the app is unavailable at any point, and for how long

Show me the plan. Change nothing until I say so.

Keeping a copy of the data

The records people create in these apps often exist nowhere else, which makes them different from your dashboards. A dashboard can be rebuilt from your source systems. Six months of approval history cannot.

Set up exports
Set up a regular export of everything created in this app.

- <Weekly>, export every record and its history to <a location we agree>
- Use an open format anyone can read without this app: CSV or JSON
- Include the history and audit trail, not only the current state
- Keep <12> copies before overwriting the oldest
- Tell me if an export fails

Then show me one export now, and walk me through what I would do to read it
if this app were unavailable.

Confirm with your coach What is already backed up on your deployment and how often, whether an app you build is automatically included, and how a restore actually works. Test the restore once rather than assuming it.

Give it an owner

One named person who decides what changes, fields questions, and notices when something drifts. Without that, an app slowly becomes nobody's, and nobody's apps stop being trusted.

RhythmWorth doing
Weekly, first monthAsk two users what annoyed them. Fix the small things.
MonthlyCheck the app is being used the way you expected. Unused screens are worth removing.
QuarterlyConfirm the exports are running and readable. Review who has access and remove anyone who left.
When the process changesChange the app in the same week. An app that lags the process teaches people to work around it.

Troubleshooting

SymptomLikely causeWhat to say
Nobody is using it It is slower than the thing it replaced, or people were never shown it properly. "Show me who has signed in and what they did. Then tell me how many clicks the most common task takes."
Duplicate records appearing No uniqueness rule, or a form that resubmits on double-click. "Find the duplicates, tell me how they were created, and add a rule that prevents it without blocking legitimate cases."
A list page is slow It loads every record before filtering, or a lookup runs once per row. "This page is slow with real data. Tell me why, and fix it with paging and a proper index."
App data disagrees with the source system The sync stopped, or someone edited a record here that also exists there. "Compare this app's copy against the source and show me every record that differs and when it last synced."
Somebody deleted something they needed Hard delete slipped in somewhere. "Can this record be recovered? Then show me everywhere in this app that hard deletes, and change it to mark inactive."
A user cannot see what they should Role assignment, or a permission rule stricter than intended. "Show me exactly what role has and every rule that applies to the screen they cannot reach."
It worked yesterday and errors today A source system changed a field, or a scheduled job failed silently. "What changed since yesterday: in the app, in the data, or in a connected source?"
People are entering junk into a required field The field is required at a moment when nobody knows the answer. "Make optional at creation and prompt for it at ."
📞

An app real people depend on is worth a call before you change it. We can look at what is running, what it holds, and what a change would touch. 608-783-8324.

Talk to a human instead.

Every RapidDashboard client gets direct access to the team that built the box. Most questions take under ten minutes on a call.

📞  608-783-8324