I'm Marc, a web developer and CTO based in Barcelona. I like to build digital things and libraries. I started in the open-source world when I knew Rails. My first experience was to extract some Ruby code into a "gem" in order to re-use it in 2 different Rails apps I was working at that time. Now I'm maintaining more than 10 open-source projects (some of them with some success!).
When I met Rails and the RubyGems ecosystem I was shocked at first, it was to easy to create a plugin and share code between different apps! I came from Java and PHP pre-2010 era and believe me... managing the environment wasn't fun :)
Ruby and Rails libraries:
- [creator] Invisible Captcha: Anti-spam solution for Rails
- [creator] Maily: Rails engine to preview emails in the browser
- [creator] MiniI18n: Simple, flexible and fast Ruby Internationalization library
- [creator] Jekyll-Timeago: Ruby library to compute distance of dates in words, with localization support and Jekyll integration
- [maintainer] Sidekiq-Cron: Scheduling add-on for Sidekiq
- [maintainer] VideoInfo: Get video info from Dailymotion, Vimeo, Wistia, and YouTube URLs.
- [co-creator] Ralix: Microframework for building and organizing Rails front-ends via Webpacker
- [creator] Rails + Ralix + Tailwind
- [creator] Middleman + Bootstrap
- [creator] Awesome Ruby: A categorized community-driven collection of awesome Ruby libraries, tools, frameworks and software
- [maintainer] TimeOverflow: Time Bank management system
- [co-creator] Tonic: Automatically convert a YAML/JSON into a "filterable" collection website
Now also helping to build Open Source Heroes!
I like to follow the development of the main tools I use in my daily basis. I've also subscribed to a couple of weekly newsletters (ok! probably some more) related to the open-source ecosystem.
Probably... releasing new versions of plugins with millions of downloads :) In order to mitigate this, instead of releasing more "beta" versions, I try ship as early as possible and get real feedback from real production usage.
Trying to contribute to big-massive projects is hard, I'd start for example contributing to any small gem/package/plugin you're currently using in your application, trying to improve them with patches, features, documentation, ... And probably, as next step I'd start by writing "your own" plugin. There is no better way to learn than try!
We should probably first define "success", but for example if we're speaking about real usage, apart from writing useful abstractions, you need to spread the word in several channels, as much as you can: blog-posts, Twitter, Reddit, ProductHunt, Newsletters, ...
When you're maintaining a long-term project, you're probably giving support for different versions of your runtime... The most reliable way I've found to deal with this problem is to rely on a CI service (GitHub Actions is pretty decent nowadays).
Mostly GitHub, Reddit, Discord and now Open Source Heroes!
I usually do a couple of things:
- Research available options in the area
- Review how project is maintained and take a look to the code and dependencies
- Open doesn't mean "free"
- Open doesn't mean I'll fix or debug your issue without any discussion and good reporting. And please be kind!
With no doubts... Ruby 💎🙌