FeedVine helps independent newsletter creators, niche media operators, and small content teams monitor trusted sources, curate stories, generate original attributed commentary, and export approved drafts to Beehiiv or MailerLite. A modern RSS reader, collections, digests, webhooks, and API access support the publishing workflow.
Try the app in demo mode - no signup required! Just visit the app and start exploring.
- 🔐 User Authentication - Secure email/password auth with Supabase
- 📰 Feed Management - Add unlimited RSS feeds with category organization
- 📊 Unified Article Feed - All your articles in one beautiful, chronological feed
- ✓ Read/Unread Tracking - Auto-mark articles as read when you click them
- ⭐ Save for Later - Bookmark important articles to your Saved page
- 🔍 Advanced Filtering - Search by keyword, filter by source, date range, or show only unread
- ⌨️ Keyboard Shortcuts - Navigate like a pro (j/k, m, s, r, ?, and more)
- 🌙 Dark Mode - Beautiful dark theme that's easy on the eyes
- 📱 Responsive Design - Works perfectly on desktop, tablet, and mobile
- 🔍 Feed Discovery - Browse and add popular feeds from curated categories (AI, Tech, Startups, Design, etc.)
- 📤 RSS Export - Download your aggregated feed as RSS for use with other tools
- 🔗 Integration Ready - Copy your feed URL for Zapier, IFTTT, or any RSS reader
- 💡 Integration Ideas - Built-in suggestions for automating your workflow
- 🎯 Landing Page - Professional landing page with features, pricing, and CTAs
- ⚡ Real-time Updates - React Query for instant data synchronization
- 🚀 Fast Performance - Vite + React 18 for lightning-fast load times
- 🎨 Modern UI - Tailwind CSS with beautiful gradients and animations
- 📦 Demo Mode - Try the app without signing up using mock data
- Frontend: React 18 + Vite + TypeScript + Tailwind CSS
- Backend: Supabase (PostgreSQL + Auth + Edge Functions)
- Deployment: Netlify
- Libraries: React Query, React Router, date-fns, react-hot-toast
- Node.js 18+ and npm
- Supabase account
- Netlify account (for deployment)
cd rss-aggregator
npm install- Create a new project at supabase.com
- Go to SQL Editor and run the schema from
supabase/schema.sql - Deploy Edge Functions (RSS fetching and webhooks):
# Install Supabase CLI
npm install -g supabase
# Login to Supabase
supabase login
# Link your project
supabase link --project-ref your-project-ref
# fetch-rss — scheduled feed fetch; also delivers user webhooks (uses _shared/webhooks.ts)
supabase functions deploy fetch-rss
# test-webhook — optional; powers “Send Test” on the Webhooks settings page only
supabase functions deploy test-webhook
# generate-studio-draft — brand-aware newsletter and Instagram draft generation
supabase functions deploy generate-studio-draftAfter you change supabase/functions/_shared/webhooks.ts, redeploy fetch-rss so live webhook deliveries pick up the change. After you change test-webhook/, redeploy test-webhook.
If “Send Test” returns 401, the deployed function may still have JWT verification enabled. Project supabase/config.toml includes [functions.test-webhook] verify_jwt = false — redeploy test-webhook so that applies, or the gateway can reject the request before your code runs.
FeedVine Studio also requires the ANTHROPIC_API_KEY Edge Function secret and migration 035_studio.sql. See docs/STUDIO_SETUP.md for deployment and editorial-guardrail details.
- Set up a cron job (optional):
- Go to Database → Extensions → Enable
pg_cron - Run this SQL to schedule hourly fetches:
- Go to Database → Extensions → Enable
SELECT cron.schedule(
'fetch-rss-hourly',
'0 * * * *',
$$
SELECT net.http_post(
url:='https://your-project-ref.supabase.co/functions/v1/fetch-rss',
headers:='{"Content-Type": "application/json", "Authorization": "Bearer YOUR_ANON_KEY"}'::jsonb
) AS request_id;
$$
);Create a .env.local file:
VITE_SUPABASE_URL=https://your-project-ref.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-keynpm run devVisit http://localhost:3000
npm run buildnpm install -g netlify-cli
netlify login
netlify init
netlify deploy --prod- Push code to GitHub
- Connect repository in Netlify
- Set build settings:
- Build command:
npm run build - Publish directory:
dist
- Build command:
- Add environment variables in Netlify dashboard
- Deploy!
- Try Demo Mode - Click "Try Demo Mode" on the auth page to explore without signing up
- Sign Up - Create an account with your email and password
- Discover Feeds - Browse the Discover page to add popular feeds from curated categories
- Add Custom Feeds - Go to "Feeds" page and add any RSS feed URL
- Browse Articles - View all your articles in one unified feed on the home page
j/k- Navigate down/up through articlesm- Mark selected article as read/unreads- Save/unsave selected articler- Refresh articlesu- Toggle unread only filter/- Focus search?- Show keyboard shortcuts helpEsc- Close modals
- Keyword Search - Find articles by title or description
- Source Filter - Filter by specific feed
- Date Range - Show articles from last 24h, week, month, or custom range
- Unread Only - Toggle to show only unread articles
- Saved Page - Access all your bookmarked articles
- Go to Settings page
- Click "Download RSS Feed" to get an XML file of your aggregated feed
- Click "Copy Feed URL" to get a shareable URL for integrations
- Use the URL with:
- Zapier - Send new articles to Slack, email, or 1000+ apps
- IFTTT - Create automated workflows
- RSS Readers - Import into Feedly, Inoreader, etc.
- Email Tools - Create custom digests
rss-aggregator/
├── src/
│ ├── components/ # React components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Supabase client
│ ├── pages/ # Page components
│ ├── types/ # TypeScript types
│ ├── App.tsx # Main app component
│ ├── main.tsx # Entry point
│ └── index.css # Global styles
├── supabase/
│ ├── schema.sql # Database schema
│ └── functions/ # Edge functions
├── public/ # Static assets
└── package.json
- AI-powered article summarization
- Email digest export
- Beehiiv integration
- Saved custom filters
- Browser extension
- Team workspaces
- Stripe billing
MIT