Event Espresso 2016 Year in Review

Well, another year is behind us, and we’ve moved on to 2017. As we wrap up an incredible 2016, we feel grateful to be able to partner with our customers and together push the boundaries of event registration and ticketing. We can’t help but get excited for what 2017 will bring.

Event Espresso 2016 Year in Review #2-2

An Ongoing Commitment to Customers

In 2016 we saw a continued commitment to the success of our clients, significant new product innovations, and a shared team passion for giving back. We released dozens of new features, payment gateways, and integration’s that made our event registration tools more powerful. We doubled down on patching holes, fixing bugs, and optimizing code.

A short list of things we accomplished in 2016:

The Year in Development & Support

Our development and support teams were very busy writing great code, implementing new systems, and helping customers. The rest of the team doesn’t blog much, so I’ve compiled some things they’ve accomplished over the last year.

Development & Support 2016 Year in Review

Team Collaboration in 2016:

  • Event Espresso 4 Core updates released: 39
  • Gateway updates released: 23
  • Add-on updates released: 9
  • Software version updates across all products: 97
  • Payment gateways published: 6
  • New add-ons released: 3
  • Cups of coffee devoured: ~ 3,520

Development Team 2016 Year in Detail:

  • Code commits to Event Espresso 4 Core: 5,281
  • Code commits to add-ons & gateways: 1,451
  • Code commits to all products: 6,732
  • Total lines of product code maintained: 590,155
  • Code commits to eventespresso.com: 464
  • Code commits to eventsmart.com: 1,678
  • Internal issue/feature tracker tickets resolved: 775

Sales & Support Team 2016 Year in Detail:

  • Support forum topics created: 5,691
  • Support forum replies: 13,342
  • Sales/support emails per day: 189
  • Internal issue/feature tracker tickets created: 1,136

Giving Back to WordPress

We never lost sight of what’s important to our company — giving back. In 2016 our team spent roughly 120 hours giving back to the WordPress communities, attending, sponsoring and volunteering at WordCamp throughout the US.

A few ways we’ve given back to the WordPress community in 2016:

  • Attended WordCamp San Diego — Another one of my favorite WordCamps. Why? Not just because the location is so great, but because of all the beautiful WordPress peeps that attend! With big names like, Adam Silver, Carrie Dils, and Chris Lema on the speaker’s list. You can’t go wrong.
  • Attended/Sponsored WordCamp Salt Lake City — As always, WordCamp Salt Lake City was a fairly small and informative event. Since this WordCamp is in my home state, and one of our ex-employees, Chris Reynolds organizes the event, I always make it a point to show our support.
  • Adam Warner at GoDaddy headquarters

    Image credit: Sitelock

    Attended/Sponsored WordCamp Phoenix — This is probably one of my favorite WordCamp’s this side of the Rio Grande! My favorite part of the 2016 WordCamp Phoenix was the visit to GoDaddy Headquarters, where I got to slide down an adult-sized green slide, see their brightly colored desks, bikes, and pedal-powered go carts.

  • Attended WordCamp Vancouver — Our developer Michael Nelson boarded a ferry, a seaplane, and rode in a taxi, both ways, just to attend.
  • Sponsored Sunday Breakfast at Website Weekend Los Angeles — We decided to reach out to the organizers of Website Weekend Los Angeles and sponsor the Sunday Breakfast expenses at their event.
  • Organized Many Local WordPress Meetups — This past year, I organized and presented at 12 local WordPress Meetups in my community throughout 2016. I’m pretty sure a few members of the Event Espresso Team also attended a local Meetup in their community.
  • Conducted a Hosting Survey — I already mentioned this above, however, I feel this is something worth mentioning again, as the hosting survey helps the WordPress community in general.
  • Sponsored Kitchen Sink WP — When Adam Silver asked if I wanted to sponsor one of his podcasts, I jumped on the opportunity in a flash. We didn’t receive much traffic from the sponsorship, but it gave us the warm and fuzzies to help out.
  • Developer Contributions — Combined, our developers spent approximately 80 hours communicating with various WordPress developers, submitting patches, and participating in WP REST API development in 2016.

Going Into 2017

We are all looking forward to 2017 and releasing great new features for Event Espresso. In my opinion, we spent too much time focusing on things outside of our core product in 2016. For instance, we spent a lot of time making Event Smart better, working on a secret project, and fine-tuning Event Espresso 4 core. Don’t get me wrong, these are great uses of time. However, it didn’t help improve our core product, nor allow us much time to work on things that matter to our customer’s, such as recurring events and automated email reminders.

The best way to predict your future is to create it

We love producing great event booking software and are committed to improving the quality and reliability of the core product. Therefore, our primary focus going into 2017 is making Event Espresso better. Better than ever before. The Event Espresso 4 core developers have already begun planning the next phase of Event Espresso, started refactoring core systems and preparing for the next major features. I am honestly looking forward to a fantastic year in 2017.

What would you like to see in 2017?

Let us know in the comments below what your most anticipated features are or cast your vote on your most wanted feature on the feature roadmap.

Related Articles

4 thoughts on “Event Espresso 2016 Year in Review

    • Thanks for your continued patience! We still have many weeks/months of work ahead of us before a few of the major features will be ready for beta testing and release. Both the automated messaging and recurring events features are required to interface with many different systems throughout and need to account for a broad range of scenarios. So we have to create new interfaces or rewrite existing features along the way.

  1. Howdy Seth and EE Team,

    Thanks for such great work in 2016 and for contributing so much to the WP community.

    It was terrific to hang out with you a bit at WordCamp San Diego.

    I’m looking forward to another great year with EE and can’t wait for the recurring events for EE4. 😉

    Keep on rocking event management on WordPress!

Share a Reply or Comment

Your email address will not be published.

Need help with Event Espresso? Create a support post in our support forums

Event Espresso
[gravityform id=116 title=false description=false]
<script type="text/javascript">var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});</script> <div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_116' ><form method='post' enctype='multipart/form-data' id='gform_116' action='/2017/01/event-espresso-2016-year-review/' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_116' class='gform_fields top_label form_sublabel_below description_below'><li id="field_116_5" class="gfield gfield_contains_required field_sublabel_hidden_label field_description_below gfield_visibility_visible" ><label class='gfield_label gfield_label_before_complex' >What is your first name?<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name no_last_name no_suffix gf_name_has_1 ginput_container_name' id='input_116_5'> <span id='input_116_5_3_container' class='name_first' > <input type='text' name='input_5.3' id='input_116_5_3' value='' aria-required='true' placeholder='First name' /> <label for='input_116_5_3' class='hidden_sub_label screen-reader-text'>First name</label> </span> </div></li><li id="field_116_1" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_116_1' >What is your email address so we can follow up with you?<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_116_1' type='text' value='' class='medium' placeholder='hello@example.com' aria-required="true" aria-invalid="false" /> </div></li><li id="field_116_2" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_116_2' >Tell us about your concerns below<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_textarea'><textarea name='input_2' id='input_116_2' class='textarea medium' placeholder='What kind of events are you planning?' aria-required="true" aria-invalid="false" rows='10' cols='50'></textarea></div></li><li id="field_116_6" class="gfield field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label gfield_label_before_complex' >GDPR Agreement</label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_116_6'><li class='gchoice gchoice_116_6_1'> <input class='gfield-choice-input' name='input_6.1' type='checkbox' value='I consent to have this website store my submitted information so they can respond to my inquiry.' id='choice_116_6_1' /> <label for='choice_116_6_1' id='label_116_6_1'>I consent to have this website store my submitted information so they can respond to my inquiry.</label> </li></ul></div></li><li id="field_116_3" class="gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible" ><div class='ginput_container ginput_container_text'><input name='input_3' id='input_116_3' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></li><li id="field_116_4" class="gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible" ><div class='ginput_container ginput_container_text'><input name='input_4' id='input_116_4' type='hidden' class='gform_hidden' aria-invalid="false" value='https://eventespresso.com/2017/01/event-espresso-2016-year-review/' /></div></li><li id="field_116_7" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_116_7' >Email</label><div class='ginput_container'><input name='input_7' id='input_116_7' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_116_7'>This field is for validation purposes and should be left unchanged.</div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_116' class='gform_button button' value='Send my message' onclick='if(window["gf_submitting_116"]){return false;} if( !jQuery("#gform_116")[0].checkValidity || jQuery("#gform_116")[0].checkValidity()){window["gf_submitting_116"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_116"]){return false;} if( !jQuery("#gform_116")[0].checkValidity || jQuery("#gform_116")[0].checkValidity()){window["gf_submitting_116"]=true;} jQuery("#gform_116").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_116' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='116' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_116' value='WyJbXSIsIjBiNjdjZjkyMDUzOWUxOWY5Y2NiZjIwMzM4YjA1Mjk4Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_116' id='gform_target_page_number_116' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_116' id='gform_source_page_number_116' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_2" name="ak_js" value="221"/><script>document.getElementById( "ak_js_2" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div>