Web and mobile platform¶
Web (primary)¶
iFixedX is a Vite + React SPA:
Classic layout — X-like three columns (nav / feed / widgets).
Stream layout — wide center feed with thumb column (Explore-style).
Home feed — single-column
TweetCardclassic rows; full-width media with natural aspect ratio.
Responsive behavior¶
Narrow viewports collapse rails.
Stream layout uses
minmax(0, 1fr)center column to avoid horizontal overflow.Media uses
object-fit: containwith max-height caps (portrait-safe).
Mobile web¶
Same bundle; no separate native shell in this repo.
Concern |
Approach |
|---|---|
Touch |
Standard links/buttons; focus modal for post detail |
Performance |
Windowed feed render ( |
Storage |
RxDB on device; wipe flow for reset |
OAuth |
Browser redirect to API; session cookie |
Future native apps would reuse API + canonical contracts documented under Canonical contracts.
PWA¶
Not required for v1 docs; deploy as HTTPS SPA. Add manifest/service worker later if offline shell is needed.
TwIMG / avatars¶
TwimgImg / avatar blob cache — see src/TwimgMedia.tsx, src/db/avatarBlobCache.ts. Direct TwIMG first, /api/cdn/twimg fallback.