Skip to content

Let visitors try the app as a guest, and keep their study when they log in - #990

Merged
ixuz merged 1 commit into
mainfrom
guest-mode
Oct 3, 2026
Merged

ixuz merged 1 commit into
mainfrom
guest-mode

Conversation

@ixuz

@ixuz ixuz commented Oct 3, 2026

Copy link
Copy Markdown
Member

No description provided.

…og in

The landing page now offers, first, to try Solid Memo without logging in.
A guest studies in a pod kept in the browser: localPod.ts serves the part
of the Solid Protocol the adapters use (GET, HEAD, PUT, DELETE, SPARQL
DATA PATCHes, ETags and preconditions, containment listings) over a
ResourceStore, IndexedDB in the browser, so the login redirect does not
lose it. A router sends every URL below https://guest.solid-memo.invalid/
there and every other one to the network, so every adapter, use case and
screen works for guests unchanged. The origin never resolves: a guest URL
that reached the network would fail rather than go anywhere.

Logged in, the user is offered to move the guest's study into their Pod:
transferGuestStudy copies the guest's instance into a new instance, its
IRIs moved and the guest's WebID made theirs, checks no document still
names the guest's pod, validates the copy and that the guest's study did
not change meanwhile, registers it in their type index, and only then
deletes it from the browser. A failure before the registration removes
the copy and leaves the guest's study as it was. The copy and verify
steps are shared with the instance update now.

@inrupt/solid-client read the WebID document for storage discovery with
the browser's own fetch, whatever fetch it was given; it is now handed
the profile read through the app's. The move is tested end to end
against CSS 7 and 6 and NSS 6 and 5. See docs/guest-mode.md.
@ixuz
ixuz merged commit b67fa36 into main Oct 3, 2026
9 checks passed
@ixuz
ixuz deleted the guest-mode branch October 3, 2026 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant