Use Case: Scan (or find) a container, then create things inside it

Created: Sun 28 Jun 2026 12:38:33 CEST
Document Version: 1.0 - Identify-then-create flow (scan / search / look into a container)
Security Classification: Internal Technical Documentation
Target Audience: iOS Developers, Frontend Developers, Backend Developers
Author: Paul Wisén

Overview

Creating objects is base functionality in Plings. The reasonable flow is to first identify the container — by searching, looking, or scanning for it — and then create things in or around it. Without being able to create things in or around an object you have already identified, a large part of the system’s purpose falls away.

This use case describes how a user reaches a container’s page (by any of the three identification routes) and creates or adds contents there, on the same surface.

Goal

From a container the user has just identified, let them create new objects inside it (or add existing ones) without leaving that container’s page or starting a separate workflow.

Actors

  • User: person organising or building out their object graph.
  • System: Plings app — scanner, search, navigator, and the ObjectPage.
  • Container: any ObjectInstance the user lands on (every object is also a place — see ADR-0059).

Preconditions

  • User is signed in.
  • The container exists in the user’s object graph (or is resolvable by a scanned tag).
  • For the scan route: camera / NFC permission is granted.

Main flow

  1. Identify the container by one of three equivalent routes:
    • Scan its QR/NFC tag — teleports into the Hitta tree, landing on the container’s own node (full ancestor chain, container included).
    • Search for it and jump to it.
    • Look for it by browsing the navigator (< up a level, tap to drill in).
  2. Land on the container’s ObjectPage — one canonical page showing identity/admin, breadcrumbs, and its contents (residents / visitors).
  3. Create or add contents via “Skapa här” (create a new object directly inside this container) or by adding/moving existing objects into it.
  4. Leave via the back-chevron (up one level), the breadcrumb (jump), or the tab bar (the Scanna tab to scan again, the Hitta tab to jump to Hem). Saving is automatic — there is no save/confirm step (see ADR-0059).

All three identification routes converge on the same ObjectPage, so “create here” works identically regardless of how the container was found.

Postconditions

  • New or moved objects are placed inside the container (optimistically, local-first; synced in the background).
  • The container’s contents list reflects the change immediately.

Notes

This is a published product doc (it lives under docs/). The unified ObjectPage that makes the identify-then-create flow possible — and the rule that scanning lands on the object’s own node — is recorded in ADR-0059. The scan identification route is detailed in the Skanna flow doc.