Files
archy-demo/neode-ui/COMMUNITY-MARKETPLACE.md
2026-03-17 02:14:04 +00:00

6.8 KiB

🌐 Community Marketplace Integration

The Neode UI now includes a Community Marketplace tab that connects to the real Start9 app ecosystem!

Features

📑 Two-Tab Interface

Local Apps Tab:

  • Your custom local apps (k484, atob, amin)
  • Sideload packages from URLs
  • Quick install for development apps

Community Marketplace Tab:

  • Real Start9 packages from the community registry
  • Search functionality
  • Bitcoin Core, Lightning Network, BTCPay, Nextcloud, and more!
  • GitHub repository links
  • Author information

🔍 Search & Filter

Search across:

  • App names
  • Descriptions
  • Package IDs
  • Author names

🎨 Beautiful UI

  • Glass-morphism design (matching Neode aesthetic)
  • Responsive grid layout
  • Loading states
  • Error handling with retry
  • Install progress indicators

How It Works

1. Fetches Real Data

Connects to Start9's community registry:

https://registry.start9.com/api/v1/packages

2. Smart Multi-Level Fallback System

If the Start9 registry is unavailable, the system automatically tries multiple sources:

Level 1: Start9 Registry API (primary)

https://registry.start9.com/api/v1/packages

Level 2: GitHub API (dynamic)

https://api.github.com/users/Start9Labs/repos
  • Fetches all -startos repositories from Start9Labs
  • Dynamically builds app list from actual packages
  • Shows real-time ecosystem

Level 3: Curated App List (ultimate fallback) Shows 20+ popular Start9 ecosystem apps including:

Bitcoin & Lightning:

  • Bitcoin Core, Bitcoin Knots
  • Core Lightning (CLN), LND
  • BTCPay Server
  • Ride The Lightning, ThunderHub
  • Electrs, Mempool Explorer
  • Specter Desktop

Communication & Social:

  • Synapse (Matrix)
  • Nostr Relay
  • CUPS Messenger

Productivity & Storage:

  • Nextcloud
  • Vaultwarden (password manager)
  • File Browser

Media:

  • Jellyfin (media server)
  • PhotoPrism (AI photos)
  • Immich (photo backup)

Smart Home:

  • Home Assistant

You'll see a blue info banner: "📚 Community Apps: Showing X Start9 ecosystem applications."

3. Installation Flow

When you click "Install" on a community app:

  1. Calls package.install RPC method with the .s9pk URL
  2. Backend downloads and extracts the package
  3. Polls for installation completion
  4. Redirects to Apps page when done

Usage

Access the Marketplace

  1. Navigate to Dashboard > Marketplace
  2. Click "Community Marketplace" tab
  3. Browse or search for apps
  4. Click "Install" on any app with a manifest URL

Search for Apps

Type in the search bar:

  • "bitcoin" - finds Bitcoin Core
  • "lightning" - finds Lightning Network
  • "payment" - finds BTCPay Server
  • etc.

Install Community Apps

Apps with green "Install" buttons:

  • Have downloadable .s9pk packages
  • Can be installed directly

Apps with "Not Available" buttons:

  • ⚠️ Don't have packages yet
  • 🔗 Can view GitHub repo for more info

Technical Details

API Integration

// Fetches community packages
const response = await fetch('https://registry.start9.com/api/v1/packages')
const data = await response.json()

// Transforms to our format
communityApps.value = Object.entries(data).map(([id, pkg]) => ({
  id,
  title: pkg.title || id,
  version: latestVersion,
  description: pkg.description,
  icon: pkg.icon,
  author: pkg.author,
  manifestUrl: pkg.manifest,
  repoUrl: pkg.repository
}))

Installation

// Installs community app
await rpcClient.call({
  method: 'package.install',
  params: {
    id: app.id,
    url: app.manifestUrl,  // .s9pk URL from registry
    version: app.version
  }
})

App Card Features

Each community app card shows:

  • Icon - App logo (with fallback to Neode logo)
  • Title - App name
  • Version - Latest available version
  • Author - Package maintainer
  • Description - Truncated to 3 lines
  • Install Button - If manifest available
  • GitHub Link - Repository access

States

Loading

🔄 Loading Start9 Community Marketplace...

Error

❌ Failed to load marketplace
[Error message]
[Retry Button]
No apps found matching "[query]"

Backend Requirements

The mock backend needs to support:

  1. package.install - Install from .s9pk URL
  2. Docker - Extract and run containers
  3. Networking - Download from registry URLs

Future Enhancements

  • Categories - Filter by Bitcoin, Storage, Communication, etc.
  • Ratings - Show community ratings
  • Dependencies - Show required apps
  • Updates - Notify when app updates available
  • Reviews - User reviews and comments
  • Screenshots - App previews
  • Detailed Views - Full app pages with more info

Development

Test the Feature

  1. Start dev server:

    npm start
    
  2. Navigate to Marketplace

  3. Switch to "Community Marketplace" tab

  4. Should see apps load (or fallback list)

Mock Data (Development Fallback)

If registry is unavailable, shows:

  • Bitcoin Core v27.0.0
  • Core Lightning v24.02.2
  • BTCPay Server v1.13.1
  • Nextcloud v29.0.0

Adding More Mock Apps

Edit loadCommunityMarketplace() function in Marketplace.vue:

communityApps.value = [
  // ... existing apps ...
  {
    id: 'fedimint',
    title: 'Fedimint',
    version: '0.3.0',
    description: 'Federated Chaumian e-cash',
    icon: '/assets/img/fedimint.png',
    author: 'Fedimint Developers',
    manifestUrl: 'https://example.com/fedimint.s9pk',
    repoUrl: 'https://github.com/fedimint/fedimint'
  }
]

Troubleshooting

Registry Not Loading

Problem: Community tab shows error

Solutions:

  1. Check internet connection
  2. Verify registry URL is accessible
  3. Check browser console for CORS errors
  4. Fallback mock data will still show

Apps Won't Install

Problem: Install button doesn't work

Check:

  1. App has manifestUrl (not null)
  2. Backend is running
  3. Docker is available (for real installs)
  4. Check backend logs for errors

Search Not Working

Problem: Search doesn't filter apps

Check:

  1. Type in search box
  2. Should filter in real-time
  3. Search is case-insensitive
  4. Searches title, description, ID, author

Benefits

Real Apps - Access actual Start9 packages
Easy Discovery - Browse full ecosystem
One-Click Install - Direct installation from registry
Stay Updated - See latest versions
Community Driven - Access community-maintained apps
Transparent - GitHub links for every app

Security Note

Apps from the community marketplace are:

  • Open source (GitHub repos linked)
  • Community maintained
  • Same packages used by StartOS
  • Verified by signature (in production)

Always review an app's repository before installing!


🎉 You can now browse and install real Start9 community apps directly from Neode!