🏗️ Architecture

Understanding Linterman's technical architecture and data flow.

🎯 Core Principle

100% Client-Side Processing with WebAssembly

Privacy First

Your collections are processed entirely in your browser using WebAssembly (WASM). They never leave your device. We verify this via our open-source architecture.

📊 Architecture Overview

┌─────────────────────────────────────┐
│    Browser (Client)                 │
│                                     │
│  1. Load Collection (local only)    │
│  2. WASM Lint (instant)             │
│  3. WASM Auto-Fix (instant)         │
│  4. Download Fixed (local)          │
│                                     │
│  ❌ NO SERVER UPLOAD                │
│  ❌ NO SERVER PROCESSING            │
└─────────────────────────────────────┘

🔧 Technology Stack

Core Engine

Rust + WASM

Frontend

Nuxt 3 + Vue 3

Backend (Optional)

For accounts & stats only

🔄 Data Flow

Analysis Workflow

  1. User loads or pastes collection JSON (local only)
  2. WASM module parses and analyzes (client-side)
  3. Results displayed in UI
  4. Optional: Results stats saved to database (if logged in)

Auto-Fix Workflow

  1. User clicks "Auto-Fix"
  2. WASM module applies corrections (client-side)
  3. Collection updated in textarea
  4. Re-analysis performed automatically
  5. User downloads fixed collection

💾 Data Storage

Client-Side (Browser)

  • ✅ Collection JSON (volatile, in memory)
  • ✅ Analysis history (localStorage, max 10)
  • ✅ User preferences (localStorage)

Server-Side (Optional, with account)

  • ✅ Analysis results (score, issues count)
  • ✅ Collection metadata (name, timestamp)
  • ❌ Collection JSON content (never stored)

🚀 Performance

Analysis

  • <100ms - WASM execution
  • <1s - Total time (UI included)

Auto-Fix

  • <100ms - Corrections applied
  • <1s - Total time (re-analysis included)

🔐 Security & Privacy

What is NOT sent to the server?

  • ❌ Collection JSON content
  • ❌ API keys, tokens, secrets
  • ❌ Request/response data
  • ❌ Fixed collection

What CAN be sent (with account)?

  • ✅ Score (number)
  • ✅ Issues count (number)
  • ✅ Collection name (string)
  • ✅ Timestamp (date)

📚 Learn More