Zum Hauptinhalt springen
← Alle ManaScores
Beta 30. März 2026 von Claude Code

uLoad: Production Readiness Audit

URL-Shortener mit Hono/Bun-Server, Click-Analytics, QR-Codes, Public Profiles, UTM-Tracking und Stripe-Stubs - live auf ulo.ad mit Docker-Deployment

Gesamtscore

Gewichteter Durchschnitt aus 8 Kategorien

58 /100

Kategorie-Scores

Backend
60
Frontend
60
Database
60
Testing
0
Deployment
75
Doku
70
Security
55
UX
65

Metriken

4.190 Lines of Code
114 Source Files
0.3 MB (Source)
0 Commits
2 Contributors
2026-01-01 Erster Commit
12 API Endpoints
6 Backend Module
16 Web Routes
2 Stores
16 Komponenten
4 DB Tabellen
0 Tests
0 Test Files
2 Sprachen
300 Max File (LOC)
audit uload production-readiness beta

Zusammenfassung

uLoad ist ein URL-Shortener und Link-Management-Tool mit eigenem Hono/Bun-Server, Click-Analytics (Timeline, Devices, Referrers, Countries), QR-Code-Generierung und Public User Profiles. Live auf ulo.ad mit Docker-Deployment auf Hetzner VPS. Keine Tests vorhanden.

Backend (60/100)

  • Hono/Bun Microservice (Port 3041)
  • 12 API Endpoints:
    • GET /r/:code - Redirect + Click-Tracking
    • GET /public/u/:username - Public User Profile
    • GET /api/v1/analytics/:linkId - Click-Statistiken
    • GET /api/v1/analytics/:linkId/timeline - Clicks über Zeit
    • GET /api/v1/analytics/:linkId/devices - Geräte-Breakdown
    • GET /api/v1/analytics/:linkId/referrers - Top-Referrer
    • GET /api/v1/analytics/:linkId/countries - Länder-Breakdown
    • POST /api/v1/stripe/checkout - Stripe Session (Stub)
    • POST /api/v1/stripe/webhook - Stripe Webhook (Stub)
    • POST /api/v1/email/send-invitation - Team-Einladung (Stub)
  • JWT-Auth auf geschützten Endpoints
  • Lücke: Stripe und Email sind Stubs

Frontend (60/100)

  • SvelteKit 2 + Svelte 5 Runes
  • Tailwind CSS 4
  • 16 Routes: Links, Tags, Analytics, Pricing, Settings, Public Profile, Auth
  • 2 Stores (authStore, uloadStore)
  • QR-Code-Generierung
  • UTM-Parameter-Builder
  • Bulk-Operationen
  • i18n mit svelte-i18n (DE + EN)
  • Lücke: Wenige Custom-Komponenten, keine Skeleton-Loader

Database (60/100)

  • IndexedDB via Dexie.js (local-first)
  • PostgreSQL via Drizzle ORM (Server)
  • 4 Collections: links, tags, folders, linkTags
  • Compound-Indizes für Performance
  • Sync über mana-sync
  • Guest Seed Data
  • Lücke: Keine Migrations-Docs

Testing (0/100)

  • Keine Unit Tests
  • Keine E2E Tests
  • Keine Testinfrastruktur
  • Kritisch: Analytics und Redirect sind geschäftskritisch und ungetestet

Security (55/100)

  • JWT-Auth auf Server-Endpoints
  • Mana Core Auth Integration
  • Guest Mode unterstützt
  • Passwort-geschützte Links
  • Max-Click-Limits und Expiration
  • CORS konfiguriert
  • Lücke: Rate Limiting unklar, Stripe-Webhooks nicht validiert (Stub)

Deployment (75/100)

  • 2 Dockerfiles (Web: node:20-alpine Port 5029, Server: oven/bun Port 3041)
  • In docker-compose.macmini.yml (uload-web 128m, uload-server 256m)
  • Health Checks auf beiden Services
  • Live auf ulo.ad (Coolify, Hetzner CX21)
  • CORS für ulo.ad und uload.mana.how
  • Lücke: Kein CI/CD, kein Error Monitoring

Documentation (70/100)

  • CLAUDE.md vorhanden (129 Zeilen, umfassend)
  • README.md vorhanden (152 Zeilen)
  • Deployment-Docs: DEPLOYMENT.md, LESSONS_LEARNED.md, DOMAIN_SETUP.md, COOLIFY_SETUP.md
  • Architektur, Routes, Collections dokumentiert
  • Lücke: Keine API-Docs für Analytics-Endpoints

UX (65/100)

  • Link-Management mit Folders und Tags
  • QR-Code-Generierung
  • Analytics-Dashboard pro Link (Timeline, Devices, Referrers, Countries)
  • Public User Profiles (/u/[username])
  • Bulk-Operationen
  • Passwort-Schutz + Expiration
  • Keyboard Shortcuts (Cmd+1-4)
  • Lücke: Kein Link-Preview, keine Custom Short Codes

Top-3 Empfehlungen

  1. Tests schreiben - Redirect-Logik, Analytics-Aggregation, Link-Validierung
  2. Stripe integrieren - Checkout und Webhooks fertigstellen
  3. Error Monitoring - GlitchTip/Sentry für Production-Tracking