Reviving the free cloud tradition
LibreRSS is a free, open-source cloud RSS service and reader that allows users to subscribe to any RSS feed and read their favorite websites in a single place, without ads, in a standardized minimalist format, across any device.
- 100% Free - No subscription fees or premium tiers
- Open Source - Fully transparent and self-hostable
- No Ads - Clean, distraction-free reading experience
- Modern Design - Minimalist UI with beautiful animations
- Cross-Device - Works seamlessly across all your devices
- RSS Parsing - Subscribe to any RSS feed with ease
- Cloud Sync - Your feeds and articles synchronized across devices
- Frontend: Next.js 15, React 19, TypeScript
- Styling: Tailwind CSS with custom components
- UI Components: PrimeReact
- Database: PostgreSQL with Prisma ORM
- Hosting: Supabase (database)
- Package Manager: Bun/PNPM
- Node.js 18+
- Bun or PNPM package manager
- PostgreSQL database (or Supabase account)
-
Clone the repository
git clone https://github.com/yourusername/librerss.git cd librerss -
Install dependencies
bun install # or pnpm install -
Set up environment variables
Create a
.env.localfile in the root directory:# Database SUPABASE_URL="your_supabase_database_url" SUPABASE_DIRECT_URL="your_supabase_direct_url" # Next.js NODE_ENV="development"
-
Set up the database
# Generate Prisma client bunx prisma generate # Run database migrations bunx prisma db push
-
Start the development server
bun dev # or pnpm dev -
Open your browser
Navigate to http://localhost:3000 to see LibreRSS in action!
- Go to the Dashboard
- Click on "Settings" in the menu
- Add a new category or feed URL
- Your feeds will be automatically fetched and updated
- Browse feeds in the sidebar
- Click on any article to read it
- Articles are cached for optimal performance
- Enjoy an ad-free, clean reading experience
src/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── dashboard/ # Dashboard page
│ └── landing/ # Landing page
├── components/ # Reusable UI components
├── lib/ # Utilities and services
│ ├── core/ # Core utilities and constants
│ └── services/ # External services (RSS, database)
└── styles/ # Global stylesheets
# Development
bun dev # Start development server with Turbopack
# Building
bun build # Build for production
bun start # Start production server
# Code Quality
bun lint # Run ESLint
# Database
bunx prisma studio # Open Prisma Studio
bunx prisma db push # Push schema changes to databaseThe application uses a simple schema with three main models:
- Feed: RSS feed information and metadata
- Article: Individual articles from feeds
- FeedCategory: Organization of feeds into categories
| Variable | Description | Required |
|---|---|---|
SUPABASE_URL |
PostgreSQL database connection URL | Yes |
SUPABASE_DIRECT_URL |
Direct database connection URL | Yes |
NODE_ENV |
Environment (development/production) | No |
- Styling: Modify
tailwind.config.tsand component styles - Content: Update constants in
src/lib/core/constants.ts - Features: Add new components and services as needed
We welcome contributions! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Follow TypeScript best practices
- Use Tailwind CSS for styling
- Write meaningful commit messages
- Test your changes thoroughly
This project is licensed under the MIT License - see the LICENSE file for details.
LibreRSS is inspired by the legacy of Google Reader (2005-2013), aiming to capture the same magic of long-lasting free accessibility and low mental overhead that made RSS reading a joy.
- 🐛 Bug Reports: Create an issue
- 💡 Feature Requests: Create an issue
- 💬 Questions: Discussions
Built with ❤️ by the LibreRSS team
In the tradition of the open internet, LibreRSS provides a completely free alternative to paid RSS services with no advertising or subscription fees.