An Quick Update on OptimaList

We have been so busy with client work the past few months that we’ve barely had a moment to breathe, much less work on OptimaList.

I did get a little more done around the end of October/beginning of November and the plugin is possible 50% completed.

For the first time since July, I have a little break in my schedule between big projects and I want to get a good amount of work done on OptimaList in the coming weeks.

Feeling Panicked

Did you ever try to start a new company, make a new product, take care of a 2 year old, house, and husband, and do client work while trying to go off two antidepressants and a benzo (so you can add being pregnant and taking care of a baby to all the other things you’re doing)?

Yeah, I don’t recommend it. When I have too much to do, nothing gets done. And getting behind just makes everything worse and panic sets in. Add in drug withdrawal, insomnia, and a sick toddler and you end up with negative energy and even more negative time. Oh, don’t forget my normal chronic illnesses that also eat up my energy.

Nothing has gotten done on OptimaList in the past month and I hate that fact. I’m very aware of how some of you generously donated to help Sarah and I (and now Trisha Salas too!) get going with this. I wanted to have the product out by now. Not maybe 1/3 coded.

I’m grateful though that people believe in us enough to support us. That I do have client work bringing in money. That my toddler is normally healthy and happy. That I have great co-founders to help get this company going.

It’s just hard to remember to focus on the good stuff sometimes.

Why OptimaList is Not Finished Yet

For the sake of transparency, I’m going to talk about why OptimaList is not in beta or finished by now.

There’s lots of external reasons I had no control over, such as a two-year old son and client work and summertime.

But the main reason was me. Oh, I wasn’t procrastinating or anything. I work on it as often as I can.

But I wanted to write the best code. The most perfectly structured and as up-to-date code as possible. Or as possible as it can be with WordPress. I decided to only support PHP 5.3+, although I wish it was 5.4+.

PHP 5.3 means namespaces. I hadn’t been able to use them before so I had to read up on them.

I wanted to use the MVC design pattern. Had to read up on that since it’s been awhile. And on how best to use it in a WordPress plugin.

You know how the internet goes. You read one page and then you end up reading twenty more.

It took awhile for me to set up my models, views, and controllers as I wanted. This was just setting up the file structure and creating the namespaces, setting up the classes. No actual working code.

And then there was the templating system.

What do I have that works right now? A dashboard widget that says “test”. JS and CSS files that load but are empty. Two custom post types. An OptimaList menu item. Several metaboxes on the add new list page that are just blank or have one test form field.

Let me talk about the metaboxes for a minute. I’m not using CMB2 or anything because I don’t want to depend on others’ code for this plugin. So I set up my metabox controller, calling a new object for each metabox. Then I realized I was calling save_post for each metabox object, when it really only needs to be called once. So now I need to rethink some of my metabox code. This is just an example of how I’ve ended up overly complicating things.

If I would just write this plugin straight out, not worry about MVC or anything, this plugin would be done. Just write out each metabox code.

add_meta_box( 'my_meta_box', 'My Meta Box', array( $this, 'metabox_content', 'optimalist', 'normal', 'high' );

But instead I have an abstract class that I’m extending. That class contains:

 add_meta_box( $this->main->get_plugin_slug() . '_' . $this->slug, $this->name,
 array( $this, 'metabox_content' ),
 $this->post_type,
 $this->context,
 $this->priority );

I’ve been making this plugin’s code much more complicated than it needs to be. I’ve been having fun, but it’s taking much longer than I expected. I’m trying to stop and just write the code without making it overly complex, but it’s hard.

This whole endeavor I’ve been doing more than I have to. From setting up this website to coding the plugin. But I think it will be worth it in the end.

A Personal Thank You To Our Early Supporters

Dear Friends and Colleagues,

With your generous donations we were able to secure the WP Engine hosting account needed and purchase the Easy Digital Downloads extensions we needed. Every donation that comes in is like a little “Atta Girl – Go Get ‘Em” pat on the back. It feels good when people we really respect and look up to as leaders take a few minutes to send us that little emotional boost, and we wanted to write up a blog post honoring their support.

Thank You To Our Early Supporters

Thank You Early Supporters of OptimaList.io

KIM DOYAL | @KIMDOYAL

I met Kim at WordCamp San Francisco 2013. Not only is Kim one super productive lady, she is one of the funniest people to hang out with as well!  Cindy and I both look to her as a shining example of how well a woman can navigate, manage and direct her own professional WordPress career. Thank you, Kim, for your donation and support. Cindy and I really truly appreciate it; it means a lot.

DEVIN WALKER | @INNERWEBS

I’ve known Devin for a while via Twitter & absolutely love what he is doing with @wordimpress and the @GiveWP Plugin (which we use to power donations made to OptimaList.io!) Cindy and I are both drawn to small companies run by people of integrity who value transparency and responsible stewardship of their talents and resources. That, to us, is what WordImpress and GiveWP embody. We are looking forward to getting to know Devin and his team better this year. It’s really fun to build new, promising professional connections outside of the big agency life. Thanks, Devin!

PIPPIN WILLIAMSON | @PIPPINSPLUGINS

I’ve helped spread the word for a lot of friends in WordPress with different crowdfunding campaigns for different needs – be it personal or professional – and in every campaign, I have noticed there are a handful of community leaders who consistently “pay it forward.” Pippin is one of those and I’m not going to lie, Cindy and I both were all smiles when we saw his donation come in. We absolutely look to Pippin’s business model and transparency as a standard we are committed to emulate with OptimaList. Thank you, Pippin – you’re awesome!

JOSH POLLOCK | @JOSH412

I met Josh through Twitter and then in person at the first ever PodCamp last fall in Dallas. Now, let me tell you, Josh is one smart dude! I can generally follow along with most high level development talks, but when I sat through Josh’s PodCamp talk I was blown away! Not only is he an incredibly talented developer, he is an articulate and passionate teacher. Most recently he developed and launched  @CalderaWP – his own premium plugin. We’ve been watching his process closely to glean insights! Thanks, Josh, for taking the time to learn about our plugin and support us. We really appreciate it!

NICK HASKINS | @NPHASKINS

Ok. Not gonna even mince words. When Nick Haskins sent his very generous donation, on the first day of our kick off, we were blown away! Cindy and I have both followed Nick on Twitter for a while and LOVE what he’s doing with the Aesop Story Engine. In fact, when we were trying to decide what we wanted to do for 2015, building a theme for Aesop was actually on the list, and that’s still something we want to do later on down the road. Cindy and I were genuinely humbled by his donation, it means a lot. Truly, Nick, thank you.

RYAN HELLYER | @RYANHELLYER

Ok so here’s the coolest thing about Ryan: he lives in Berlin and his donation makes OptimaList an “Internationally Supported Plugin!” I seriously think that’s pretty awesome! Maybe OptimaList will really take off and Cindy and I can travel to Berlin and present at one of Ryan’s WordPress Meetups or WordCamps. That’s a legit business expense, right!? But seriously though – thank you Ryan, for your support!  It’s been really fun to build our friendship online over the past year or so and your donation meant a lot!

ZACK ROTHAUSER | @ZROTHAUSER

I used to work with Zack at WebDevStudios and he is – hands down – one of the best front end developers I’ve ever worked with. He is so very talented, always professional, incredibly responsible and refreshingly well mannered. He’s continued to be a good friend even after we both left WDS and I really appreciate his support. He’s an amazing young man and I’m excited to see where this career takes him. He has everything going for him! Thanks so much, Zack! Having your support is really awesome!

KRISTAL | @STRIKEAFLAME

Kristal is close and personal friend of Cindy’s. As soon as she donated, Cindy pinged me in the Slack room and was all :smiles:!  Thank you, Kristal, for your donation and support. It truly means a lot!

Moving Forward With OptimaList.io

While Sarah is working part time for ServerPress and Cindy is managing a couple of small client projects (mostly Expression Engine to WordPress migrations) the rest of our time has been poured into getting the development cycle off and running. Cindy recently had an awesome strategy and development review with our former boss and best buddy, Paul Clark, and things are lining out well. We hope to begin full production within the next two weeks. Ideally we want to finish production by the end of the summer, but we all know how development timelines go!  We will keep you posted!

It’s Never Too Late To Donate!

If you would like to donate to our cause, check out our donations page for more information. We have actually turned around and reinvested  100% of the donated money back into the WordPress economy. Know that any donations received go directly to business expenses – we are not paying ourselves to develop our own plugin. But every little bit helps and it feels pretty good to be able to push that money back into the community.