What a signed-out visitor can do, and what needs an account
Anyone can try OrbitingFox without signing up. This is what that looks like, and — just as importantly — what it deliberately does not pretend to offer.
Catching without an account
A visitor can catch a few test Blinks straight from the home page, and then open one to add details. Those are real rows on our side, not just something held in the browser, and if the person signs up in the same session everything they caught becomes a real Blink on their new account. Coming back and logging in later picks them up too.
Why the form shows things you cannot use (2026-09-11)
The "add details" page is the real Blink form — the same one account holders get. Until now the parts a guest could not use were simply hidden, and the owner reported exactly what that produced: "that simple form is not showing the whole our system, and they think it's not a complete system. They have no idea we have much more advanced systems."
He was right. A tab bar with the interesting tabs missing reads as a toy. So those sections are now visible and locked: the Linkage and Finance tabs are on screen, and opening one explains in plain words what it does on a real Blink and that an account unlocks it.
Locked means there is nothing to type into
This is the part worth understanding, because the obvious version of this change would have been worse than doing nothing.
A guest's capture can hold only a title, a description and a type. That is all there is room for. If the locked sections were simply switched on, somebody could fill in categories, goals, linkage and finance, press Save, and every one of those answers would vanish without a word. A product that shows a field and throws the answer away teaches people not to trust it.
So the locked sections contain no fields at all. Nothing can be typed, so nothing can be lost.
The example is what actually shows the depth
An empty form with every tab available proves nothing. Underneath the form there is now one filled example Blink — categories, a goal, a project, a link, finance, a voice note — clearly marked as an example and not the visitor's own data. That is what demonstrates what the product does when it is really being used.
What needs an account
- Voice notes and files — recording into a Blink, keeping the audio, automatic transcription, and attaching images or documents.
- Linkage — your own category tree, and connecting a Blink to goals, projects, businesses and saved links.
- Finance — an amount, income or expense, tax treatment and a date.
- Keeping anything permanently — guest captures are tied to one browser session until they are converted.
For developers
Guest captures are rows in adminapp.GuestCapture keyed by session_key
— not session data. docs/blink/SRS.md §3.7 said
request.session["guest_winks"] until BL-466 corrected it; that had been stale since the
storage moved.
The model holds six fields and config.views.guest_capture_edit saves three
(title, description, blink_type). That asymmetry is the whole constraint of this feature.
If a guest is ever to keep more, GuestCapture has to grow the fields first and the
promote path has to carry them across — it is not a template change.
The locked previews live behind {% if not guest_mode %}…{% else %} in
templates/blink/_blink_form.html, and a guard
(adminapp/test_guest_sees_depth.py) asserts that the guest branch contains no
<input>, <textarea> or <select>, so the
silent-discard failure cannot be reintroduced by accident. The same file pins that conversion on
sign-up still works, because the owner specifically asked for that to be checked rather than
assumed.
The example is templates/guest/_sample_blink.html and is deliberately
static: a guest is anonymous, the page must render identically for everyone, and it
must never depend on seed_sample_data having been run in a given environment — which it
has not been in production. The principle predates the row:
docs/auth/User-Registry-and-Authorization-Flow.txt:239 — "Anonymous demo should use
sample data, temporary session data, or read-only examples only."