Skip to content

Inklet Documentation

Inklet is a cloud-connected e-ink display platform. Users manage their displays through a web portal, while devices communicate with the backend via AWS IoT Core (MQTT).

Repositories

Repository Description Stack
backend Go API server β€” auth, device management, IoT, billing Go, Chi, GORM, PostgreSQL
portal-web User-facing web portal React, Vite, Tailwind CSS
sim-hw E-ink device simulator (IoT + display rendering) Python, AWS IoT SDK, Pillow
sim-dashboard E-ink screen simulator with WebSocket live preview React, Fastify, WebSocket

Quick Start

Run all three services locally for a full development environment:

# Terminal 1: Go backend (port 4000)
cd backend && go run ./cmd/server

# Terminal 2: sim-dashboard (ports 3001 + 5173)
cd sim-dashboard && npm run dev

# Terminal 3: sim-hw device (connects to IoT Core + sim-dashboard)
cd sim-hw && python -m eink_hw --data-dir devices/kitchen

Open http://localhost:5173 to access the simulator dashboard.

Key Concepts

  • Device: An e-ink display identified by hw_id (hardware UUID) and thing_name (AWS IoT Core name)
  • Binding: Associating a device with a user account via claim code or NFC
  • Claim Code: A 6-character pairing code displayed on the device screen
  • NFC Payload: inklet:1:{hw_id}:{hmac_signature} β€” used for tap-to-pair binding