A market stall has a problem that a restaurant does not: the whole product turns over in seven days. What is on the table on Saturday is what was harvested, baked or finished by Friday night; what is not on the table is a sentence the vendor says two hundred times — sold out, next week. A printed price sheet is out of date before the queue forms, and a new sheet every week is a printing job nobody at a stall has time for at 5:40 am.
The tempting answer is “put it on Instagram”. The better answer is one page you own, edited from a phone between customers, plus one code printed once. Those two pieces do different jobs, and the reason they work together is that the code never encodes the list — it encodes the address the list lives at.
What changes every Saturday, and what must never change
| Changes weekly | Never changes — print it once |
|---|---|
| Which items are on the table | The address on the page |
| The unit price of produce, by the week's crop | The QR code on the sign |
| What sold out, and at what hour | The market and the day: “Saturdays, 8–1” |
| The photo of this week's table | The phone number and the payment methods |
Two columns is the whole design brief. Everything in the left column lives inside the page and is edited there. Everything in the right column is printed on the sign, once, and never touched again. When those two sets get mixed up — a URL on the sign that changes with the week, a code that points at a file that gets replaced — the sign has to be reprinted, and a stall that reprints is a stall that stops updating.
The code holds the address, never the list
This is the one technical sentence that decides whether the whole arrangement works: a QR code contains a string, and if that string is the address of a page you control, the code keeps working for as long as you keep the page at that address.
A stall's page gets an address like /s/rosies-greens on publishing, and it stays there. The list inside it changes; the address does not; the code does not. Three common alternatives all break that chain:
- A PDF. A file that is re-uploaded gets a new address, so the printed code opens last month's list. A PDF also opens at page width on a phone, which is a pinch-and-drag experience at a table with a bag in your hand.
- A post or a story. Stories expire, posts scroll, and the caption is not a place anyone looks for a unit price. The stall's own customers are the ones who need the answer on Saturday morning, and they are not scrolling back to find it.
- A shortener or a tracking URL. Two separate risks: an address you do not own can be turned off, and a long address makes a denser code — see the measurement below, where 40 extra characters cost a fifth of every module.
Seven blocks on a stall page
| Block | What goes in it | Why it is there |
|---|---|---|
| Name, market, day | “Rosie's Greens · Saturday Market, stall 14 · 8–1” | A customer who scanned a sign three stalls away needs to know they are in the right place |
| Today's table | Twelve lines: item, unit, price, status | The only block most people read; put it above the photographs |
| The dated line | “Prices as of Saturday 14 November” | Proves the list is current without claiming it is permanent |
| Sold out | One line, updated during the morning | Saves the walk to the stall and the message that goes unanswered |
| Pre-order and hold | What can be reserved, by when, and how it is paid for | The block that turns a browser into a customer before eight |
| Payment and where | Cash, card, the market's token scheme; stall number and a map link | Two questions asked at every stall, every week |
| Next week, then photos | One line about what is coming; six photos of the actual table | Photographs under the prices, not above them — the price is what was asked for |
Seven blocks, one screen, no newsletter pop-up and no cookie wall. The test is the same one every week: can a customer who has never been to the market answer what is there, how much, is it still there, where exactly, and can I pay by card — without sending a message the vendor will read at nine that night.
The Wednesday, Friday, Saturday rhythm
Weekly stock does not need a daily habit; it needs three edits a week, and each one is small enough to do with one thumb:
- Wednesday — what is planned. A line under “next week” and the pre-order list opened. This is the edit that makes Friday's orders possible.
- Friday night — the table and the prices. Twelve lines, units, and a new date. The date is the promise; the prices are the content.
- Saturday 11am — sold out. Two words next to two items. This one edit is why the page exists at all: it is the answer to the message that arrives at 11:40.
The regularity matters more than the tool. A page edited three times a week becomes the thing regulars check before they leave the house; a page edited once in March becomes a dead link nobody scans twice. If the three edits take more than a minute each, the page will not survive the season — which is the practical argument for a list that is typed, not a layout that is dragged.
The unit is the argument
Almost every disagreement at produce stall is about the unit, not the number. “Four dollars” is four dollars a pound, a kilo, a bunch, a punnet or each — and the customer finds out which one at the till. Writing the unit on every row removes the entire category of argument, and it costs one word:
Tomatoes, heirloom · per lb · $4.00 · selling fast
Beans, green · per lb · $3.50 · in
Sourdough, country loaf · each · $7.00 · sold out
Eggs, half dozen · per carton · $4.50 · in
Honey, wildflower · 12 oz jar · $11.00 · in
Flowers, mixed bunch · per bunch · $12.00 · in
Two things in that block do more work than they look like. The dated line at the top is what a customer reads instead of asking “is this current?”. And the status word on each row means the same list that sells the tomatoes also reports the bread — one list, two jobs, no second place to update.
Where a price genuinely moves with the week's crop, say the rule instead of a false number: “$3–$4 a lb, depending on the crop”. A range with a reason is trusted; a single number that turns out to be last week's is not.
Three reading distances at a stall, in millimetres
A stall is read from three distances at once — the customer at the table, the customer at the next table, and the customer walking past the aisle. Each wants its own piece, and the sizes are not a matter of taste. These are the measured figures from the print files this site produces, with the A3 and A2 rows derived from the same artwork:
| Piece | Printed size | Code | Read from |
|---|---|---|---|
| Table price card (a quarter of an A4 sheet) | 93.0 × 127.5 mm, four per A4 with 8 mm gutters | 48 mm | about 0.5 m — the customer at the table |
| Crate or box sticker | 70 mm round label | 40 mm | about 0.4 m — leaning over the box |
| Printed price list, held | A4 sheet | 30–40 mm | arm's length |
| A-frame poster | A4, 210 × 297 mm | 126 mm | about 1.26 m — the front of the stall |
| The same artwork on A3 | 297 × 420 mm (141% of A4) | 178 mm | about 1.78 m — arithmetic, not a printed piece |
| The same artwork on A2 | 420 × 594 mm (200% of A4) | 252 mm | about 2.5 m — the other side of a narrow aisle |
The distances come from the industry rule of thumb of one unit of code per ten units of distance — a rule for a clean, matte, well-lit code and an ordinary phone camera. It is not part of the QR standard (ISO/IEC 18004), and it is the number to treat as a floor rather than a guarantee: in afternoon sun, under gloss laminate, or through a plastic sleeve that has bowed, plan for 1:8 and expect the phone to need a second longer.
Which produces the useful conclusion for a stall: at 1:10 our sizes sit exactly on the rule, not above it. The 48 mm card is for 0.48 m and the 126 mm poster is for 1.26 m. That is correct for a table and a front-of-stall sign. It is not correct for a sign that has to be read from three metres away, and the arithmetic says so plainly: at 3 m you want about 300 mm of code, which on a 420 mm-wide A3 leaves 60 mm of paper on each side — a code with a stall's name squeezed above it and nothing else. The better answer is not a bigger poster. It is a second card at the front edge of the table, where the customer is already 0.5 m away and the 48 mm code is generous.
Two more numbers keep the piece scannable when it is printed at home or at a copy shop. Every code in these files carries a four-module quiet zone on all four sides — the margin Denso Wave's FAQ and GS1's 2D barcode guideline both require (four times the module width) — so the white border around the code is part of the code, and a border line, a photograph or a price sticker printed into that margin is the most common reason a pretty sign does not scan. And the printer's floor is about 0.17 mm per module, with four printer dots per module (0.33 mm) recommended at 300 dpi: at 41 squares across, a 48 mm code gives 1.17 mm per module and a 126 mm poster gives 3.07 mm, both comfortably above it.
Why the payload length decides whether it scans
Here is the measurement that surprises people. The code on the sign has 33 modules across, plus the four-module margin, so 41 squares — at error correction level M, which is what these files use. That is not a design choice made at the printer; it is what a short URL produces. Encode something longer and the code does not grow, it gets denser: the same physical piece of paper holds more modules, each one smaller.
Measured with the same library these files use, at error correction M:
| What the code holds | Modules | With margin | Module at 48 mm | Module at 126 mm |
|---|---|---|---|---|
A page address, 47 bytes — /s/rosies-greens | 33 | 41 | 1.17 mm | 3.07 mm |
| The same address with a long slug, 70 bytes | 37 | 45 | 1.07 mm | 2.80 mm |
| The same address plus campaign parameters, 117 bytes | 45 | 53 | 0.91 mm | 2.38 mm |
Forty extra characters of tracking parameters cost about 22% of every module — the difference between 1.17 mm and 0.91 mm at the same 48 mm code, on a card that is going to be laminated and read in the sun. The fix is not a bigger sign: put the tracking on links that are typed and clicked (the page's own links, the market's vendor directory), and keep the string inside the printed code as short as the address can be. A short slug is not vanity; it is a fifth of your module size.
Four print rules for a market, not a shop
- Print at 100%, never “fit to page”. A4 artwork on a US Letter sheet is scaled to about 94%, and every module shrinks with it — the 48 mm code arrives at 45 mm, which is fine, until the next reduction.
- Matte, not gloss. A market sign lives in the direction of the sun. A gloss laminate or a glossy photo print throws a highlight across the code at exactly the angle a customer holds a phone.
- Flat and clean. A code behind a bowed plastic sleeve, on a curved cooler lid, or under a dusting of flour is a code at an angle. Flat card, matte laminate, and a wipe before opening.
- Weight the frame. An A-frame that blows over at 9:20 is a sign nobody can scan at 9:25. Sandbag the base or use a frame with a water-fillable foot.
And one rule that is not about print at all: test at the stall, at the hour you open. Scan the first piece with an iPhone and an Android from where a customer actually stands — not from your hand over the table in the kitchen at midnight. Two minutes at nine o'clock saves a batch of two hundred cards.
Keep the chalkboard
None of this replaces the board at the front of the stall, and it should not. The board is read by the person who is already there, at one metre, in the sun, with a bag in one hand; it is the fastest interface ever invented for “what is left”. What the board cannot do is answer the customer who is still at home at 7:40 deciding whether the trip is worth it, or the one who wants to reserve a loaf on Thursday.
So the split is by distance, not by preference: the board for the person standing there, the page for the person deciding to come. A stall that runs both writes the list once and copies it to the board — and the page's dated line keeps the two honest with each other, because the day's date appears in both places.
Pre-orders, and the hold that keeps them
Pre-ordering is the highest-value thing a weekly stall can add, and it needs three sentences, not a shop: what can be reserved (loaves, boxes, bunches — not the tomatoes you might not have), by when (Friday 6pm, so Saturday's bake can account for it), and how it is paid for (cash or card on collection, or a deposit for a large order). The page holds those three sentences and a message link; the reservation itself arrives as a message, which is what a two-person operation can actually keep up with.
The hold is where the page earns its keep: “reserved until 11, then back on the table” is one line, and it is the difference between a pre-order that feels like a favour and one that feels like a booking.
What the monthly routes cost over three years
The same list prices, read on the vendors' own pricing pages on 14 November 2026, before tax, annual billing where the vendor states it:
| Route | Per month | 3 years | What the vendor gets |
|---|---|---|---|
| Linktree Pro (annual) | $14 | $504 | A list of buttons — no price table, no unit column |
| Wix Light (yearly plan) | $17 | $612 | A real site, in an editor someone has to learn |
| Squarespace Basic (annual) | $19 | $684 | The same, with a template to keep current |
| MapToSite Board | $6.99 | $251.64 | The page plus a six-photo gallery and a notice line |
| MapToSite Sign | $13.99 | $503.64 | The page, a gallery, and a domain of your own |
| MapToSite Card | $0 | $0 | One page: today's table, hours, call, directions, one photo |
| Printed kit | — | $49 once | The page plus the eight printed files ($89 / $149 at the larger tiers) |
Put those numbers against a stall's own ticket. At $6 a bunch, $504 over three years is 84 bunches — for a link list that cannot show a unit price. The monthly plans are not silly: they buy an editor, a shop, an email address and a domain, and for a vendor who sells online through the winter or runs a subscription box that is the right purchase. The question is narrower: does a Saturday stall need to rent an editor for three years to publish twelve lines and one link?
If the honest answer is “no”, the three-year cost calculator takes your own monthly figure and puts it beside a page paid for once — including the cases where the monthly plan wins, which are the cases where you need retail, bookings or a blog.
The eight files a market vendor actually gets
The printed kit was built for restaurants, where a table card is the point. A stall has no tables, so the kit has a second shape: the same price, six pieces fewer, nothing about the page changed.
With tables — fifteen pieces. Live page · delivery note · A4 QR poster · QR image · print menu · table cards · Business Profile kit · table tent · 70 mm stickers · Wi-Fi cards · menu screen · edit runbook · delivery-app notices · review cards · bring-a-friend cards.
No tables — the page plus eight files. Live page · delivery note · A4 QR poster · QR image · printable price list · Business Profile kit · edit runbook · review cards · bring-a-friend cards.
Six pieces come out, and they are the six that need a table: the table cards, the table tent, the 70 mm stickers, the guest Wi-Fi card, the menu screen for a wall, and the delivery-app notices. What stays is everything a stall uses on a Saturday: the A4 poster for the A-frame, the printable price list to clip to the table or slide into a sleeve, the QR image for the market's own vendor listing and the profile, the review cards for the customer who says “I'll be back next week”, and the runbook so Friday night's price change is a thumb, not a phone call to whoever built the page.
If you want the 70 mm crate stickers — and a honey or jam stall genuinely does — they come back for the price of asking, generated from the same record, so the address on the box and the address on the page cannot disagree. The same is true of the guest Wi-Fi card if the stall ever runs a card reader with a hotspot.
Every package gets the same files: $49 is the whole kit for ten tables, $89 for thirty, $149 for a hundred and a faster first draft. The contents do not change with the price — only the count of printed cards and the revision rounds.
Doing it before Saturday
- Publish the page and keep the address short. The slug is the module size; six to ten characters after
/s/is plenty. - Write twelve lines, with the unit on every one. Take them from the list you already keep for the market's vendor register, because that list is already the truth.
- Add the dated line and the sold-out row. One date, one status word per item — the two things the page exists for.
- Print one A4 poster and one table card at 100%. Matte. Scan both with two phones, outside, at the hour you open.
- Put the card at the front edge of the table and the poster in the frame — not everywhere at once. Watch whether the questions change before you print the batch.
That is the whole job: one address, twelve lines, a date, one code, and a habit of three edits a week. Nothing in it is clever, and none of it needs a monthly bill. It is the answer to “what have you got today” written down in the one place the customer looks before they leave the house.
Questions that come up
Do I need a new QR code every week when the stock changes?
No, and this is the whole reason to use a code at all. The code holds one thing: the address of the page. On Saturday it opens the page with the tomatoes and the sourdough on it; next Saturday the same code opens the same page with the beans and the sold-out sign. Nothing about the code is edited, so nothing on the sign has to be reprinted. What changes is the list inside the page — three edits a week, each of them under a minute.
Why not just put my Instagram profile in the code?
You can, and a stall with no page is better off with a profile than with nothing. The limit is what a profile can show. It cannot hold a four-column table with the unit on every row, it cannot say “tomatoes sold out at 11” without a new post, and it cannot tell a customer standing two metres away whether this is the stall with the eggs. A page you own does those three things on one screen, and it stays at the same address when the profile's bio link is swapped for something else.
Should the code open a PDF instead of a page?
No, and this is the one mistake worth avoiding. A PDF is a file, and a file that is re-uploaded gets a new address — so the sign points at last month's list, or at nothing. A PDF also opens at page width on a phone and asks the customer to pinch and drag to find a price. A page is one column of a phone's own width, with the prices the size of the phone's own text.
What goes in “today's table”?
Four columns: item, unit, price, status. “Tomatoes · per lb · $4.00 · selling fast”, “Sourdough · loaf · $7.00 · sold out”, “Honey · 12 oz jar · $11 · in”. Twelve lines is the useful ceiling — that is what a person reads while standing at a table with a bag in one hand. Anything past twelve belongs in the pre-order note or a photo of the board.
How do I handle prices that change every week?
Put the unit on every row and date the block: “Prices as of Saturday 14 November”. A dated line is the cheapest credibility there is — it tells the customer the list is current without pretending it is permanent. For produce whose price genuinely moves with the week, print the range and the rule: “$3–$4 a lb, depending on the week's crop”. A bare number that turns out to be wrong costs more than a range that turns out to be right.
How big should the code be on an A-frame sign?
It depends on how far away the customer reads it. The working rule of thumb is 1:10 — one unit of code for every ten units of distance — so 126 mm of code on our A4 poster is meant for about 1.26 m, which is the customer at the front of the stall. Read from 3 m across an aisle the arithmetic wants about 300 mm of code, and that no longer fits an A-frame comfortably; the honest fix is a second card at the front edge of the table, not a smaller code on a bigger poster.
Will the code still scan in sunlight, or on a laminated sign?
Usually yes, with two conditions: the code is printed at 100% (not “fit to page”), and the surface is matte. A gloss laminate under a market's morning sun throws a highlight exactly where the phone is pointing, which is the most common reason a well-printed sign fails at nine and works at two. Print one piece first, scan it at the stall, at the hour you open, before the batch.
What does a market vendor actually get for $49?
The eight-file kit, because a stall is the clearest case of an operation with no tables to print for: the live mobile page, the delivery note, the A4 QR poster for the A-frame, the QR image on its own, the printable price list for the table, the Google Business Profile kit, the edit runbook and the review cards — one price at every package tier, built in 24 hours. Six pieces of the fifteen-piece kit come out because there is nowhere to put a table card. The 70 mm crate stickers come back for the price of asking if you want them on the boxes.
Related reading: the bakery's daily menu page for the same daily-edit problem in a shop with a counter, the food truck's QR and Maps link chain for a stall on wheels, the millimetres guide for the arithmetic behind every size above, and the hair salon price list for a four-column list in a trade that sells time. For a shop with no tables at all, the eight-file kit is the same kit this page describes.
The poster, the table card and the price list — $49 once
A stall has no tables, so the kit is the page plus eight files: the live mobile page with today's twelve lines, the A4 QR poster for the frame, the printable price list for the table, the QR image for the market's vendor listing, the Google Business Profile kit, the review cards, the bring-a-friend cards and the runbook. Built in 24 hours, one price, and the page and the print come from the same list — so Friday night's price change is one edit, not a reprint.
Or make the page first — thirty seconds, free, no account, and it stays free:
Create a page — free See three live samples For food trucks
Sources, read on 14 November 2026. Vendor prices are list prices on each vendor's own pricing page, before tax, annual billing where the vendor states it: Linktree Pro $14 a month billed annually ($17 monthly); Wix Light $17 on a yearly plan; Squarespace Basic $19 annual ($25 monthly); the MapToSite tiers are this site's own published prices — Card $0, Board $6.99 a month, Sign $13.99 a month, printed kit $49 / $89 / $149 once. Print geometry — the 93.0 × 127.5 mm card with 8 mm gutters and a 48 mm code, the 70 mm sticker with a 40 mm code, the A4 poster's 126 mm code, the four-module quiet zone and the module sizes — was measured in the PDFs generated by this site's print kit (work/tools/en_print_kit.py, error correction M, four-module margin), not estimated. Module counts for the 47-, 70- and 117-byte payloads were produced by running the same QR call the kit makes, at error correction M. A3 and A2 rows are the A-series ratio (141% and 200% of A4) applied to the measured 126 mm code — arithmetic on a printed piece, labelled as such. The printer floor of about 0.17 mm per module, the four-printer-dots-per-module recommendation (0.33 mm at 300 dpi) and the four-module margin are from Denso Wave's QR FAQ; the quiet zone as four times the X-dimension also appears in GS1's 2D Barcodes at Retail Point-of-Sale Implementation Guideline (release 1.1.0, ratified December 2025). The 1:10 code-size-to-scan-distance figure is an industry rule of thumb, not part of ISO/IEC 18004. Market practice — weekly stock, by-the-pound and by-the-bunch pricing, the mid-morning sold-out, pre-orders collected on the day — is described as practice rather than as a dated statistic, because no survey is being quoted for it; a vendor should print their own units and their own numbers.