Allow Urbit to be a personal cloud storage interface. Upload files/images to a provider and share links with chats. A technical user can be their own provider.
A provider is a ship running the lfs-provider gall app that is paired with an http fileserver. A client is a ship running the lfs-client gall app.
A provider can limit clients to %kids, specific groups, or manual lists of authorized ships. A client can subscribe to multiple providers.
When a client requests an upload, the provider verifies permissions and file storage limits, and returns a one-time upload url to the fileserver.
When the uploading is finished, the fileserver notifies the provider to update client storage usage.
I'm an experienced functional programmer, but amateur hooner. I've read through the Urbit hoon docs, and the GitHub Gall Guide, and I'm starting to appreciate the odd martian soil. I want to try building something real and practical on the platform. I want to run a personal fileserver with my Urbit instead of emailing files and moving USBs.
After completing an exploratory proof-of-concept, this proposal replaces https://grants.urbit.org/proposals/1760204192 with more detailed project milestones.