This project is tracked on Notion at https://www.notion.so/First-Time-FRAME-Customer-Onboarding-UX-iter-1-2774e612c78a8086a5b6ff70cf8bfff9?source=copy_link
Together with @ethanjli and @gokugiant we have been discussing the best strategy on how to interact with the microscope the first time. Based on valuable feedback from @Mikrodoktor we have probably identified a rough first milestone for our project: See an image through the webinterface and change necessary configurations on the way
Below I formulate the issue and/or necessary steps to reach this goal. It's all very vaguely formulated. The Drawio file for the graph can be found here.
The documentation could/should live here? https://github.com/openUC2/openUC2.github.io/blob/master/docs/05_ImSwitch/01_Quickstart.mdx
So, we want tomplement the end-to-end onboarding for new customers unpacking a FRAME microscope. Users should reach a landing page via LAN or Wi-Fi, configure networking, Tailscale, ImSwitch, updates, and file presets with safe rollback.
Diagram

Scope & Owners
- Frontend/Backend (ImSwitch UI + API, config wizard, update UI, presets, firmware trigger) => I guess @gokugiant
- OS image, networking stack, captive portal, DHCP/DNS, Tailscale, services, persistence, security => I guess @ethanjli
- Testing and complaining: @Mikrodoktor
...but we will learn on the way ;-)
I think the Configuration is shared: @gokugiant you probably provide the schema/UI + API from the ImSwitch/React side and @ethanjli provides storage location, defaults, docker integration, updates through forklift and systemd services.. ?
User flow
I can imagine to have the following pathways:
- LAN => discover device => open IP => Landing Page (discovery either our installer imswitchinstaller/main.js at main · openUC2/ImSwitchInstaller or something like angryipscanner?)
- Wi-Fi => see SSID => connect with PW (youseetoo) => captive portal opens automatically (?) (fallback to IP) => Landing Page
Landing Page cards: Open ImSwitch, Network, Computer, Updates, Files, Tailscale. (@ethanjli you have started that already in the pallet repo https://github.com/openUC2/pallet/
Deliverables
These are some random points that we should discuss! Please complain/change anything :)
...there is probably a lot missing ;)
Acceptance criteria
@Mikrodoktor please add your expectation here :)
This project is tracked on Notion at https://www.notion.so/First-Time-FRAME-Customer-Onboarding-UX-iter-1-2774e612c78a8086a5b6ff70cf8bfff9?source=copy_link
Together with @ethanjli and @gokugiant we have been discussing the best strategy on how to interact with the microscope the first time. Based on valuable feedback from @Mikrodoktor we have probably identified a rough first milestone for our project: See an image through the webinterface and change necessary configurations on the way
Below I formulate the issue and/or necessary steps to reach this goal. It's all very vaguely formulated. The Drawio file for the graph can be found here.
The documentation could/should live here? https://github.com/openUC2/openUC2.github.io/blob/master/docs/05_ImSwitch/01_Quickstart.mdx
So, we want tomplement the end-to-end onboarding for new customers unpacking a FRAME microscope. Users should reach a landing page via LAN or Wi-Fi, configure networking, Tailscale, ImSwitch, updates, and file presets with safe rollback.
Diagram
Scope & Owners
...but we will learn on the way ;-)
I think the Configuration is shared: @gokugiant you probably provide the schema/UI + API from the ImSwitch/React side and @ethanjli provides storage location, defaults, docker integration, updates through forklift and systemd services.. ?
User flow
I can imagine to have the following pathways:
Landing Page cards: Open ImSwitch, Network, Computer, Updates, Files, Tailscale. (@ethanjli you have started that already in the pallet repo https://github.com/openUC2/pallet/
Deliverables
These are some random points that we should discuss! Please complain/change anything :)
App (ImSwitch) @gokugiant
OS/Networking @ethanjli
inswitch.local(and variant) with proper firewall settings/etc/inswitch/config.yaml+/data/…)...there is probably a lot missing ;)
Acceptance criteria
@Mikrodoktor please add your expectation here :)