Read markdown like an article, not a raw text file.
Revue is an open source iOS and Android app that turns plain .md files into a focused, magazine-style reading experience with local-first storage, reader controls, table of contents navigation, and automatic progress restore.
- Why Revue
- Architecture
- How It Feels (Android/iOS)
- Built with Modern Tooling
- Read in Browser
- Quick Start (Development)
- Quality Checks
- Build
- Scripts
- Project Docs
Markdown is a strong format for mobile reading because it is inherently responsive by structure and highly styleable in presentation. Revue builds on that foundation to turn plain .md files into a polished, readable experience across screen sizes.
- Instant local import of your existing markdown files
- Lightweight reader controls (theme and type scale)
- Table-of-contents navigation for fast scanning
- Auto-resume exactly where you stopped
- iOS and Android support with web for development
- Local-first: markdown metadata and preferences are persisted with platform storage.
- Native file access uses
expo-file-system(file://andcontent://). - Web supports URI-based imports (
http,https,blob,data, and local paths). - Reader rendering pipeline:
- Parse and normalize markdown
- Remove frontmatter for content rendering
- Convert markdown to HTML blocks
- Render with
react-native-render-html
- Import markdown.
- Read in a clean, distraction-free view.
- Jump sections instantly with table of contents.
- Return later and continue from the same spot.
Android also supports opening markdown from external apps through file/content intents configured in app.json.
Built with a modern toolchain for fast iteration and reliability: Expo Router, React Native 0.81, TypeScript 5.9, Bun-first workflows, oxlint/oxfmt, and Jest.
- Expo SDK
- React Native
- React 19
- Expo Router
- NativeWind
- react-native-render-html
- Bun (package manager and script runner)
bun run webbun install
bun run start
bun run webbun run lint
bun run typecheck
bun run testbunx eas-cli build -p android --profile preview| Command | Description |
|---|---|
bun run start |
Expo start |
bun run android |
Open Android target |
bun run ios |
Open iOS target |
bun run web |
Run web target |
bun run prebuild |
Expo prebuild |
bun run lint |
oxlint + oxfmt check |
bun run format |
Auto-fix lint and format |
bun run typecheck |
TypeScript --noEmit |
bun run test |
Jest |
