Published Build3 min read
"I need a website" specifies an artifact, not a problem
A grocery store's request would have bought an e-commerce platform it had no use for. One question about how the shop actually operates turned it into a system that could measure profit.
Written for builders.See today for builders

What happened
- A grocery store client approached the developer with the request "I need a website for my store."
- The developer's first assumption was e-commerce: product pages, a shopping cart, checkout, customer accounts and payment integration.
- Instead of starting to build, the developer asked one question: how does the business actually operate? He says that question changed the entire direction of the project.
- The store is a physical grocery store: customers walk in, pick their products, pay at the store, and leave.
- The store has no online orders, no delivery workflow, no customer accounts and no online checkout.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
A developer took a grocery store's request for "a website for my store", asked how the business actually operates, and built a retail sales and inventory system instead [1][3][7]. The useful part is not the pivot but the diagnosis: the request named an artifact and said nothing about the problem, and the gap between the two was worth weeks of build time [14].
The first assumption was e-commerce: product pages, cart, checkout, accounts, payments [2]. The workflow interview killed that. The store is physical, customers walk in, pick products, pay at the counter and leave, and there are no online orders, no delivery, no customer accounts and no online checkout [4][5]. An e-commerce platform would have been a correct implementation of a problem the business did not have. The actual pain was in the back office, where sales were tracked by hand, which made daily records, remaining stock, accurate profit and any trend over time hard to produce [6].
So the system records a sale and derives the rest: revenue and profit calculated, inventory updated, transaction saved [7]. The developer's worked example: a bottle at cost NGN 500 and selling price NGN 700, stock 100, customer buys three, giving revenue NGN 2,100, cost NGN 1,500, profit NGN 600, and remaining stock 97 [8]. That is NGN 200 of margin per unit, about 29 percent of the selling price [1][2]. Staff are not asked to work any of that out [8].
Two of the design decisions are the ones that separate a records system from a form with a database behind it.
First, the arithmetic lives on the server. The frontend posts only a product ID and a quantity; the backend confirms the product exists, checks stock, reads current prices from the database, computes total, cost and profit, updates inventory and writes the transaction [9]. According to the author, the point is that a client cannot edit a frontend value and change the recorded profit [10].
Second, each sale item stores a snapshot of product name, quantity, cost price, selling price, subtotal and profit, so an old transaction stays accurate after the product is edited [12]. The reason is concrete. If the same bottle later moves to NGN 600 cost and NGN 800 selling [11], recomputing that three-unit sale at current prices would report revenue of NGN 2,400 rather than NGN 2,100, an overstatement of NGN 300, while profit happens to stay at NGN 600 [3]. A reporting bug that leaves the profit line intact is exactly the kind that survives a review.
Stock rules get the same treatment. With five in stock and a recorded sale of seven, the server rejects the transaction with an available quantity rather than saving negative two; the frontend may warn, but enforcement is server-side [13].
The same failure mode shows up in a different market. A founder-services operator in Taiwan reports that founders routinely ask for a website before the underlying operating decisions are settled, which produces avoidable rework because domain, contact details, invoicing flow, legal pages, content ownership and site architecture all depend on decisions outside the codebase [15][16]. Their scoping question is what evidence the site must produce: qualified leads, bookings, pre-orders, signups, distributor inquiries or completed purchases, and that answer should drive scope more than a feature list [17].
Worth watching: whether the store's numbers are trusted enough to act on, and whether asset control is written down. The Taiwan account is blunt that a site can look finished and still be a liability if nobody knows who holds the domain or the production credentials [19].
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
A grocery store client approached the developer with the request "I need a website for my store."
- [2]
The developer's first assumption was e-commerce: product pages, a shopping cart, checkout, customer accounts and payment integration.
ReportedView cited source - [3]
Instead of starting to build, the developer asked one question: how does the business actually operate? He says that question changed the entire direction of the project.
ReportedView cited source - [4]
The store is a physical grocery store: customers walk in, pick their products, pay at the store, and leave.
ReportedView cited source - [5]
The store has no online orders, no delivery workflow, no customer accounts and no online checkout.
ReportedView cited source - [6]
Sales were being tracked manually, making it difficult to keep accurate records of daily sales, know remaining stock, calculate profit accurately, track sales over time, and understand business performance.
ReportedView cited source
Sources & coverage · 1 publisher
The reporting this story was synthesized from, earliest first. Every link goes to the original.
- dev.toPaul Ifeoluwa-LevitesAug 13The Client Asked for a Website. The Business Needed Something Else.
Cited in this coverage: dev.to case study by thecurlyhairdev
Cited in this coverage: the developer, in the dev.to case study
Cited in this coverage: ezstartuptaiwan, dev.to
- dev.toEvan ChenAug 13Before Building a Business Website in Taiwan: 9 Questions Developers Should Ask

