January is the month to make plans for the year ahead. From the very first day I’ve made up my mind to “rebranding” myself and my business in this year. I’m determined to become a professional WordPress developer and 1Fix.io should focus on providing the best WordPress plugin solutions to the market.
It started from a blog post
To accomplish both goals I push myself to be more active in the WordPress community. One thing I did is to join the WordPress related groups on LinkedIn and take part in discussions. On January 28 I saw a discussion titled “Releasing a plugin together” with a blog post to introduce the original idea, I thought that will be pretty interesting.
I’m the first one responded to Slobodan on LinkedIn, soon I got his email about free plugin ideas and how to manage communications. Things seemed roll out really fast, by January 30, we’ve built a team called “WPCollab”, got a domain (wpcollab.co) and set a P2 on the subdomain (make.wpcollab.co), created an organization on GitHub to host our future project repos, and decided to develop our first plugin called “Hello Emoji“. With this plugin, when a user types a simple “:” in the editor, an autocomplete list of emoji suggestions will be prompted, like what Github did.
When Slobodan asked me about managing communications, the tool I recommended was Trello. Last year when I started to use Trello in a client project, I fell in love with it right away. It’s a free tool but with everything should be charged in a premium service. How can anyone not love it! Even though, thanks to Christian Foellmann (@cFoellmann), who suggested the team use P2 to keep things simple and stick to WordPress. So I used P2 for the first time and quite enjoyed the Twitter-style communications.
The P2 started with 4 proposals from Josh Pollock (@Josh412), each of us kept proposing 1 or 2 plugin ideas in the next day (here’s my proposal). To keep up the momentum we decided to choose @vengiss‘s idea – “Emoji supports for posts“, and Josh named it “Hello Emoji” as an homage to the very first WordPress plugin “Hello Dolly”.
Get our hands dirty
Josh also took the part to be the PM and set up the repo of “Hello Emoji” on GitHub with Slobodan. He did a really great job to create the labels and layout the timeline on milestones, that helped a lot for giving us a clear picture to see what needs to be done in each phase.
In the milestone 0.0.1, we had 3 important decisions to make:
- Decide on the plugin structure
- Decide on a emoji library
- Decide on which settings are needed
I’d like to say we’re so lucky to have @cFoellmann in WPCollab when talk about the plugin skeleton. He did the very first base proposal for Hello Emoji and stick to the best practice whenever we have doubts about which methodology should be adopted. I knew nothing about autoload before this project, and didn’t think we needed it in such a small project. After reading his code I do agree with him that autoload is an easy concept to implement.
The decision on emoji libraries is to adopt jQuery Emoji Plugin and jQuery.textcomplete. The jQuery Emoji Plugin is used to convert emoticons to emoji when a page renders, and the jQuery.textcomplete is used to display the autocomplete list of emoji suggestions in the text editors for post content and comment. When Javier (@vengiss) proposed the Emoji plugin idea on the P2, I thought the challenge would be how to enable the autocomplete in TinyMCE (Visual mode), and Javier agreed after he did some tests. We’ll try to add support for TinyMCE in the future release, but when we release Hello Emoji 0.1.0, the autocomplete list of emoji suggestions will only work on editors in text mode.
As to the plugin settings, we discussed there would be 3 settings in issue #6:
- Enable emoji per post type
- Enable emoji in comments
- Enable autocomplete
But when we were going to implement these settings, we figured out we should keep the autocomplete all the time (it’s the main feature in Hello Emoji), and enable emoji for some post types but not the others, is not practical and keep things unnecessarily complicated. At last we only keep one setting for Hello Emoji, the user could choose enable emoji in comments or not. Since only one setting left, there’s no reason to create an extra setting page for it, so we add our setting field to the default section of Writing Settings page.
Needless to say I learned a lot from folks in the WPCollab. When I post my proposal to the team P2, I’m not so sure if it’s appropriate because the plugin seems only benefit myself. Josh’s reply really encouraged me. I didn’t have too much experiences communicate with developers (I haven’t met in person) online, and developers sometimes could be pretty critical on stuff they’re good at. The response from Josh made me feel being a part of the team and want to keep involved in the following projects.
Get your hands dirty, too
The spirits of Open Source project are learning and sharing. Today everyone’s talking about there are more than 20% websites are built on WordPress, but we all know this can’t happen if Matt didn’t hold such strong belief on sticking to GPL. Even I monetize from building WordPress websites and plan to release premium plugins this year, I totally support the 100% GPL policy in any circumstances.
At the time of this writing, we’ve closed 49 issues and got ready for WordPress.org submission. We’re still calling for anyone who’s interested in designing and developing a plugin to join us. We hope you could get in touch with us on our P2, download a copy of Hello Emoji and test it, open an issue whenever you think anything should be improved. You’re also welcome to send a tweet with hashtag #WPCollab and let us know you like or dislike what we’re doing.
I’m so excited about releasing Hello Emoji on WordPress.org in the next few days. See you soon on the support forum then!
I’m a senior web developer helping clients build their websites to grow businesses. Currently I’m based in Taipei, Taiwan.
I write things about WordPress, AngularJS and life. Whenever you’d like to find someone to talk about these topics, just get in touch!