Category Archives: Meetup Notes

The East Bay WordPress Meetup has a new location

Tech Liminal has been the venue for the East Bay WordPress Meetup since late 2009. In 2012, Tech Liminal moved from 14th Street to the Ask.com building at 11th and Clay. Now Tech Liminal has moved again, to The Port Workspaces in the Kaiser Mall at 344 Thomas L. Berkley Way (a.k.a. 20th St).

What you need to know about the new location

Access to the building is by key card only. There will be someone at the 20th Street entrance (the one under the big “344”, next to CVS) to let you in. If you’re late and no one is at the door, contact Anca or Cindy.

floor plan for Port Workspaces

The parking garage is closed on Sundays, but it’s not too difficult to find street parking. (You probably didn’t want to pay for the garage anyway.)

The escalator doesn’t run on weekends, so you need to take the lift elevator to the third floor. Walk straight through the lobby and you’ll find the elevator on your right just before the escalator appears on the left.

The roof garden is also closed weekends, but there’s an outdoor patio next to the space we’ve been using to meet.

Our exact meeting location may change depending on the number of RSVPs. Right now we’re on the third floor, past the bar, next to the outdoor patio.

We’re still getting pizza thanks to A2 hosting.

 

March 2016: Pricing and Packaging WordPress Services

We had a jam-packed meetup in March despite the rain, which just goes to show you that everyone wants to learn more about pricing, even if they’ve been freelancing for a while.

Here are some highlights of our discussion about pricing WordPress services.

Charge for Discovery

Discovery is the process of figuring out exactly what your client needs. In many cases, clients don’t know about all the possibilities, so you have to learn about their business and their goals in order to know what kind of functionality they require (e.g. events, e-commerce). You also need to find out what kind of content they have or plan to have, and whether they need content creation services in addition to website design and development services.

Discovery is important consulting work, in addition to being necessary for the creation of an accurate scope of work/estimate/proposal. Time spent in discovery saves time in the actual development process and helps prevent the “Can you also do this?” and “Do it this way instead” moments that delay product launches.

Get Money Up Front

Make sure there is a deposit in the bank before you start work. There’s no one perfect payment schedule–different contractors charge anything from 10% to 100% in advance.

Charge for Project Management

Even if you are not working with subcontractors, every project includes a project management component. This includes client communications: emails and phone calls to keep the client updated on your progress. (If you schedule these on a regular basis, you can avoid interruptions.) Some clients need a lot of hand-holding. Set boundaries so you can get your work done.

Include Training and Documentation

Writing documentation is time-consuming. Don’t underestimate the time it will take to create custom help files. One option is to make a video recording of the site walk-through session with your clients, so they can go back and replay it instead of asking you questions.

Practice Saying “We can do that, but it will cost extra.”

Once you have defined a scope of work, stick to it. You’ll end up making $2/hr if you let clients talk you into adding on extra tasks. If a timely launch is important, save all additional work for a second phase.

Not All Work Hours Are Billable

If you’re new to freelancing, you may be shocked at how much non-billable work you have to do when you’re self-employed: marketing, invoicing, bookkeeping, etc. Plus you need to save at least a few hours a week just for keeping up with developments in your field–more if you are learning a new programming language. When you set your hourly rate, keep in mind that you will not average more than 20 billable hours in a week.

Packages Have Pros and Cons

If you create fixed-rate packages like the ones at Theme Valet, you can save a lot of time on writing proposals. But be very clear on what those packages do and don’t include, and make sure that you are making an acceptable hourly rate by tracking the time it takes you to produce one of these packaged sites. (You will get quicker as you go on as long as the tasks involved remain identical.)

Track Your Time

Even when you are not billing by the hour, track your time. That way you’ll know what you’re really making on a project, and where you need to increase what you’re charging. Many tasks will take longer to complete than you expect; some will go more quickly.

Figure Out Where Your Sweet Spot Is

It’s easier to be really good at something if you specialize, whether it’s in a particular framework or a particular vertical. Trying to be all things to all people is a recipe for failure.

Develop a Network of Fellow Professionals

Once you know which clients you want, you need a place to send the clients you don’t want. You’ll also need people to team up with if you want to offer multiple services. If you’re mainly a developer, get to know designers, SEO experts, and content strategists as well as other developers. Making a good referral can bring a client back to you later.

Conduct Site Reviews for Existing Clients

Sonja London conducts annual site reviews for existing clients, to make sure that their websites still serve their needs. This is a good source of additional business, because eventually those clients will need either add-ons or redesigns.

Charge for Support

All WordPress websites require regular support and maintenance, and all websites of any kind require backups and security. You can generate predictable recurring revenue by providing monthly support packages. If you don’t want to do support yourself, set your clients up with a service like WP Site Care.  And do your best to set them up with a good hosting company that provides backups and security scans.

Charge a Reactivation Fee

Ever have a client fall off the planet and leave you hanging with a half-finished job? Make it clear to clients that you will charge them to maintain development sites and to reactivate their projects if they go months without communicating. It’s going to take you extra hours to get back into the groove of that project, and there’s no reason to bear that cost yourself.

Be Prepared to Launch without Content

Projects often get hung up waiting for clients to produce content. If content creation is not one of the services you offer (and therefore your responsibility), you need to protect yourself from delays. Some options include launching a site with filler text if clients can’t meet their deadlines, or refusing to start a project if the content required for launch is not complete.

Dec 2015 Meetup Notes: Page Builders and Pet Peeves

Things change rapidly in the WordPress world. The content in this post is more than a year old and may no longer represent best practices.

To lay the groundwork for the main presentation about making WordPress easier to use, we asked attendees to share their WordPress pet peeves. Several people mentioned the need to learn JavaScript, while at least one looked forward to being able to work more with JavaScript and less with PHP. Others talked about the constant maintenance and updates and the way things can break after a major update. Those newer to WordPress addressed the massive amount of trial and error involved, even when following detailed tutorials like those produced by Tyler Moore. And several people talked about the way WordPress was sold as an easy solution, even though it’s really not that easy.

Robby McCullough talking to the East Bay WordPress Meetup

Robby McCullough from Beaver Builder joined us on December 20th to give a demo of his product and answer questions from skeptics and enthusiasts alike.

Meetup members wanted to know how Beaver Builder ($99 for personal license) differs from Visual Composer ($34 for single-site license), apart from the fact that you can use Beaver Builder on unlimited sites. Robby said that people who had used both had told him the Beaver Builder interface was nicer and easier to grasp, but that the biggest thing is that if you deactivate or uninstall the plugin, your page is not left full of meaningless shortcodes.

Instead, Beaver Builder converts your content into HTML within the WordPress editor, removing all divs and layout information but retaining heading tags, italics, lists, and media.

There was some discussion about whether it might be possible to export specific layouts for use in building themes, without requiring the plugin. (ACF does something like this.)

As there are several Genesis fans in the group, people wanted to know about using Beaver Builder with Genesis. Lots of people in fact do this, and some also use Beaver Builder with the Dynamik website builder for Genesis. (Beaver builder aims to modify the content within a post or a page, rather than your theme as a whole, which is what Dynamik tweaks.) There is a free plugin called Genesis Dambuster to make integration easier.

You will, however, have to use the Beaver Builder theme in order to take advantage of the pre-made templates.

Sallie found she was able to create a simple landing page for a client based on one of said pre-made templates after the 5-minute tour, though she needed help with turning off the sticky header. Fortunately there’s a helpful Beaver Builder community on Slack to answer questions like that.

Chris Burbridge is actually teaching classes on using Beaver Builder, for anyone interested.

Thanks to A2 Hosting for the pizza, Pagely for the hosting, and O’Reilly for their partner discounts.

Oct 2015: Top Developer Tips on Good WordPress Code

Things change rapidly in the WordPress world. The content in this post is more than a year old and may no longer represent best practices.

Fred Meyer from WP Shout joined us via Skype to give his presentation (also seen at WC Denver) on “What I learned about WordPress development by interviewing 15 13 of the best WordPress developers.”

Top Takeaways

Good WordPress code is not distinguished by difficulty, innovation, or cleverness. The key to good code is clarity. Will someone who looks at your code know what you were trying to do and why? Will you know if you come back to it 6 months later? Can your code serve as a good example for people who are learning to code?

Persistence and curiosity are qualities you need in order to become a good developer. The need to understand why and how code works, it will motivate you to learn. You develop skill through continued practice. You don’t have to be a genius to be a WordPress developer. You just have to keep working at becoming better.

Don’t chase the shiny. Once you have found tools that work for you, you don’t need to try every new one that someone mentions. Just because something is new and popular doesn’t necessarily mean it’s better than what you’re already doing. Before you jump in, make sure there’s going to be an advantage over what you’re already doing.

The Codex is your friend–and so is the code. Almost everything you need to know is in the WordPress Codex, but to really understand how WordPress works, look at the core code.

Additional Notes

Fred created his slides using reveal.js. There is a free plugin called Presenter that makes use of this if you’d like to try it.

Fred is a huge fan of the CSS pre-processor SASS. We had a presentation about CSS pre-processors at the meetup a few years ago. SASS makes writing CSS more like writing PHP. There’s a free cross-platform SASS compiler called Koala if you’re not big on the command line.

Jermaine Holmes won the free copy of Up and Running: A Practical Guide to WordPress Development.

WP Shout has produced handy stickers with tips on some of the most common WordPress conditional tags. Trivia for the day: is_dynamic_sidebar does not check to see whether you are in a sidebar file, but whether there are any widgets activated in any sidebars on the site.

WordPress Hosting Resources

Prior to Fred’s presentation, the group had a discussion about site speed, performance, and hosting. The single biggest factor in your site’s performance is your hosting company. The best caching and performance tools (e.g. memcached, OPcache, APC) have to be installed on the server and are not available with most cheap shared hosting accounts.

Fortunately, there are now many hosting companies that specialize in WordPress.

The first was our sponsor (and host of this site) Pagely, which still has options for small businesses even though they have transitioned primarily into enterprise hosting. Pagely uses Amazon’s servers. They have been fantastic in terms of up-time, support, and security.

There are plenty of other options, however, including the Turbo service from our new sponsor A2 Hosting, Flywheel‘s option to stage a site for free before transferring it to a client, and GoDaddy‘s new inexpensive managed WordPress hosting plans. Each of these different providers offers something unique.

To help you decide, here are some recent comparisons of managed WordPress hosting providers:

Sept 2015: Installing & Configuring Security Plugins

Things change rapidly in the WordPress world. The content in this post is more than a year old and may no longer represent best practices.

What’s the Hardest Thing About WordPress?

Prior to the security plugin demos, we had a discussion about what people find difficult about WordPress, based on our own experience and that of our clients. Here’s what people had to say:

  • Ted—People expect WordPress to be like Wix, with great UI elements you can just drop in. He’s taken to using Shortcodes Ultimate to help with this. Pieter Hartsook recommends Visual Composer (or similar) and front-end editing.
  • Karla—Understanding that you need plugins to do anything. She’s a pretty good searcher, so doesn’t think finding and evaluating plugins is all that hard.
  • Sharihar—In Joomla you can put an extension (plugin) on just a particular page, and he hasn’t seen the ability to do that with WP. Also he found theming for Joomla easier—there’s more separation of the PHP and the HTML/CSS. Widgets also puzzled him.
  • Sallie—clients can be puzzled by the widgetized home pages in Genesis—they expect to be able to go to the home page and edit it.
  • Ted—the way your widgets depend on your theme—they will disappear/move around when you change themes
  • Bill—Trying to simplify the admin and client-proof it.
  • Ted—It really helps clients to have a UI set up where they know what type of content to enter where. Red8 does this via ACF, and it’s easier for clients, but harder to use any of that information on another page because it’s all stored as post_meta.
  • Karla—The whole concept of databases and why WordPress—she finally started to understand about retrieving the information and displaying it in multiple places.
  • Pieter—as consultants we need to take a longer view and think about what the client is going to need in 3 months or 6 months. WP’s extensibility is an advantage and you don’t always want the quickest solution.
  • Ted—Media management. Can you just bulk-upload images and display them in multiple places? Pieter suggests storing them on Flickr and pulling them into WP and elsewhere.

iThemes Security

(Demo’ed by Pieter Hartsook.) The first thing to be sure you do is whitelist your own IP address. After that the plugin will give you a list of top-priority actions. Features include malware scanning, 404 protection, block lists, changed file detection, and brute force protection. They also provide a series of instructional videos in addition to this video overview.

Wordfence

Pieter Hartsook showed us the new, attractive interface of Wordfence Security. Wordfence scans for malware and also compares your themes and plugins to the WordPress repository.  Here’s an overview video with a feature tour:

All in One WP Security and Firewall

Ted Curran did a demo of All in One WP Security and Firewall. It has a straightforward dashboard that shows you critical issues and your security points grade. In addition to the usual sorts of security features, AIO WP Security includes comment spam protection and text copy protection.

Security Plugins and Your Database

Security plugins log activity. The logs normally get stored in your database. iThemes Security creates three tables: _itsec_lockouts, _itsec_log, and _itsec_temp. You can tell the plugin how long to store the logs in order to keep them from taking up too much space.

iThemes Security Log Settings

Wordfence, on the other hand, creates 18 tables, which can amount to quite a bit of database clutter.

wp_wfBadLeechers
wp_wfBlocks
wp_wfConfig
wp_wfCrawlers
wp_wfFileMods
wp_wfHits
wp_wfHoover
wp_wfIssues
wp_wfLeechers
wp_wfLockedOut
wp_wfLocs
wp_wfLogins
wp_wfNet404s
wp_wfReverseCache
wp_wfScanners
wp_wfStatus
wp_wfThrottleLog
wp_wfVulnScanners

All in One WP Security and Firewall creates 5 database tables, for events, failed logins, global meta, login activity, and login lockdown.

All in One WP Security and Firewall database tables

All three plugins have free and paid versions. If you don’t have a favorite yet, try them out and pick one. Any of them should give you good protection.

Passwords

One very important factor in good security–not just with WordPress but anywhere on the Internet–is using strong passwords. Sallie just started using Dashlane, which lets you sync passwords between devices for $40/year. Ted uses LastPass, which has a $12/year premium version to allow use on and syncing across unlimited devices. 1Password offers sync via Dropbox, iCloud, or Wi-Fi, all of which seems a little clumsy, and you have to buy a license for each device. (Plus it’s just kind of annoying.)

In addition to passwords, utilities like these can also store credit card information, personal information, and license keys. Using them makes it possible to use long random passwords (the most secure kind) without having to try to remember them.