Follow your favourite web sites, and read in minimal design.
A modern RSS feed reader built with Ruby on Rails, designed for a clean and distraction-free reading experience.
- π Clean, minimal reading interface
- π Automatic feed updates via background jobs
- π Bookmark articles for later reading
- π¨ Modern, responsive design with Tailwind CSS
- β‘ Fast, SPA-like experience with Hotwire/Turbo
- π€ User authentication and personalized feeds
- π§ Email confirmations and notifications
- π³ Subscription management with LemonSqueezy integration
- Backend: Ruby on Rails (Edge)
- Frontend: Hotwire/Turbo, Stimulus, Tailwind CSS
- Database: PostgreSQL
- Background Jobs: Solid Queue
- Caching: Solid Cache
- Real-time: Solid Cable
- Testing: MiniTest
- Deployment: Render.com
- Monitoring: Sentry
- Ruby 3.2+
- Node.js 18+
- PostgreSQL 14+
-
Clone the repository
git clone https://github.com/enderahmetyurt/bloudme.git cd bloudme -
Install dependencies
bundle install npm install
-
Setup credentials
# This project uses Rails encrypted credentials instead of .env files # The .env.example file is provided for reference only # Configure your credentials using: rails credentials:edit --environment=development
-
Setup database
rails db:create rails db:migrate rails db:seed # See user password -
Build assets
rails assets:precompile
-
Start the development server
bin/dev
Visit http://localhost:3000 in your browser.
rails test
rails test:systembundle exec rubocop
bundle exec brakemanBackground jobs are handled by Solid Queue. In development, they run automatically.
Feeds can be added through the web interface or programmatically:
feed = Feed.create!(
name: "Example Blog",
feed_url: "https://example.com/feed.xml",
user: current_user
)The application uses session-based authentication. API endpoints require a valid session.
GET /feeds- List user's feedsPOST /feeds- Create a new feedGET /articles- List articles from subscribed feedsPOST /bookmarks- Bookmark an articleDELETE /bookmarks/:id- Remove bookmark
docker-compose up -dThe application is deployed on Render.com with automatic deployments from the main branch.
This project uses Rails encrypted credentials instead of .env files for better security. The .env.example file is provided only as a reference for the configuration keys needed.
# Edit development credentials
rails credentials:edit --environment=developmentSee .env.example for reference. Your encrypted credentials should include:
database_url- PostgreSQL connection stringsentry_dsn- Error tracking (optional)resend_api_key- Email service (optional)lemonsqueezy_api_key- Payment processing (optional)lemonsqueezy_store_id- LemonSqueezy store ID (optional)lemonsqueezy_variant_id- LemonSqueezy variant ID (optional)secret_key_base- Rails secret key
- Security: Credentials are encrypted and committed to the repository
- Environment-specific: Different credentials for development, test, and production
- Team collaboration: Secure sharing of configuration across team members
- Deployment: No need to manage separate environment variable files
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
If you discover a security vulnerability, please see SECURITY.md for reporting instructions.