
Gato GraphQL
Interact with all your data in WordPress
Well, that took time! After several months, I finally launched the site for my plugin GraphQL API for WordPress:
It took so long, because when you're doing everything on your own (which is my case, I don't have a team), you literally need to do everything. So to make this website, I had to learn so many things:
- Jamstack + Eleventy
- CSS animations
- Screencasting
And I even had to design the logo (with help from my wife). It looks not bad, right? 😅
And all of that while still developing the plugin, and writing documentation, so that users can start playing with it immediately.
But it's been worth it. I'm very pleased with how it looks. Check this image for instance, added to the homepage:

I believe it's able to convey how powerful the product is, which was my goal all along.
How do you like it?
Now, on to the next challenge: how to get people to visit it 🙀
Any recommendation?
This is the 2nd sponsor for my plugin GraphQL API for WordPress, and the 1st one at the u$d 1400/m tier (the other was is at u$d 70/m).
This is a huge step forward, since it gives me the economic certainty as to keep developing the plugin (at least for the short/medium term... I still need a few more sponsors for it to become a living wage and long-term economic reliability).
I'll describe how it happened.
Several weeks ago, there was a proposal to introduce a fixed schedule to WordPress to bump the minimum required PHP version. Among the comments, one of them struck me:
So effectively this means that we cannot use PHP 8 syntax in themes/plugins if we want to support all WordPress versions until December 2023, 3 years after it has been released. This is very disappointing.
I work with WordPress. My plugin is for WordPress. Not being able to use the latest PHP features in 3 more years feels very disempowering.
So I decided to look for some solution, and I discovered Rector, a tool to reconstruct PHP code based on rules. It is like Babel, but for PHP. I asked if I could use Rector to transpile code from PHP 7.4 to 7.1, and they said yes, it could be done, but the rules to do it had not been created yet.
So I created them.
I contributed to this open source project full time for some 2 weeks, and produced some 15 rules to downgrade code, which I have applied to my plugin: Now I can code it using features from PHP 7.4 (and even from PHP 8.0), and release it to run on PHP 7.1, so it can still target most of the WordPress user base (only users running PHP 5.6 and 7.0 are out). That's a huge win!
After implementing those 15 rules, I documented the remaining rules to downgrade PHP code, and called it a day. I didn't mind working on them, but I didn't have the time to do it. Nevertheless, I also created this task as a sponsorable feature for my plugin; if anyone sponsored my time to work on it, I could then attempt to finish the task.
Well, Tomáš Votruba, creator of Rector, liked my contributions so he decided to become my sponsor.
Yay! 🍾 🎉 🎊 🥳 🍻 🥂
In exchange, I'll work on the downgrade rules, and even attempt to have Rector itself run on PHP 7.1.
Now, let's be clear: Tomáš is sponsoring me to work on Rector, not on GraphQL API for WordPress. That's why the sponsoring tier is u$d 1400/m, since it involves me working on the sponsor's repo.
While I get to increase the price for the tier, it makes no difference to me if the code is in my repo or my sponsor's: when I first worked those 2 weeks, it was for the benefit of my own plugin anyway, even if the code does not belong to my project.
Ultimately, where the code lives is not really important. What is important is that my project (and, for that matter, any project based on PHP) will be able to benefit from it.
In addition, anyone from the PHP community who starts using Rector because of my work on it, may learn that it was the GraphQL API for WP that made it possible, so I gain face and recognition.
So I think this is a win-win-win for all parties involved:
- Tomáš gets Rector expanded, supporting a broader set of use cases
- I get the sponsorship money, and the associated badge of recognition from having a big sponsor
- My plugin GraphQL API for WordPress can use the new rules to use new PHP features (which was my objective all along)
- The WordPress community can implement this same strategy for their own themes and plugins
- Other PHP-based projects can also use it
Some personal takeaways from this experience:
- Contributing to open source projects may pay off
- Looking for synergies may pay off. Rector and my plugin can benefit from each other. Contributing to Rector is contributing to the GraphQL API for WP
- Getting sponsors is tough, mainly at the beginning. They may not come to you. So you need to (directly or indirectly) go to them
- I'm working on my plugin for the long run, and its being successful depends on many small victories, like this one
My next step is to share my work on Rector with the broader WordPress and PHP communities: I've just published an intro to downgrading from PHP 8.0 to 7.x, and in a few weeks I'll publish a step-by-step guide on transpiling code for a WordPress plugin, using my repo as the example.
Hopefully, along the way I'll be able to get new sponsors, and eventually achieve long-term economic certainty with my plugin 😀
2 days ago I subscribed to GitHub sponsors, and I already got my first sponsor!
Following the example set by Caleb Porzio (who's making more than u$d 100k/y doing open source), I have decided to use the sponsorware model to fund my project. It works like this:
- Whenever I get 10 new sponsors (at u$d 14/m), I start developing the most up-voted feature from a special "Sponsorware" list (which I'm completing as I'm writing this milestone)
- Once implemented, the new feature becomes available to all the sponsors, via a private GitHub repo
- As soon as I get 50 new sponsors, the new feature becomes open source, accessible to everyone via the public GitHub repo, and is integrated into the plugin
In a few months, I will also start creating instructional videos, explaining how to make the most out of the plugin. According to Caleb, this is the biggest money-making strategy.
I have also decided to add a middle tier (at u$d 70/m), where I provide Slack-based personal support, to help users of my plugin set-up GraphQL with WordPress, troubleshooting, and answering their questions. A user needed help to develop a functionality, so he decided to sponsor me <= my first sponsor ❤️
Finally, I added a higher tier (at u$d 700) for corporate sponsors. I plan to ask around in the WordPress community if their companies may be interested in participating. That would be a win-win: They get plenty of face from contributing to open source, and I get the certainty that I can make a living wage from my work and can focus on the development of the plugin (and not on marketing, which is not my forte).
This first-sponsor milestone is extremely significant for me: I've been working on my code for a few years, and it's the first time I can make a bit of money from it. (Until today, my highest source of income was writing articles for online magazines, using the ideas and material from my open source work.)
Cheers!
33 Likes
14 Comments
14 Comments
-
3
I've read Caleb's post before, and what I was wondering is:
After reaching your goal and open sourcing the plugin/repo, what's to prevent all of your sponsor from stopping to sponsor you?
Do you just trust that that doesn't happen?
I guess it wouldn't actually happen. There might be a few "malicious" sponsors that would stop the sponsorship after open-sourcing, but I suppose the percentage is small enough to account for.
EDIT: Also, congrats and good luck!
-
2
I've been also pondering about this. For the time being, I'll trust it doesn't happen, and even more, I'll try to make the situation not happen by winning their confidence, by making it clear that their sponsoring me is a win-win situation. If they see I provide a good service, and that I keep adding new features to my product, then it's to their advantage to keep sponsoring me and keep having access to the new features.
However, if trust doesn't work, there are ways to make it work. For instance, when they don't sponsor me anymore, they wouldn't have access to the private repo anymore with all the new features. So if I keep producing new valuable features, then they'll miss out on them.
There is an even harsher strategy (I don't think I'd do this, but the possibility exists). If I wanted to, I could force to have to install a new version of the private plugin (the one hosted in the private repo), whenever I release a new version of the free plugin. That is to say, the public and private plugins are always in sync with each released version. Then, if they ever stop sponsoring me, their version of the private plugin would obstruct them from upgrading the public plugin, and that would suck for them.
-
1
That makes sense. If you keep providing value that's the main selling point!
-
-
2
This comment was deleted 5 years ago
-
2
Haha, I read it again now and realize that sounded very weird!
Please disregard the term malicious sponsor forever 😅
-
-
-
3
Interesting model. Good luck!
-
1
Thanks! In theory, it makes a lot of sense. In practice, let's see, I hope it will work out
-
-
1
Congrats, it's good to find out general progress in Open Source.
My only question mark is about your 700$ for corporates. Think you should review it, most corporates with in-house developers would rather build their own implementation than ...
-
1
And then there's another thing: I really want to make a living out of my work. The lowest tier is u$d 14/m. So I need to get 50 people to join to make u$d 700/m. What is more effort, convincing 50 people, or a single company?
I think, after some time, getting 50 people is doable because of word of mouth. But at the very beginning is very difficult.
Say that for each 10 people or companies I approach, I get one to sponsor me. Then I'd have to write 500 emails to people, or 10 emails to companies. 500 emails is a lot of effort, and I can't afford it. 10 emails to companies, I can do that.
The sponsorship tier really is there so that I can attempt to make a living wage, which is my goal, while making the company save money on implementations they need, so it's a win-win.
-
1
u$d700/m is not a high amount for corporations. The average salary in the US for a backend developer is, I think, around u$d 100 k/y. If what they need to implement is needed by others too (say, integration with WooCommerce, sending notifications via Slack, etc), and they sponsor me to do it instead of using their own developers, they'll be saving plenty of money
-
-
1
That's awesome well done!
-
1
Thanks!
-
-
1
Congratulations!
-
1
Thank you!
-
-
1
Wonderful. Looking forward for more as to how many devs hope onto this type of model. :D
-
1
This comment was deleted 5 years ago
100 stars is nothing outstanding, and stars by themselves do not mean much (a more important indicator of the success of a project is number of watches and forks), but it's a good start, so right now I'm celebrating 🎉
The project is the GraphQL API for WordPress, a plugin to convert the WordPress site into a modern GraphQL server.
I learnt that having a good product is, all by itself, not enough to be successful. You need to go out there and talk to people. You need to post on social media, get newsletters to share you content, have followers to retweet your tweets. And possibly have some big shot talk about you.
And I'm struggling a bit with all of this, because I'm not good at marketing/social media.
In the meantime, while trying different ways to share news about my project, I keep improving the plugin: now it's at version 0.5 and will launch version 0.6 soon (which is a milestone all by itself! I'll talk about it once I release it).
I hope I can celebrate 1000 stars next 🤩
9 Likes
4 Comments
4 Comments
It took me around 1 year to develop the plugin. It's not complete yet, since the documentation is lacking, but I had the chance to present it in the Decoupled Days conference the other day, so I launched it. Now starts a new challenge: share it around
1 Like
Comment
About
I wrote a long blog post to explain this: https://leoloso.com/posts/introducing-the-graphql-api-for-wordpress/













Comment