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) andthing_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