No description
Find a file
padreug 8c33dc6e11 Initializes theme on app load
Ensures the selected theme (dark/light mode) is applied immediately when the application loads, preventing a flash of incorrect theme on startup.
2025-10-31 21:59:34 +01:00
.vscode initial post-installation commit 2025-01-30 13:26:56 +01:00
docs commit misc docs 2025-10-20 06:48:21 +02:00
electron chore: Set up Electron configuration and update dependencies 2025-03-20 17:26:15 +01:00
public remove obsolete well-known/lnurlp 2025-10-31 21:24:26 +01:00
src Initializes theme on app load 2025-10-31 21:59:34 +01:00
.cursorrules update cursor rules to follow semantic/theme aware color patterns 2025-08-14 15:19:13 +02:00
.env.example add env variable for lightning domain leveraging redirect capability 2025-10-16 00:53:06 +02:00
.gitignore add .claude to gitignore 2025-10-20 07:12:58 +02:00
CLAUDE.md Squash merge rely-on-nostrmarket-to-publish into main 2025-10-08 09:19:07 +02:00
components.json update shadcn/tailwind config 2025-03-09 15:40:32 +01:00
forge.config.js chore: Set up Electron configuration and update dependencies 2025-03-20 17:26:15 +01:00
index.html Update index.html and vite.config.ts for dynamic app name and manifest adjustments 2025-09-06 19:16:24 +02:00
nginx.conf.example add nginx.conf example 2025-07-12 19:06:09 +02:00
package-lock.json Squash merge rely-on-nostrmarket-to-publish into main 2025-10-08 09:19:07 +02:00
package.json Squash merge rely-on-nostrmarket-to-publish into main 2025-10-08 09:19:07 +02:00
README.md Enhance README and wallet module documentation with new payment features 2025-09-18 23:23:30 +02:00
tailwind.config.js refactor: Update color definitions in Tailwind configuration to use oklch color space 2025-08-03 11:20:57 +02:00
test-formatting.html feat: Enhance RelayHub component with subscription count details (still not working) 2025-08-10 18:19:18 +02:00
tsconfig.app.json update shadcn/tailwind config 2025-03-09 15:40:32 +01:00
tsconfig.json initial post-installation commit 2025-01-30 13:26:56 +01:00
tsconfig.node.json initial post-installation commit 2025-01-30 13:26:56 +01:00
vite.config.ts Update index.html and vite.config.ts for dynamic app name and manifest adjustments 2025-09-06 19:16:24 +02:00

Ario Web App

A modular Vue 3 + TypeScript application with Nostr protocol integration and Lightning Network wallet functionality.

Features

  • Modular Architecture: Plugin-based system with dependency injection
  • Nostr Integration: Decentralized social networking and messaging
  • Lightning Wallet: Real-time balance updates with LNbits WebSocket integration
  • Event Ticketing: Lightning-powered event tickets and marketplace
  • PWA Support: Progressive Web App with offline capabilities
  • Desktop App: Electron-based desktop application

Real-Time Wallet Features

The application provides seamless Lightning Network wallet integration:

  • Lightning Invoice Creation: Create BOLT11 invoices for receiving payments with QR codes
  • Smart Payment Scanning: QR code scanner for Lightning invoices, LNURL, and Lightning addresses
  • Universal Payment Support: Send to Lightning invoices, Lightning addresses (user@domain.com), and LNURL
  • Smart Amount Fields: Amount input only appears when needed (LNURL, Lightning addresses, or zero-amount invoices)
  • Instant Balance Updates: WebSocket connection provides real-time balance updates when payments are sent or received
  • Live Notifications: Toast notifications for incoming payments
  • Connection Management: Automatic reconnection with exponential backoff
  • Battery Optimization: Pauses WebSocket when app is not visible to save battery
  • Multi-Wallet Support: Manages multiple Lightning wallets with the first wallet as default

WebSocket Configuration

Configure WebSocket behavior in src/app.config.ts:

modules: {
  wallet: {
    enabled: true,
    config: {
      websocket: {
        enabled: true,           // Enable/disable real-time updates
        reconnectDelay: 1000,    // Initial reconnection delay (ms)
        maxReconnectAttempts: 5  // Maximum reconnection attempts
      }
    }
  }
}

Development

# Install dependencies
npm install

# Start development server with hot reload
npm run dev

# Build for production
npm run build

# Run Electron desktop app
npm run electron:dev

Environment Setup

Required environment variables:

# LNbits server URL for Lightning wallet functionality
VITE_LNBITS_BASE_URL=http://localhost:5000

# Nostr relay configuration (JSON array)
VITE_NOSTR_RELAYS='["wss://relay1.example.com","wss://relay2.example.com"]'

Architecture

The application follows a modular architecture with the following core modules:

  • Base Module: Authentication, Nostr client, PWA functionality
  • Wallet Module: Lightning payments, WebSocket balance updates, transaction management
  • Events Module: Event ticketing with Lightning payment integration
  • Market Module: Nostr marketplace functionality
  • Chat Module: Encrypted messaging via Nostr

For detailed development guidelines, see CLAUDE.md.