Landing
Arch Panel marketing site: features, how it works, the single Arch Plan price and the free-trial call to action.
Arch Panel lets a reseller run a hosting business and lets their clients buy and manage services. This page is the map: where each app lives, the routes a vendor and a client walk, the accounts to sign in with, and what changed in v6 and v7.
App directory
Each card opens the app at its sign-in or home page. Addresses come from the PUBLIC_*_URL environment and fall back to the local dev ports.
Arch Panel marketing site: features, how it works, the single Arch Plan price and the free-trial call to action.
Sign-up, onboarding, Companies, billing, team and Hub ownership. Switches CRM on or off per Hub.
The vendor workspace: Clients, Tickets, CRM (Products, Subscriptions, Invoices), Managed VPS, Sites and Apps, and one Settings menu.
The vendor's storefront (Nimbus Cloud). Plans are rendered from the Hub seed; Choose plan opens CRM checkout.
Checkout and the client's billing home: Dashboard, Services, Invoices, Payment methods, Support, Client Portal link, Shop and Account.
Where clients run what they bought: Overview, Servers, Sites, Apps, Backups, Support and Account.
Serves the seed for any Hub at GET /v1/hubs/:hubId/seed. Read-only; writes answer 405.
https://hub-api.arch-prototype.etica.dev
Read-only mirror of the Account seed. Account does not call it at runtime.
https://account-api.arch-prototype.etica.dev
Vendor journey
A reseller discovers Arch Panel, signs up, owns a Hub and then runs it day to day.
Features, how it works and the single Arch Plan price. Every call to action reads Start free trial.
Register on the Arch Plan, verify the e-mail, pick the plan and create the Company.
Manage the Company, its Hubs, billing and team. Turn CRM on or off per Hub.
Clients, Tickets and Flagged items, plus the CRM group: Products, Subscriptions and one Invoices page.
Managed VPS, Sites and Apps: servers, stack-matched Pools and Packages, then Products to sell.
One Settings menu with a left sub-navigation: Workspace, Client experience, Integrations and Developers.
The Scenario Banner switches the Hub persona: Sarah (Admin), Mike (Manager) and Emma (Support).
Client journey
A client finds a plan in the vendor's Store, buys it in CRM and then runs it in the Client Portal.
The vendor's storefront lists plans from the Hub catalogue. Choose plan opens checkout for that product.
Checkout shows only the options the package allows, then the account step.
Four payment methods in test mode: card, PayPal, bank transfer and Xendit Virtual Account.
The client's home: Dashboard, Services, Invoices, Payment methods, Support and Account.
Servers, Sites, Apps and Backups, with Support and Account. A new purchase appears here and becomes Active.
The same purchase appears in Hub Invoices, and Impersonate opens the client's view with a logged-action bar.
What's new
v6 replaced the old mock backends with a shared dataset in the browser. v7 then polished the demo flow.
Seven focused revisions to v6.
The vendor and client apps rebuilt around one shared Hub Dataset.
Hubs and sign-ins
Everything is sample data and sign-in is simulated. Every value below comes from the seed and sign-in code, and the sign-in forms pre-fill the first row of each set.
Nimbus Cloud Ltd
Rich: 8 clients, VPS, Sites and Apps, tickets and invoices
Nimbus Cloud Ltd
Rich: Xendit and BCA bank transfer, manual renewals
Nimbus Cloud Ltd
Rich, CRM off: Hub and Portal only
Atlas Hosting
Empty: the first-run state
Sign in at Account /login. Sarah is the default Persona. Press Alt+Shift+D in Account for the Persona picker, which also re-seeds the lifecycle and invite states.
| Person | Role | Password | State | |
|---|---|---|---|---|
| Sarah Chen | Owner | sarah@nimbuscloud.com | Nimbus!Cloud2026 | Nimbus Cloud Ltd. Default Persona; also Admin of Atlas Hosting. |
| Daniel Okafor | Admin | daniel@nimbuscloud.com | Okafor#Ops2026 | Everything except deleting the Company. |
| Priya Nair | Manager | priya@nimbuscloud.com | Nair!Regions26 | No Billing access. |
| Marcus Lee | Finance | marcus@nimbuscloud.com | Ledger#Lee2026 | Billing and invoices; Hubs read-only. |
| Jordan Blake | New signup | jordan@blakedigital.co | Blake!Digital26 | Signed out, ready to register. |
| Leo Park | Lifecycle | leo@parkhosting.io | Park#Hosting26 | Stuck at email verification. |
| Ava Moreno | Lifecycle | ava@morenoweb.co | Moreno!Web2026 | Draft Company, stuck at plan. |
| Emma Novak | Lifecycle | emma@novakhosting.com | Novak#Host2026 | Onboarded, no Hubs, trialing. |
| Tom Becker | Lifecycle | tom@beckercloud.de | Becker!Cloud26 | Trial ends in 2 days. |
| Rita Haas | Lifecycle | rita@haasnetworks.de | Haas#Networks26 | Payment failed 8 days ago, Hubs suspended. |
| Nina Patel | Invite | nina@nimbuscloud.com | Patel!Books2026 | Invited as Finance, no account yet. |
| Omar Said | Invite | omar@saiddigital.com | Said#Digital26 | Invited as Manager, has his own Company. |
Hub members share one password: Nimbus!Hub2026. The sign-in page pre-fills Mike. Sarah Chen is an Inherited Admin from Account and has no form sign-in: use the Hub Scenario Banner (Viewing as …) to become Sarah, Mike or Emma. The same three people exist in every Nimbus Hub.
| Person | Role | Password | State | |
|---|---|---|---|---|
| Sarah Chen | Admin | sarah@nimbuscloud.com | Banner only | Owner of the Company, Inherited Admin of every Hub. |
| Mike Patel | Manager | mike@nimbuscloud.com | Nimbus!Hub2026 | Pre-filled on the Hub sign-in page. |
| Emma Davis | Support | emma@nimbuscloud.com | Nimbus!Hub2026 | Trimmed Hub: no money, no Delete, no Settings. |
Clients share one password in CRM and the Client Portal: Nimbus!Client2026. The Client picker in the Scenario Banner switches client without signing in again.
| Client | Hub | Sign in at | Notes | |
|---|---|---|---|---|
| Lina HartonoFieldnote Co | Nimbus Cloud EU | CRM | lina@fieldnote.co | Buys Site Pro by card (UJ-1). |
| Meridian LabsClient | Nimbus Cloud EU | CRM | ops@meridianlabs.io | Owns acme-portal.com; a bank transfer awaits verification. |
| Budi SantosoToko Budi | Nimbus Cloud APAC | CRM | budi@tokobudi.id | Pays by Xendit, renews manually (UJ-2). |
| Rina WijayaWijaya Design | Nimbus Cloud APAC | CRM | rina@wijayadesign.id | Pays by BCA transfer (UJ-3). |
| Redwood AnalyticsClient | Nimbus Cloud US | Client Portal | ops@redwoodanalytics.com | CRM is off on this Hub, so sign in to the Client Portal. |
Architecture
Two journeys, no database, one monorepo. Read-only seed APIs run on Cloudflare Workers; every change a visitor makes stays in their browser.
Hub API serves the seed for any Hub at GET /v1/hubs/:hubId/seed and answers every write with 405. Apps fetch it once, then work from browser storage, so other tabs of the same app pick changes up through the storage event.
Each app has its own origin, so nothing updates live between apps. Every link to another app carries the changes the target is missing in #hs=, and the target merges them on open. Resetting data travels the same way.
Moving between Hub, CRM and Portal uses /sso/callback?ticket=. A ticket with an impersonation claim shows the Impersonation bar. Nothing is stored server-side.
The #hs payload is compressed, capped at 60,000 characters and unsigned. Anyone holding the link can read or edit it. It is a prototype mechanism, not a security boundary.
HC-1, no persistence database. Data is mock API sample data plus browser storage only. No Durable Objects, D1, KV, R2, queues or any server-side state.