Askmill

From the Apps shelf · No. 0007

Panjski dnevnik

I keep 14 hives near Ljubljana and want to log inspections on my phone with gloves on.

Worked example (simulated interview)

App prompt · 2,319 words · Published

The brief

This is a worked example. Askmill wrote this prompt from a simulated client interview, in which a model answered the questions for an invented client. The line under the title is the opening request the interview started from; everything else came out of the answers.

The prompt

The complete text, exactly as it is handed to an AI builder.

Download (.txt)

A beekeeper's hive diary for a phone held in a gloved hand: fourteen AŽ hives in two apiaries in the hills near Ljubljana, "Doma" (hives 1-8, behind the house) and "Gozd" (hives 9-14, 12 km away, with no phone signal). Concept: a visit to a calm hive is four thumb presses, and a job leaves the list only when a person says it is finished. Real data, stored in IndexedDB (schema version 1): hives {number, apiary}; visits {hive, time, queen seen, eggs, brood frames 0-10, temper, honey frames in the medišče 0-10, swarm cells 0-9, voice notes, photos, copied flag}; events {hive, date, feed or treatment, substance, litres}; jobs {hive, type, due date, closed date}. Eight job types: "Nahrani", "Preglej rojne matičnike", "Odvzemi med", "Dodaj prostor", "Mravljinčna kislina", "Oksalna kislina", "Zamenjaj matico", "Ponovni pregled". The calendar month decides which two are offered first: March-May Nahrani and Preglej rojne matičnike; June-July Odvzemi med and Dodaj prostor; August-October Mravljinčna kislina and Nahrani; November-February Oksalna kislina and Nahrani. Zamenjaj matico is always last.

Mood: plain, steady, legible; a fresh sheet of paper clipped to a board on the hive stand at noon in full sun. Light page, because a dark screen disappears in sunlight. Palette: paper #FBF7EE, the ground; ink #1F1A14 for all text and for selected buttons (about 16:1 on paper, at least 13:1 on card); card #F1E8D6 for rows and tiles; wood #7A4E24 for 3 px borders; done green #2E6B3A for inspected hives and the save confirmation (paper-coloured marks on it at about 6:1); honey amber #E3A008 for fills only (stepper bars, the recording light, the copy bar with ink text at 7:1), never as text; late red #B3261E used only for overdue jobs (a 10 px bar at the row's left edge and the word "zamuja"), nothing else uses it, not even errors. Allowed tints: 50% mixes with paper for disabled controls. No pure black or white.

Structure: six screens and a fixed bottom bar of three buttons, "Danes", "Obhod", "Panji". 1) Danes, the opening screen: one packing line per apiary derived from its waiting jobs ("Doma: nič posebnega", "Gozd: sirup"; Nahrani adds sirup, or pogača in November-February; Dodaj prostor adds satnice; Odvzemi med adds zaboj za sate; each acid adds itself; Zamenjaj matico adds nova matica), then a single list of overdue and due-today jobs, most days late first: "Panj 12 · Nahrani · Gozd · zamuja 2 dni", "Panj 5 · Preglej rojne matičnike · Doma · danes"; below it "Zadnja kopija: pred 3 dnevi". 2) Obhod: two buttons 120 px tall, "Doma · 8 panjev" and "Gozd · 6 panjev", then only that apiary's hives as tiles drawn like AŽ hive fronts (card face, wood border, a dark entrance slot at the bottom, the number at 64 px), two per row, at least 96 px tall; the apiary stays chosen until "Končaj obhod". 3) Pregled, one screen per hive: "Matica" DA / NE, "Jajčeca" DA / NE, "Zalega" with − and + starting from the last count ("6 satov"), then "Vse v redu" and "Nekaj je drugače". Vse v redu saves at once as calm, no swarm cells, honey as last time. Nekaj je drugače unfolds "Čebele" (Mirne / Nemirne / Napadalne), "Med v medišču" and "Rojni matičniki" steppers, "Hranjenje" ("Sirup" in 0.5 l steps up to 10 l, or "Pogača" in one press), "Tretiranje" (the two acids), "Naslednjič" (a job type, then "čez 3 dni", "čez 7 dni", "čez 10 dni" or "čez 14 dni"), "Povej", "Slikaj" and "Shrani". One or more swarm cells preselects Preglej rojne matičnike čez 7 dni. 4) Konec obhoda, the signature. 5) Panji: all 14 tiles with a switch "Tretiranje" / "Hranjenje"; under each number the last substance and its age ("mravljinčna · 23 dni", or "brez"). 6) Panj: two lines at 24 px, "Zadnje tretiranje: mravljinčna kislina, pred 23 dnevi" and "Zadnje hranjenje: sirup, 2 l, pred 9 dnevi", then the last visit in one line, then the full history, newest first, with voice notes to play and photos to enlarge.

Typography: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; nothing downloaded. Body 20 px weight 700, line-height 1.25; section labels 18 px weight 800, uppercase, 0.04em tracking; hive numbers 64 px weight 800 with tabular numerals. All copy is Slovenian (lang="sl"), second person singular, short, no exclamation marks; dates as "12. 8."; one helper handles Slovenian number agreement (1 sat, 2 sata, 3 sati, 5 satov; pred 1 dnem, pred 2 dnevoma, pred 3 dnevi). Empty list: "Danes nič ne čaka. Čebele delajo same." No feed yet: "Še ni bilo hranjenja." Save failure: "Shranjevanje ni uspelo. Pritisni še enkrat." Before the first copy: "Kopije še ni. Dnevnik je samo na tem telefonu."

Entrance: at 0 ms the paper ground and the bottom bar; by 300 ms the Danes rows fade in, 150 ms each, 40 ms apart, ease-out; usable within 1 s. The first run is never empty: all 14 hives exist, and four example records dated relative to that day make every screen speak (hive 5 visited 7 days ago: queen not seen, eggs, 6 brood frames, calm, 2 honey frames, 1 swarm cell, re-check due today; hive 11 given formic acid 23 days ago; hive 3 fed 2 l of syrup 9 days ago; hive 12 with a feeding job 2 days late). "Odstrani primer" removes them in one press. This first screen also asks once for microphone and camera, at home.

Interaction: presses only; no swipes, long presses, double taps or typing, and no text field exists anywhere. Every target is at least 64 px with 12 px gaps, and a press counts even if the thumb slides up to 20 px. Selected buttons turn ink with paper text. Each press is written to storage immediately as a draft, so after a screen lock, a drop or a restart the app reopens on the same hive with every value intact. Saving shows a full-screen green field with a paper tick and "Panj 5 shranjen" for 900 ms, with a 200 ms vibration where the phone allows it, then returns to the tiles, where a "Razveljavi" bar stays for 10 s. If that hive had a waiting job, a card asks "Opravljeno ali pridem še enkrat?" with "Opravljeno" and "Pridem še enkrat" (then 3, 7, 10 or 14 days); ignoring it leaves the job waiting, and the same card opens from any row on Danes. Nothing else ever interrupts a round. Povej records up to 30 s of audio kept on the phone (press to start, press to stop, amber light while recording; no speech-to-text); Slikaj attaches one photo, downscaled to 1280 px. Phone: one column. Screens 900 px and wider: Danes on the left, Panji or Panj on the right. Keyboard: Tab order follows the screen, Enter or Space presses, arrow keys move across tiles, + and − drive the focused stepper, Escape goes back; 4 px ink focus ring.

Signature moment: the end of a round, triggered by saving the apiary's last hive or by Končaj obhod. 0-900 ms the last tick; 900-1600 ms the apiary's tiles line up and stamp green in number order, 80 ms apart; 1600-2200 ms the line "Vseh 6 panjev je shranjenih." (8 at Doma) sets at 32 px with "Shranjeno na telefonu. Kopija počaka do doma." beneath; 2200-2800 ms today's new jobs rise in, 60 ms apart: "Panj 11 · Mravljinčna kislina · čez 7 dni · 19. 8." A skipped hive stays card-coloured and the line says so: "Shranjenih 5 od 6. Panj 12 ni pregledan." Any press completes the sequence; it rests until "Nazaj na Danes", with the tiles reset for the next round. Hidden detail: if every hive was saved with Vse v redu, one more line appears, "Vse mirno."

Safe copy: only on Danes, and only when the phone is online with uncopied visits, an amber bar reads "Nekopirani pregledi: 6" with "Shrani kopijo"; one press builds a single file, panjski-dnevnik-YYYY-MM-DD.json, holding every record, photo and voice note, and hands it to the phone's share sheet (plain download where sharing is missing); "Obnovi iz kopije" reads such a file back. Nothing leaves the phone without a press. No sound: the app is silent except voice notes played on request. The screen is kept awake during a round where the phone allows. Reduced motion: tick and summary appear whole, with no stamping or rising. Performance: first content within 500 ms on a six-year-old phone, total code under 200 KB, no libraries, no timers running while idle, each write confirmed within 100 ms. Fallbacks: without vibration the tick suffices; without microphone Povej is greyed with "Mikrofon ni dovoljen."; without storage Danes says so before any round starts. Never: sign-in, passwords, tips, ratings, notifications, tracking, red outside overdue jobs. Deliver index.html with everything inline, plus sw.js and manifest.webmanifest so it installs to the home screen from any https address and opens with no signal; no network requests at runtime. Done when: (1) from Danes, two presses (Panji, then 11) show when hive 11 last got formic acid and how many days ago, in under 5 s; (2) a round of 6 at Gozd in airplane mode, followed by switching the phone off and on, ends with all 6 visits present; (3) a calm hive takes four presses and under 10 s; (4) a round of 8 at Doma is completed in gloves with no keyboard ever appearing; (5) locking the screen mid-visit loses nothing.

DESCRIPTION
A warm paper-coloured screen with heavy, almost black writing that stays readable at noon in an open apiary. It opens on what is waiting: a row with a thick red edge for the hive whose feeding is two days late, a plain row for hive 5 and its swarm cell due today, each tagged Doma or Gozd, and above them one line per apiary saying what to put in the car. Starting a round shows two tall buttons, then only that place's hives as large numbered tiles drawn like the fronts of AŽ hives, with a wood border and a small entrance slot. A hive takes one screen: queen, eggs, brood count carried over from last time, and "Vse v redu". The whole screen turns green with a tick, the phone shakes, the tile is marked. When the last hive is saved the tiles stamp green one by one and a single large line confirms that all six are kept on the phone, followed by today's new jobs and their return dates. At home, any hive's page begins with when it was last treated and fed, and how many days ago.

VISUAL TECHNIQUES
- IndexedDB store, schema version 1, with four object stores (hives, visits, events, jobs) plus blobs for photos and voice notes; persistent storage requested on first run
- Write-through drafts: every press commits a draft visit in its own transaction, restored on launch to the same hive and screen
- Service worker caching the one page for launch without signal; web manifest for home-screen install in standalone portrait
- Month-driven job ordering from a four-season table (March-May, June-July, August-October, November-February)
- Derived views computed on open and at midnight: urgency-sorted waiting list, per-apiary packing lines, days-since-last-treatment and days-since-last-feed per hive
- Slovenian plural and case helper for sat, dan and panj, and day-month date formatting with a non-breaking space
- Glove-tolerant input: pointer events with a 20 px slop radius, 64 px minimum targets, 12 px gaps, no gesture recognisers
- Hive tiles as CSS-drawn AŽ fronts: card face, 3 px wood border, an entrance slot from a pseudo-element, 64 px tabular numerals
- Full-screen save confirmation: green field, inline SVG tick drawn by stroke-dashoffset in 300 ms, held to 900 ms, paired with navigator.vibrate(200)
- End-of-round choreography with the Web Animations API: 80 ms staggered tile stamps, headline set, 60 ms staggered job rows, completed instantly by any press
- MediaRecorder voice notes with a 30 s hard stop and a pulsing amber light; photo capture through a file input with canvas downscale to 1280 px
- Copy export as one dated JSON file with embedded media through the Web Share API with files, download fallback, and file-picker restore with version check
- Screen Wake Lock held from choosing an apiary to the end of the round, reacquired on visibility change
- Two layouts from one grid: single column under 900 px, list and hive page side by side above it; prefers-reduced-motion removes every stagger

INTERACTION MODEL
Pressing "Danes", "Obhod" or "Panji" in the bottom bar changes screen. On Danes, pressing a job row opens the card "Opravljeno ali pridem še enkrat?"; "Opravljeno" closes the job, "Pridem še enkrat" then 3, 7, 10 or 14 days moves it. "Shrani kopijo" builds the copy file and opens the share sheet; "Obnovi iz kopije" picks a file to restore; "Odstrani primer" clears the example records. On Obhod, pressing "Doma" or "Gozd" shows that apiary's tiles; pressing a tile opens Pregled. There, DA / NE set queen and eggs, − and + change brood, "Vse v redu" saves immediately, "Nekaj je drugače" unfolds temper, honey, swarm cells, feeding, treatment, next job, "Povej" (press to start and stop a recording of up to 30 s) and "Slikaj" (one photo), ending with "Shrani". Every save shows the green tick for 900 ms with a 200 ms vibration, then a "Razveljavi" bar for 10 s. "Končaj obhod", or saving the last hive, plays the summary; any press completes it and "Nazaj na Danes" leaves it. On Panji, the switch "Tretiranje" / "Hranjenje" changes what each tile reports and a tile opens Panj, where voice notes play and photos enlarge on a press. Keyboard: Tab follows screen order, Enter or Space presses, arrow keys move across tiles, + and − drive a focused stepper, Escape goes back one screen; focus shows a 4 px ink ring. With reduced motion the tick and the summary appear whole.

What's inside this prompt

The sections of this prompt, in order, with their length.

  1. Overview 170 words
  2. Mood 147 words
  3. Structure 354 words
  4. Typography 111 words
  5. Entrance 122 words
  6. Interaction 249 words
  7. Signature moment 140 words
  8. Safe copy 282 words
  9. Description 191 words
  10. Visual techniques 306 words
  11. Interaction model 242 words

More app prompts

  • App prompt · 2,394 words

    The Under-9s, Saturday Sorted

    I coach an under-9s team in Bristol and want one app for availability, lifts, oranges and kit washing.

    Worked example (simulated interview)

  • App prompt · 1,473 words

    Hearthbook

    An app where my partner and I write down what we spend on the house, so we can see each month whether the money will last.

    Example by Askmill

  • App prompt · 2,315 words

    La Sporta

    Our buying group of 38 families in Padova needs one place for the monthly orders instead of a spreadsheet and WhatsApp.

    Worked example (simulated interview)

  • App prompt · 2,177 words

    Squashed Bank - One Bitcoin in Dollars

    A one-screen price page in the spirit of preev.com: one huge orange number, the cost of one Bitcoin in US dollars right now, resting like a weight on the roof of a

    Customer prompt, public

Write yours

This prompt was written for someone else's idea. Askmill interviews you about yours, one plain question at a time, then writes the prompt your AI builder needs: $4.00 for a public prompt, $8.00 for a private one.

Get my prompt · $8.00How it works