Repository navigation
A Web Version of Pod #52
Pinned
aaronmallen
started this conversation in
Ideas
Replies: 1 comment 3 replies
|
How about self-host web version? |
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Summary
Ship a hosted version of Pod that runs in the browser. Users pay a monthly fee in ISK, which FC's license allows. The desktop app stays free, stays local, and keeps working with no account. Data that isn't tied to a character, such as market prices, moves to a shared service that both versions can read.
Motivation
Pod today is a desktop app with a local database. That design has two costs.
First, users can only reach their data from the machine that holds it. A browser tab at work, a phone during a fleet, or a second laptop are all out of reach.
Second, every install fetches and stores its own copy of data that isn't character-specific. Market prices and SDE lookups are the same for everyone, yet each machine pays for them in ESI traffic and disk.
A web version fixes both. It also lets a server poll ESI around the clock, so outbid alerts, structure attacks, and expiring orders could reach users even when they have nothing open. An ISK subscription gates access to the hosted version, and FC's license allows it. One thing it does not do: ISK cannot pay a hosting bill, so real-world costs stay ours. The Unresolved Questions section returns to this.
We would serve three kinds of users:
Goals
Non-Goals
Proposed Design
Phase one: shared data service
Before accounts or billing exist, stand up a public read-only service for prices and other non-character data, and have the desktop app consume it. We already run a Cloudflare worker for telemetry, so we have done this at a small scale. This phase delivers one of the two stated wins, teaches us what running a service for Pod users costs, and requires no accounts, no billing, and no sync.
Phase two: accounts and the hosted app
Sync model
The journal is the source of truth, and sync means two writers against it. Proposed: for paying users the server owns the data and the desktop app becomes a client of it. One writer, no merge protocol. The cost is that web-and-desktop users lose offline desktop writes, which the Non-Goals section states openly. Desktop-only users are untouched; their app never talks to our servers.
Background work
Because the server holds tokens and polls ESI, it can act while the user is away: outbid alerts, structure attack notices, expiring orders, delivered by mail or push. Paying users get monitoring around the clock instead of only while the app runs.
Alternatives Considered
Do nothing. Desktop-only Pod works and costs us almost nothing to run. But both motivating problems stay unsolved, and the project has no income.
Full merge sync. A protocol that lets desktop and web both write while offline, then reconciles. It preserves offline use for the paying group, but it is far more expensive to build and to trust, and every bug corrupts financial history. We can revisit it later if one-writer sync proves too limiting.
Compile the existing iced app to WASM. Attractive because it is one UI, but iced's browser output today is not something we would put in front of paying customers. Kept as an open question rather than the plan.
A real-money subscription. It would pay the hosting bill directly, but FC's license restricts charging real money, and it brings card processing, taxes, and chargebacks with it. ISK avoids all of that, at the cost of not covering real-world expenses.
Donations instead of a subscription. No payment tracking at all, but donations gate nothing, so they cannot define who gets an account.
Unresolved Questions
Future Possibilities
All reactions