The most elite WebAssembly admin panel for b3scale - built with pure Rust fire π¦β‘
Sooo. I started this project like 3 years ago and it collected dust. Never had the time or energy to actually work on this.
BUT I decided to turn this into an experiment and just vibe the rest of the fucking owl. π¦
Let's make something absolutely legendary! β¨
b3scale-admin is a web-based administration interface for b3scale - a load balancing system for BigBlueButton servers.
The entire frontend runs in your browser as WebAssembly - giving you native-like performance with the security and portability of the web. No JavaScript. Just pure Rust compiled to WASM. π
The vibec0re dark theme admin interface in all its glory β¨
- π¦ Pure Rust/WASM - Zero JavaScript, maximum performance
- π JWT Authentication - Secure token-based auth system with modern
jsonwebtokencrate - π¨ Vibec0re Dark Theme - Beautiful Bootstrap 5 dark theme for late-night coding
- β‘ Real-time Updates - Instant feedback on all operations
- π± Responsive AF - Works flawlessly on desktop and mobile
- π₯ 1337 Dev Setup - Nix flakes for the most elite development experience
- π Fresh Dependencies - Recently updated to latest compatible versions
- Language: Rust π¦ (because we're not animals)
- Framework: Yew v0.19 (React but better)
- Build Tool: Trunk (blazing fast)
- Styling: Bootstrap 5 + SCSS (dark mode everything)
- Target: WebAssembly (the future is now)
- Dev Environment: Nix flakes (reproducible elite setup)
For developers who want the most elite experience
# Modern flakes way (recommended)
nix develop
# Legacy shell.nix way (compatibility)
nix-shell
# Direnv way (automatic, most 1337)
direnv allowWhat you get instantly:
- Rust with
wasm32-unknown-unknowntarget - trunk for blazing WebAssembly builds
- wasm-pack, cargo-watch, rust-analyzer
- Node.js 20 + all system dependencies
- Zero configuration, maximum vibes β¨
# Install prerequisites
cargo install trunk
rustup target add wasm32-unknown-unknown
# Clone and run
git clone https://github.com/b3scale/b3scale-admin.git
cd b3scale-admin
trunk serveComplete development environment with zero hassle
# Clone the repo
git clone https://github.com/b3scale/b3scale-admin.git
cd b3scale-admin
# Enter the matrix (choose your fighter)
nix develop # Modern flakes
nix-shell # Legacy compatibility
direnv allow # Automatic (requires direnv)- Uses
rust-overlayfor bleeding-edge toolchain - Declarative, reproducible, cacheable
- Supports dev shell + package building
- Auto-includes WebAssembly targets
- Compatible with older Nix installations
- Same rust-overlay for consistency
- Fallback for systems without flakes
- Automatic environment activation
- No manual commands needed
- Perfect VS Code/editor integration
# Start development server
trunk serve
# Build for production
trunk build --release
# Run tests
./scripts/run_tests.sh
# Lint & format
cargo clippy
cargo fmt
# Watch for changes
cargo watch -x checkAdd to /etc/nix/nix.conf or ~/.config/nix/nix.conf:
experimental-features = nix-command flakes
# NixOS
nix-env -iA nixos.direnv
# macOS/Linux
nix-env -iA nixpkgs.direnvAdd to shell config (.bashrc, .zshrc, etc.):
eval "$(direnv hook bash)" # or zsh, fish, etc.# Method 1: Direnv (automatic)
direnv allow
# Method 2: Flakes (manual)
nix develop
# Method 3: Legacy (fallback)
nix-shell- Install
rust-analyzerextension - Use direnv or configure
rust-analyzer.server.path - Enjoy blazing fast development
Works out of the box with CoC, nvim-lsp, or any LSP client using direnv.
# Terminal 1: Dev server
trunk serve
# Terminal 2: Tests in watch mode
cargo watch -x test
# Terminal 3: Code quality
cargo watch -x clippyAdd to ~/.config/nix/nix.conf:
substituters = https://cache.nixos.org/ https://nix-community.cachix.org
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
b3scale-admin/
βββ π₯ Nix Setup
β βββ flake.nix # Modern Nix flakes
β βββ shell.nix # Legacy Nix shell
β βββ .envrc # Direnv integration
βββ src/
β βββ api/ # API client and models
β β βββ client.rs # HTTP client implementation
β β βββ auth/ # Authentication context
β β βββ models/ # Auto-generated API models
β βββ app/ # Application components
β β βββ router.rs # Client-side routing
β β βββ frontends/ # Frontend management UI
β β βββ backends/ # Backend server management
β βββ main.rs # Application entry point
βββ styles/ # SCSS stylesheets
βββ Trunk.toml # Build configuration
βββ Cargo.toml # Rust dependencies
The development server proxies API requests to http://localhost:42353/api/v1. Modify this in Trunk.toml if your b3scale API runs elsewhere.
API clients that create and manage BigBlueButton meetings:
- π Unique API keys for authentication
- βοΈ Configurable settings
- π Usage statistics and monitoring
BigBlueButton servers that host the actual meetings:
- π Health monitoring and status
- βοΈ Load balancing configuration
- π Performance metrics and analytics
# Check if in nix environment
echo $IN_NIX_SHELL
# If not, enter environment
nix develop
# or
direnv allow# Rebuild environment
nix develop --rebuild
# Or for shell.nix
nix-shell --pure# This is automatic in Nix, but if needed:
rustup target add wasm32-unknown-unknown# Install grass (handled by Nix automatically)
cargo install grass- Ensure b3scale API runs on port
42353 - Check CORS settings in b3scale config
- Verify firewall/network settings
- Clear browser localStorage
- Verify b3scale API configuration
- Check JWT token expiration
- π« Don't edit
src/api/models/- auto-generated from OpenAPI - π Run
cargo clippybefore commits for code quality - π¨ Use
cargo fmtfor consistent formatting - π¦ SCSS compiles automatically via pre-build hooks
- π₯ Use the Nix environment for best experience
- π Fresh Dependencies - Updated to
jsonwebtoken9.0 and latest compatible versions
Ready to make this project even more legendary? Let's go! π
# 1. Fork the repository (hit that fork button)
# 2. Create your feature branch
git checkout -b feature/EpicFeature
# 3. Make your changes (using the Nix environment!)
nix develop
# ... code like a legend ...
# 4. Commit your changes
git commit -m 'Add some EpicFeature'
# 5. Push to your branch
git push origin feature/EpicFeature
# 6. Open a Pull Request and describe your epic contributionContribution Guidelines:
- π¦ Keep it Rust-y and idiomatic
- π§ͺ Add tests for new features
- π Update docs for significant changes
- π¨ Follow the existing code style
- π₯ Use the Nix environment for development
MIT License - because sharing is caring! See LICENSE file for details.
- π¦ Rust Team - For creating the most amazing language
- βοΈ Yew Framework - React but better, in Rust
- π WebAssembly - The future of web development
- βοΈ Nix Community - For reproducible development environments
- π b3scale Team - For the epic BigBlueButton load balancing
- π¦ Everyone who vibes with the owl - You know who you are
