$ account RSSNext
Folo is a multi-platform RSS reader and content aggregator that lets users subscribe to feeds, manage read state, and consume articles, videos, images, and audio across a single unified timeline. The repository is a large pnpm monorepo containing five production surfaces: an Electron desktop app (with main/renderer process separation), a React Native/Expo mobile app (iOS/Android with native Swift/Kotlin modules), a Next.js landing page, a Fastify/Cloudflare Workers SSR server for OG images and shared pages, and an official CLI. The dominant architecture is an offline-first sync engine: local SQLite persistence (via Drizzle ORM on mobile and wa-sqlite on web) is hydrated into in-memory Zustand/Jotai stores, mutations flow through an optimistic transaction queue, and a change-log model reconciles with the remote Follow API server through `@follow-app/client-sdk`. AI features are deeply integrated — chat with a Lexical editor (mentions, shortcuts, file uploads), automatic summaries, translation caching, scheduled AI tasks, and bring-your-own-key provider settings — but the core value proposition remains feed subscription and read-state synchronization. Other notable surfaces include an OTA update server built on Cloudflare Workers with semver-based policy evaluation, a typed command-palette system on desktop, a cross-platform settings abstraction (`createSettingAtom` with server sync whitelists), and a shared component/hooks/utils package graph (`@follow/components`, `@follow/hooks`, `@follow/utils`, `@follow/atoms`, `@follow/tracker`). The tracker layer abstracts PostHog/Firebase/GA4 behind adapters. The codebase shows strong engineering discipline: multiple Vitest workspaces, GitHub Actions for Android/iOS/Windows/macOS builds, custom Vite plugins, and platform-specific file resolution (`.electron.ts`, `.native.tsx`, `.web.ts`). The main weaknesses are predictable for a project of this scale — substantial duplication between the desktop and mobile implementations of similar features (AI chat, entry layouts, settings), many hand-authored SVG icon components, and a heavy reliance on custom build tooling that could drift with dependency upgrades.