Skip to content
All work

09 /2026

Real project

Oblik — a unit's equipment from a phone

An internal app for keeping track of equipment: what there is, where it is, who has it and what is on the way. It works from a phone without a steady connection, and a plain Google Sheet stays the database.

  • Product Design
  • UX/UI
  • Internal Tools
  • Frontend

A real internal tool. Names, places, call signs and real screens are not shown; the examples in the case are made up.

Client
A military unit
Role
Product Designer · design and development
Year
2026
A schematic of the Oblik interface in its colours: serial-number search, a «before → after» change log and the offline queue. Made-up data
Oblik — a unit's equipment from a phoneWork · 09 / 09
session window: everyone signs out at once
4 hsession window: everyone signs out at once
migrations: the sheet heals itself
0migrations: the sheet heals itself
tests on the accounting arithmetic
391tests on the accounting arithmetic
sheet as the source of truth
1sheet as the source of truth

01 /07

Accounting that lives in the field

A unit needs to know what it has, where it is, who holds it, what has left and what has not arrived. Before, this was an Apps Script on top of a spreadsheet: a Google banner at the top, seconds per click and no change history. Who changed what was worked out from screenshots in a chat.

Oblik is a separate app with sign-in by call sign, a log of every change and several workplaces, from the storeroom to the parcel collection point. The spreadsheet stayed where it was and stayed the source of truth.

Category
Internal tool · Accounting · Logistics
Product
A mobile web app on top of a Google Sheet
Status
Live, closed access
My role
Product, UX/UI, development

02 /07

The limits the product was built around

The interesting part is not the list of screens but the limits. People use the app on a phone, often offline. Others edit the sheet by hand at the same time and never open the app at all, and that is a deliberate choice, not a stopgap.

So the app could not demand discipline from the sheet: columns get moved, sheets come from older versions, and there is nobody to run migrations.

  • 01

    Equipment keeper

    wants to find an item by serial number or notes in seconds and issue it from a phone.

  • 02

    Parcel packer

    needs two actions and nothing else, without a password to the whole app.

  • 03

    Commander

    wants to see how much is where, what is stuck and who changed what.

03 /07

What the app does

Find and issue

01
  • Live search across all sheets
  • Cards, filters, in-place editing
  • «Issue» / «Receive»
  • Duplicate serial numbers across sheets

Storage and movement

02
  • Boxes with photos and QR codes
  • Intake, write-off, balance
  • Deliveries with weight, date and priority
  • A collection point behind its own link

Control

03
  • Stock checks from a phone
  • Handover records
  • A «before → after» log with the author
  • Dashboard: what is stuck longer than it should be

04 /07

The decisions everything else rests on

People edit the sheet by hand alongside the app. That gives the rules both the interface and the code stand on.

  1. 01

    01. Columns by header, not by number

    Someone can swap columns around and the app survives it. Different spellings of «location» lead to the same column.

  2. 02

    02. New things go at the end

    New fields are appended at the end of a sheet so they never shift what is already there. If a sheet is shorter than the schema, the headers are filled in on the first read.

  3. 03

    03. A separate place for a separate role

    The collection point is not a cut-down interface but its own page with two actions. Only recent entries are visible, nobody can edit others' entries, and no password to the rest of the app is needed.

05 /07

Security without extra steps

  • A session on the clock

    A sign-in lasts until the next four-hour boundary, and everyone signs out at once. A lost phone stops being a key within four hours at most.

  • A PIN that is not in the sheet

    The sheet holds a salted hash, not the PIN: access to the sheet does not let anyone sign in as someone else.

  • A log of every change

    Date, time, sheet, row, «before → after» and who. Arguments about who changed what are over.

06 /07

When there is no connection

The entry has to be made now, network or not.

  • Writes that did not go through queue up in the browser and are sent once the network is back.
  • Reads fall back to the last good response, so the screen is never empty.
  • A stock check saves each item right away: the app can be closed and reopened at the same place.
  • Deletions can be undone, and «remove the extra duplicate» can be reversed.

07 /07

What came out

Oblik replaced the Apps Script and the chat screenshots: equipment is found and issued from a phone, parcels are tracked from collection to destination, and every change has an author.

The spreadsheet did not go anywhere: people used to working in it work the way they always have.

Next case · 01 / 09

Product designer workspace

Open case

Tell me briefly about the product and the timeline — I'll reply within a day.