See CHEATSHEET.md for quick reference commands.
npm install
npm run dev
# Opens at http://localhost:8080- Login with BlueSky credentials
- View timeline with infinite scroll
- View post details with threaded replies
- Like, repost, and reply to posts
- Compose new posts with character counter
- D-pad navigation optimized for KaiOS
- Offline support with service worker
- Data saver mode for limited bandwidth
- Internationalization (English, Spanish, French, Portuguese)
- Accessibility features (ARIA labels, keyboard navigation)
BlueKai/
├── src/ # Source code
│ ├── components/ # UI components
│ ├── views/ # Page views
│ ├── services/ # API clients
│ ├── utils/ # Utilities
│ ├── state/ # State management
│ ├── navigation/ # Routing & navigation
│ ├── i18n/ # Internationalization
│ └── styles/ # CSS styles
├── tests/ # Test files
│ ├── html/ # HTML test pages
│ ├── scripts/ # Verification scripts
│ └── runners/ # Test runners
├── scripts/ # Build & deployment scripts
├── docs/ # Documentation
├── public/ # Built files (auto-generated)
├── dist/ # Webpack output
└── manifest.webapp # KaiOS manifest
| Script | Purpose |
|---|---|
npm run dev |
Start development server with hot reload |
npm run build |
Create production build |
npm test |
Run test suite |
./scripts/serve-kaios.sh |
Build and serve for KaiOS emulator |
./scripts/build-kaios.sh |
Build for KaiOS without starting server |
./scripts/create-icons.sh |
Generate app icons from logo |
Unit tests are located alongside source files with .test.js extension.
npm testOpen HTML test files in a browser:
# Individual component tests
open tests/html/test-timeline.html
open tests/html/test-compose-view.html
open tests/html/test-post-detail.htmlRun test suites programmatically:
node tests/runners/run-app-tests.js
node tests/runners/run-component-tests.js
node tests/runners/run-accessibility-tests.js- Framework: Preact (React-like, 3KB)
- Build Tool: Webpack + Babel
- Target: Gecko 48 (ES5 transpiled)
- Styling: Vanilla CSS
- API: AT Protocol (BlueSky)
- State Management: Custom Redux-like implementation
- Routing: Custom hash-based router
- KaiOS 2.5 (Gecko 48) and newer
- Firefox 48+
- CHEATSHEET.md - Quick reference guide
- docs/OFFLINE-SUPPORT-GUIDE.md - Offline functionality guide
- tests/README.md - Testing documentation
This project is licensed under the MIT License. See LICENSE for details.