Our Stack
A pragmatic toolkit: fast mobile with Expo, a tight FastAPI backend, and on-device OCR for privacy-sensitive flows. Typed end-to-end and tuned for reliability.
Mobile App (Expo + React Native)
- Expo (React Native), Expo Router— Tabbed navigation, auth flow, deep links
- TypeScript— Strict types end-to-end
- State & Data— Light, screen-scoped state; request/response typing
- UI— Tailwind-style classes, custom GlassCard, mesh visuals
Backend API (FastAPI)
- FastAPI— Tight routes, typed models & responses
- SQLAlchemy— ORM models: items/tools/parts/orders/users/tokens
- Auth— JWT access + hashed refresh tokens; rotation + invalidation
- CORS & Rate-limit— Strict CORS, SlowAPI on hot routes
Iskra — Domain Features
- Catalog— Hierarchical (Electro / HandTools / Parts) + instant search
- Orders— Server-authoritative totals, per-line price snapshots
- Export— JSON orders for accounting/BI; idempotent loaders
- Ops Scripts— Loaders for items/tools/parts/users, safe refresh
UNIScan — On-device Processing
- OCR (on device)— @react-native-ml-kit/text-recognition; Tesseract native bridge
- Model Packs— Bundled language data; local execution
- Security UX— Vault lock, screen-capture guard on sensitive views
- Exports— DOCX/PDF via expo-print; encrypted .uenc option
Security
- Vault— AES-256-GCM; keys in SecureStore where available
- Biometrics— Optional unlock via expo-local-authentication
- Sessions— Short-lived access token; hashed refresh tokens (server)
- Principles— Minimum data, no third-party ads/tracking SDKs
Storage & Files
- On device— expo-file-system + AsyncStorage fallbacks
- Server files— Static product/manager images with graceful fallbacks
- Retention— User-controlled; ops exports for accounting/BI
- Formats— Images, JSON, DOCX/PDF (UNIScan), encrypted archives
Tooling & Build
- TypeScript everywhere— Shared contracts for app/server
- Expo tooling— Build profiles; Android focus; fast local dev
- Lint & Format— ESLint + Prettier; consistent CI-ready style
- Testing surface— Screen logic + API integration points
Performance & UX
- Startup & LCP— Lean bundles, image sizing, mesh is GPU-friendly
- Network polish— Offline-aware hints; resilient transitions
- Deterministic visuals— Seeded meshes for consistent theming
- A11y & Readability— Contrast, hit areas, readable body copy