The Current State of Lume Web
Summary
You can see our previous grant here: Standard Grant: Lume Web 2024
This year, we’ve transformed Lume Web by focusing on what matters most - deep integration with Sia and rebuilding Skynet (in spirit) alongside S5. Starting from a basic MVP with S5 integration, we’ve evolved into a full-featured Sia Layer 2 solution. Some big wins include:
-
A plugin system that’s now powering 6 core features
-
Rock-solid auth with OAuth2 and 2FA
-
Cluster support using etcd
-
Full IPFS upload/pinning with UnixFS metadata tracking
-
A flexible billing system handling both free and paid users
Test System Demo
Check out our test system to see Lume Web in action:
https://account.testing.pinner.xyz
Current Status and What’s Next
We’re in alpha/beta now, pushing toward an open beta launch by year-end when we’ll roll out Lume’s paid service. Here’s what we’re focused on:
-
Rewriting our S5 plugin to match the latest specs
-
Fine-tuning the billing system as we learn from real usage
-
Making our admin tools more robust
How We Got Here & What We Changed
The Big Picture
Our community gave us clear feedback: focus on Sia integration first, broader web3 goals later. This helped us:
-
Build a solid core system
-
Create a flexible plugin system
-
Set up services that work for both web2 and web3 users
Technology Choices & Rationale
-
Caddy-style plugin system: Provides proven architecture for modular growth without coupling. Each feature can evolve independently.
-
Go: Aligns with Sia ecosystem (renterd), providing better integration opportunities and shared tooling
-
etcd: Natural choice for clustering - handles leader election and coordination with minimal complexity
-
gorm: Most popular Go ORM, supporting both MySQL/SQLite without code changes
-
Frontend: React with Refine.dev framework for rapid admin interface development
-
TypeScript and Tailwind CSS for frontend development
Framework Evolution
Our application architecture went through several major transformations:
-
Started with a basic HTTP server architecture
-
January 2024: Adopted Uber FX as our dependency injection framework to better manage the dependency graph
-
February 2024: Completely redesigned our protocol and storage architecture
-
May 2024: Moved to a Caddy-inspired modular design, removing Uber FX in favor of a more focused core package
-
July 2024: Implemented a unified request-based architecture that:
-
Centered everything around a Request model
-
Added protocol-specific handlers for different data operations
-
Created a more consistent API across all operations
-
Enhanced database operations and request lifecycle management
-
Key Calls We Made
-
Put Skynet-like portal syncing on hold to nail the basics
-
We built a working sync plugin MVP that showed promise
-
But the current JavaScript P2P code needs to be rewritten in Golang
-
The hybrid JS approach turned out to be too brittle and complex
-
We’ll revisit this once we have bandwidth for proper Golang implementation
-
Focused on web2 and web2.5 stuff to:
-
Get the project financially sustainable
-
Drive more Sia network usage
-
-
We’ll keep checking when it makes sense to bring back more web3 features
Technical Implementation
Core Architecture
The platform has evolved into a flexible Sia Layer 2 solution with these key components:
-
Plugin-Based Core System
-
Modular design inspired by Caddy’s architecture
-
Isolated plugin systems minimizing inter-dependencies
-
Self-contained portal builds using modified xcaddy system
-
Build with plugins easily using
xportal build --with PLUGIN
-
-
Data Management
-
IPFS Multihash standard for content addressing
-
Flexible database support through gorm (MySQL and SQLite)
-
Built-in scalability through etcd-based cluster coordination
-
Upload Architecture
-
TUS protocol implementation for all large file uploads
-
Resumable upload support across interruptions
-
Service-specific TUS endpoints on dedicated subdomains (e.g. s5., ipfs.)
-
Each plugin can extend/customize the base TUS implementation
Core Portal Features
-
Complete account management system with authentication
-
Role-Based Access Control (RBAC)
-
Event-driven architecture with cron system
-
Storage and renter management including price tracking
-
Comprehensive configuration management
-
Standardized upload handling with TUS protocol
-
All large file uploads use TUS for reliability
-
Resumable uploads support
Plugins
-
-
Full user authentication system
-
API key management
-
Two-factor authentication
-
OAuth2-based social login
-
Web application framework
-
-
-
Basic implementation exists
-
Full rewrite planned to align with current S5 specifications
-
Will be updated to match latest S5 developments
-
-
-
Complete upload and pinning support
-
UnixFS metadata tracking for directory structures
-
-
-
Configurable free tier with usage limits
-
Paid plan support via killbill and hyperswitch
-
Usage tracking and quota management
-
-
-
Cron job monitoring
-
System settings management interface
-
Settings editor partially complete
-
-
-
Integrated freescout support system
-
OAuth2 SSO integration
-
Known Technical Challenges
-
Sync plugin’s JavaScript P2P implementation needs a Golang rewrite
-
Frontend webapp stability and UX improvements needed
Scalability and Deployment
-
Cluster mode supported through etcd coordination
-
Support for high-availability configurations
-
Database flexibility enabling various deployment scenarios
-
Built-in monitoring and management capabilities planned for upcoming launch
Where We’re Headed
-
Getting that S5 plugin rewrite done
-
Getting our service live (prod)
-
Smoothing out billing and usage tracking
-
Making our admin tools more useful
-
Making everything faster and more reliable
All this work sets up Lume Web to be a bridge between traditional web services and decentralized storage - something the Sia ecosystem really needs.