RubyVideo.dev, inspired by pyvideo.org, is designed to index all Ruby-related videos from conferences and meetups worldwide. At the time of writing, the project has about 4000 videos indexed from 175+ conferences and 2500+ speakers.
Technically the project is built using the latest Ruby and Rails goodies such as Hotwire, Solid Queue, Solid Cache.
For the front end part we use Vite, Tailwind with daisyUI components and Stimulus.
It is deployed on an Hetzner VPS with Kamal using SQLite as the main database.
For compatible browsers it tries to demonstrate some of the possibilities of Page View Transition API.
This project is open source, and contributions are greatly appreciated. One of the most direct ways to contribute at this time is by adding more content. For more information on contributing, please visit this page.
We have tried to make the setup process as simple as possible so that in a few commands you can have the project with real data running locally.
- Ruby 3.3.6
- Docker and docker-compose (for Meilisearch)
- Node.js 20.11.0
- Meilisearch 1.1
To prepare your database and seed content, run:
bin/setup
You can use the .env.sample
file as a guide for the environment variables required for the project. However, there are currently no environment variables necessary for simple app exploration.
Rubyvideo.dev search uses Meilisearch as a search engine.
To start the app, you need to have a Meilisearch service started. There is a Docker Compose available
In a new terminal :
docker-compose up
Troubleshooting:
- if no search results are returned, most probably the index is empty. You can reindex by running
Talk.reindex!
in the Rails console. - if they are no talks at all you need to run rails db:seed first
The following command will start Rails, SolidQueue and Vite (for CSS and JS).
bin/dev
The CI performs these checks:
- erblint
- standardrb
- standard (js)
- prettier (yaml)
Before committing your code you can run bin/lint
to detect and potentially autocorrect lint errors.
To follow Tailwind CSS's recommended order of classes, you can use Prettier along with the prettier-plugin-tailwindcss, both of which are included as devDependencies. This formating is not yet enforced by the CI.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project, you agree to abide by its terms. More details can be found in the Code of Conduct document.
Thank you Appsignal for providing the APM tool that helps us monitor the application.
Rubyvideo.dev is open source and available under the MIT License. For more information, please see the License file.