Your personal anthology. A TikTok for blogs and videos you actually want to watch.
Anthist (from "Anthology") is a distraction-free content reader that lets you curate your own beautiful collection of content. Swipe through articles and videos you've chosen, with a smart recommendation system that learns your preferences—not one designed to keep you scrolling forever.
Website: anthist.com
- Horizontal Swipe Navigation - TikTok-style swiping but horizontal (for blogs that need vertical scroll)
- Distraction-Free Reading - Clean reader mode with 100 beautiful themes
- YouTube Without Distractions - Watch videos without recommendations or autoplay
- Smart Recommendations - Algorithm learns from your engagement (time, scroll, attention)
- Multiple Import Methods:
- Share from any app
- Email links to your personal import address
- Bulk import bookmarks
- PDF uploads
- Privacy-Focused - You own your data, open source
An anthology is a curated collection of literary works chosen for their quality. Anthist puts you in control of your own anthology—a personal collection of blogs, videos, and documents that matter to you, not what an algorithm thinks will maximize your screen time.
- Expo (React Native)
- TypeScript for type safety
- Zustand for state management
- React Native Reanimated Carousel for smooth swipe animations
- Expo Sensors for engagement tracking (gyroscope)
- Cognito - Authentication
- AppSync + DynamoDB - GraphQL API & database
- S3 - Blog content storage
- Lambda - Content processing, algorithm, email handling
- SES - Inbound email processing
- OpenAI text-embedding-3-small - Content embeddings
- Multi-signal ranking - Time, scroll, gyro, completion rate
- Semantic theme matching - Themes match content type
anthist/
├── app/ # Expo Router screens
│ ├── (auth)/ # Login/signup
│ └── (main)/ # Feed, settings, content list
├── components/
│ ├── feed/ # SwipeContainer, ContentCard
│ ├── reader/ # BlogReader, YouTubePlayer, PDFViewer
│ ├── themes/ # 100 reader themes
│ └── tutorial/ # Onboarding
├── lib/
│ ├── algorithm/ # Ranking, animations, embeddings
│ ├── content/ # Extraction, bookmarks, paywall
│ ├── telemetry/ # Engagement tracking
│ └── store/ # Zustand stores
├── amplify/
│ ├── auth/ # Cognito config
│ ├── data/ # DynamoDB schema
│ ├── storage/ # S3 config
│ └── functions/ # Lambda functions
├── docs/
│ ├── SETUP.md # Full setup guide
│ ├── SECRETS.md # API keys & security
│ ├── PROJECT-STATUS.md # What's done, what's not
│ ├── FUTURE-FEATURES.md # Roadmap
│ ├── PRICING.md # AWS cost estimates
│ └── DOMAIN-IDEAS.md # Email domain config
└── website/ # Marketing site for anthist.com
# Clone & install
git clone https://github.com/anthist/anthist.git
cd anthist
npm install
# Set up secrets (required for content processing)
npx ampx sandbox secret set OPENAI_API_KEY
# Paste your OpenAI key when prompted
# Start Amplify sandbox (creates cloud resources)
npx ampx sandbox
# In another terminal - start the app
npm startFull setup guide: docs/SETUP.md
| Document | Description |
|---|---|
| SETUP.md | Complete setup and deployment guide |
| SECRETS.md | API keys and security management |
| PROJECT-STATUS.md | Current state - what's done, what's placeholder |
| FUTURE-FEATURES.md | Roadmap and planned features |
| PRICING.md | Detailed AWS cost breakdown |
| Service | Purpose | Get From | Cost |
|---|---|---|---|
| OpenAI | Content embeddings | platform.openai.com | ~$0.02/1000 items |
| AWS | Backend infrastructure | Auto via Amplify CLI | See pricing doc |
See docs/SECRETS.md for secure setup instructions.
- User shares/emails/imports a URL
- Lambda extracts metadata and content
- Content stored in DynamoDB, HTML in S3
- OpenAI generates embedding for recommendations
- Algorithm ranks content based on user patterns
The algorithm considers:
- Time of day - When you engage most
- Content embeddings - Similar to high-engagement items
- Scroll behavior - Fast scroll = less interest
- Completion rates - Finish similar content?
- Recency - Fresh content boost
- Resume state - Continue unfinished content
100 themes organized by:
- Dark (40) - Night reading optimized
- Light (40) - Day reading optimized
- Specialty (20) - Accessibility, seasonal, mood
Algorithm matches content semantic tags to appropriate theme.
| MAU | AWS | OpenAI | Total |
|---|---|---|---|
| 1-10 | ~$0 (free tier) | ~$1 | ~$1/mo |
| 100 | ~$16 | ~$10 | ~$26/mo |
| 1,000 | ~$140 | ~$100 | ~$240/mo |
See docs/PRICING.md for detailed breakdown.
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - see LICENSE for details.
This app follows the grug brain developer philosophy:
- Simple > Complex
- Readable > Clever
- Working > Perfect
- Small changes > Big rewrites
We prioritize user experience, privacy, and code maintainability over adding more features.
See docs/FUTURE-FEATURES.md for our roadmap including:
- Quote maker & exporter (text to beautiful images/PDFs)
- Favorites system
- Social sharing & friend feeds
- And more...
Website: anthist.com
Note: This is an open source project. The cloud backend is provided free for the first 1,000 users. Self-hosting instructions coming soon.