Tag: development

WordPress Grand Rapids Building Web Apps

Building Web Apps with WordPress: Jan 2015 meetup

We talked about Building Web Apps with WordPress at our Jan 15, 2015 meetup. Below are the notes.

WordPress Grand Rapids Building Web Apps

WordPress as a Web App

Presented by Brian Richards

  1. Components
    1. Custom post types
    2. Custom taxonomies
    3. Custom meta: post meta, user meta, comment meta
    4. User roles & restrictions
    5. Post relationships (via Posts 2 Posts)
  2. Methods
    1. WP_Query
    2. pre_get_posts: can be more specific than above
    3. $wpdb: can be even more specific than above
    4. AJAX: save users time and reduce server load
  3. Tools
    1. zapier.com: like IFTTT, but with more options
    2. AppPresser.com: Convert your WordPress website into a mobile app, publish on the app stores
    3. WP-API (coming soon): Access your WordPress site’s data through an easy-to-use HTTP REST API

Misc.

  • Ask: who is your core audience? What are they trying to do with the data? Answers help with information architecture.
  • BadgeOS: free plugin that lets you easily create achievements and issue sharable badges as your users succeed
  • Why start with WordPress? You can build very quickly because of the tools available in WordPress.
  • Caching: use transients, Varnish, memcached

Using WordPress to Power an Application: How we built a rewards platform in just a few weeks

Presented by Bob Orchard

  1. Choose Your Features
  2. Plan Your Development
  3. Install WordPress
  4. Create Your Plugin

Announcements

We’ve started planning WordCamp Grand Rapids 2015! We’ll have our first volunteer meeting after the next meetup (Feb 19). You’re welcome to join us!

Dev Environments and Version Control: Dec 2014 meetup

We talked about Development Environments and Version Control at our Dec 18, 2014 meetup. We talked about ServerPress, Git, and developing locally. Below are the notes.

DesktopServer

Gregg Franklin gave a demo of DesktopServer, a local server package which runs on Mac and Windows. He showed how to create and manage local development sites. He also showed how to deploy local sites to servers. Here’s a video of Gregg’s demo:

Git and developing locally

Brian Richards spoke about Git and developing locally. Here’s his presentation. Below it are notes from the talk.

Advice

  • You should develop locally so you can test locally, not on live site.
  • You should use Git even if you work solo, because of version control.
  • Commit messages should be short but descriptive.
  • Commits should be atomic: change one thing at a time.
  • Git stores only the changes that have been made; SVN duplicates files.
  • Brian doesn’t use WordPress as submodule; has run into issues. Checks in root and everything inside it, except wp-uploads.
  • Brian doesn’t store database in Git.
  • Always check out changes before you make your commit.

Resources

  • Git: version control system
  • Dploy.io: deploy from GitHub, Bitbucket or your own repositories to one or many servers in one click
  • SourceTree: Git GUI
  • Github: Git host
  • Beanstalk: Git host
  • Bitbucket: Git host
  • gitignore.io: Create useful .gitignore files for your project
  • WP Migrate DB Pro: Copy your database from one WordPress install to another with one click in your dashboard
  • Dictator: a package built on top of wp-cli that allows you to export configuration files straight from the command line
  • Git troubleshooting flowchart
  • Sequel Pro: a fast, easy-to-use Mac database management application for working with MySQL databases.
  • WP-CLI: a set of command-line tools for managing WordPress installations

Announcements

2014-09-18 WordPress Grand Rapids WordCamp Recap

WordCamp Grand Rapids Recap, Sep. 2014 meetup

We talked about what we learned at WordCamp Grand Rapids 2014. We took turns sharing specific things we learned and actions we took as a result of WordCamp.

Chad Warner and Topher DeRosia summarized a few points from talks. Others added their thoughts or asked questions. We also had plenty of discussion about other WordPress topics. Below are the notes.

2014-09-18 WordPress Grand Rapids WordCamp Recap

Talk titles below link to slides for the talk. Here are links to all the WordCamp Grand Rapids 2014 slides.

10 Tips for Turning Your WordPress Website Into a Traffic Driving Machine

Rebecca Gill

  • about page
    • include basic overview, historical overview, testimonials, success stories
  • clear CTAs
    • create clear path
    • align to sitemap
    • offer clear value proposition: tell what they’ll get
  • landing pages
    • one task
    • testimonials
  • make content personal
    • Rebecca includes stories about kids in posts

Core Functions You (Maybe) Don’t Know Exist

Nicole Arnold

  • wp_list_pluck: returns a numerically indexed array of values from the specified field
  • human_time_diff: displays time in human readable format (such as “two days ago”)
  • make_clickable: turns email addresses and URLs into clickable links
  • get_extended: get your content, both before and after the more tag
  • _split_str_by_whitespace: breaks a string into chunks by splitting at whitespace characters
  • is_email: tells whether something is actually an email address
  • antispambot: obfuscates an email address
  • __return_false: returns false

Learn From My Mistakes: 8 Years in the Game

Ian Wilson

  • hiring
    • job responsibilities change all the time; find people who aren’t one-trick ponies
    • designers:
      • find those willing to learn and adapt
      • must speak excitedly and confidently about their ideas, but must realize that design is about client’s audience, not about them or the client
  • only you control scope
    • say no
    • or say “yes, but it’s going to cost you” (wishlisting)
  • hire a coach; Ian attributes 90% of his success to his coach

Q&A

  • how to find time to work on biz when working in biz?
    • hire others to free up time
    • allocate 1 day a month or at least a couple days a month to working on biz

Getting Started: What you should do BEFORE you buy your first theme

Andrea Napierkowski

  • need a new site?
    • has it been 3-5 years?
    • is your type hard to read?
    • do people need to pinch and drag to view on mobile?
    • is it hard to navigate?
    • does it look dated?
  • can’t have a “timeless” site; sites have shelf-life of 3-5 years
  • don’t buy theme before you have content

Design Is In The Details: How Decisions Shape Communication

Michelle Schulp

  • people read websites like a billboard at 60 mph
  • redundancy is your friend
    • include same CTA in multiple places on page
  • “almost” flat design: slight shadows and lines to make it clearer what to click, while remaining minimal

Q&A

  • Michelle doesn’t like sliders because they don’t convert well
    • you should have just one important message, not 5
    • still make sense for gallery (just look at photos, not do anything)
    • don’t use for CTAs
  • how do you handle clients who want to make design decisions?
    • Ask why. Have a productive discussion about better way to accomplish
  • design process
    • start with sitemap and wireframe

Theme Customization Best Practices

Kyle Maurer

  • use hooks and filters when possible, and only child theme templates when you can’t use hooks or filters

Don’t Fear the Code

Kyle Maurer

  • have delivery deadlines in agreement with payments scheduled
  • make sure client can’t drag project out
  • tell client when they need to provide content and review work
  • bill regardless of whether they meet their responsibilities
  • launch regardless of whether they meet their responsibilities

Additional discussion

Remember, you can also find us on Meetup, Twitter (@wpgrandrapids and #wpgr), and Google Groups.

WordPress Grand Rapids WordPress Perfomance Optimization

WordPress Performance Optimization: May 2014 meetup

We talked about WordPress Performance Optimization at our May 15, 2014 meetup: testing, hosting, caching, CDNs, image optimization, queries, transients, and more. Get ready! WordCamp Grand Rapids 2014 is August 15-16! Remember, you can also find us on Meetup, Twitter (@wpgrandrapids and #wpgr), and Google Groups. If I missed anything in the notes below, please leave a comment, and I’ll add to the post.

WordPress Grand Rapids WordPress Perfomance Optimization WordPress Grand Rapids WordPress Perfomance Optimization

Testing, hosting, caching, CDNs, image optimization

Chad Warner

Performance testing

Performance guide

Managed WP hosting

Note: this section contains hosting affiliate links.

  • The host is often the main determinant of performance
  • Use a host that’s optimized for WordPress
    • Speed
    • Security
    • Updates
    • Tools
  • SiteGround: fast, secure WordPress hosting
    • SiteGround is an excellent WordPress-optimized shared host. They’re fast, secure, and reliable, yet inexpensive. They’re the host I most frequently recommend to small business and nonprofit clients.  From firsthand experience, I’ve found their plans to be superior to similar hosting plans from GoDaddy, Bluehost, DreamHost, Hostmonster, HostGator, iPage, and small local hosting companies.
    • WordPress Hosting
  • For clients with larger and/or higher-traffic sites, or who need additional benefits, we recommend WP Engine, but for most smaller sites, SiteGround provides great features for relatively low cost.

Caching

  • Use managed WordPress hosting; they often handle caching. Even if you’re not using managed WordPress hosting, use the host’s caching as much as possible.
  • WP Super Cache: simpler, less problematic than W3 Total Cache
  • W3 Total Cache: more powerful but more problematic than WP Super Cache

CloudFlare’s CDN

Image optimization

Caching, queries, transients

Brian Richards

W3 Total Cache

  • Turn on all caches
  • Enable Page Cache
    • For e-commerce, don’t cache cart, checkout, my account pages

Custom queries

  • Queries are controlled by query.php in core
  • Queries use WP_Query class
  • Look at query.php and see all the filters available. You may not want to write a custom query; you may be able to modify the main query with pre_get_posts(). It’s more efficient to modify the main query that WordPress is already running than to add a new query. Be very specific about when you’re going to modify the main query; use conditionals.

Transients

Misc.

WordPress development tools

WPGR WordPress Business Workflow

WordPress Business Workflow: Feb 2014 meetup

Our February 2014 meetup topic was WordPress Business Workflow. Four people gave short presentations, then we had an open discussion.

If I missed anything, please leave a comment, and I’ll add to the post.

WPGR WordPress Business Workflow

Work standards

Ryan Hinkle

  • Work standards are important (version control, backups, SSH, etc.)
    • Taking shortcuts can hurt you
    • Work standards can save you
    • They make it easier to bring people on to your team
  • Tools: Git, Vagrant, Bitbucket

How I started my WordPress business

Kurt Hanson

  • How Kurt got into WordPress development.
  • Found his first (low-paying) jobs on Elance, and some jobs led to good clients. Lately it’s been too difficult to compete with low-bidders (especially in low-wage countries). He thinks oDesk is even more low-wage. oDesk takes 9.5%.
  • Before you start, be prepared to go hungry for 1-2 years. If possible, set funds aside before starting.
  • Work with others with complementary skills. He’s been making local connections at The Factory.
  • Bills hourly with 50% deposits (of estimated total).
  • Tools: Photoshop, email, Google Calendar, Firefox, Dropbox, Camtasia, Vegas, QuickBooks.

Contracts and business hours

Chad Warner

Contracts/agreements

  • Scope of Work
    • What’s included
    • What’s excluded
  • Schedule and Completion Date
    • Targets
  • Client Responsibilities
    • What they must provide you
    • What they must do
  • Cost Estimates
    • Estimates, not fixed costs
  • Payment Terms
    • How much?
    • When?
    • Method?
    • Penalties?
  • Domain Registration, Hosting, Maintenance, SEO
    • Specify who controls these
  • Technical Support
    • What will you offer?
  • Legalese
    • Indemnification
    • Limitation of Liabilities
    • Copyrights and Trademarks
    • Attorney Fees

Business hours

  • Protect your time; no one else will
  • Set an autoreply with your work hours and emergency contact info

Discipline and time-tracking

Luke Rumley

  • Be disciplined. Track time. That helps inform future estimates.
  • Don’t allow scope creep. Something has to give: time, money, or scope.

Group Discussion

Pricing

Accounting

  • Topher says you get tax discounts for accepting foreign funds.
  • Save for taxes (25-30%). Make estimated payments. Kurt uses Paychex.
  • Get an accountant. Have them do taxes, advise on deductions, etc.
  • Send 1099-MISCs to anyone to whom you pay over $600.

Legal

Recommended Lawyers: Haans Mulder, Todd Stuart, Mike Lichterman, Andrew Longcore.

Prospecting & Estimating

  • Use a Discovery Phase to get to know each other and decide if you want to work together. Give a deliverable (report/plan). Charge a few hundred if you can.
  • Red flags: prospects who want you to reduce your rates because they tell you their site will be a good portfolio piece, or who offer equity in their company, or who promise future work.

Project Management

WordPress Maintenance