At WordCamps and WordPress meetups, I come prepared to talk code but other developers seem more interested in my thoughts on business. It helps that I went to school as a finance major and have a few startup experiences under my belt.
I’d like to do more blog posts and conference talks on business/freelancing, but not sure exactly what I should talk about.
Do you have any topics or questions you’d like covered?

I’d love to hear how you handle project/scope creep. I read that you tend to quote flat rate projects. Which is ideal since the client is paying for value rather than time. But how do you handle the “can you also do this…” type requests? Even the ones that take 5 minutes can add up, but you don’t want to be the “that’ll be extra” guy either. How do you handle the process?
Great question. The short answer is: keep the projects simple enough where this isn’t an issue. I require finalized designs and a scope document (which I write) that describes all the functionality. If the request isn’t in one of these, it’s outside of scope and extra. I’ll usually throw simple things in, but I try to be as clear as possible so I can reserve the right to draw the line once they go too far.
From the scope document: “Implementation of any complex functionality not already present in WordPress and Genesis, not easily implemented by available plugins, and not described here is outside the scope of this project.”
But at the end of the day, you’ll always end up with clients that are just more difficult than others. Quote high enough so on average it works out.
In relation to the scope creep question, what’s the average time from when someone comes to you and says “I want you to give me a website” until development begins. Seems that if you have to get the design and then create that scope document, that you would spend a ton of time providing quotes
About 50% of people come to me with designs already, so from initial email to development time just depends upon how booked I am (typically 3-5 weeks).
For the others, I provide a sample quote based on what we’ve discussed, and tell them I’ll provide an updated one once the designs are finalized. Hopefully a lot hasn’t changed, but if they have I have a chance to update the quote.
Oh ok, so you pretty much have these “sample quotes” on hand ready to go and can fire them off at will without too much editing, correct?
I know that you said that you have canned responses, terms, contracts, in emails that you’ve built up so that you don’t always have to re-write them. It’d be awesome to see a list of those titles (not saying give up the whole content – unless you want to of course
) – but I’ve got a list of canned responses as well, but most are for landing projects, quotes, and being out there in the social network game. But not so much for things inside the workings of a project.
In the same vein, how do you handle the timeline of scope creep? If you’re 3-5 weeks booked and the client wants something outside of scope, do you continue working on it even though you have other projects scheduled? Do they go to the end of the line?
If it’s relatively small and I have the time in my schedule, I’ll try to get it done with the project. But typically it will wait until I have availability. I’ll say “my first availability for a project of that size is 3 weeks from now. Should we schedule it?” It’s up to them if they want to launch without that feature and then add it in, or leave it in dev for a while longer while they wait for me to get to it.
One thing that also helps is what I require to “get on the schedule”. I require a 25% payment of the project made before we can schedule a time. Before doing this, I’d have a lot of people who would book and then cancel with me later, leaving holes in my schedule. This way they’re more committed before booking a project and less likely to cancel. It also means I’m not booked up as much as I would have been (that 3 week wait they have now would’ve been 6-8 weeks if I didn’t require payment to book).
Well, you obviously know some of the questions that you’ve answered for me. But I’m sure that others have had similar questions as me. Such as what sort of business structure and why? Maybe how to grow your business while maintaining a heavy workload, personal/business life balancing act, if it’s needed to get a lawyer/accountant/etc to help your business.
More great questions. Difficult to answer the work/life balance part in a comment, but great idea for a blog post.
(Consult a lawyer, accountant, financial advisor, and anyone else you can think of before making business decisions like this. This is what worked for me) I worked for my first 5 years using a DBA, but at the prodding of my father (a lawyer), I moved to an LLC about two years ago. Biggest benefit has been the ability to get a SEP IRA, which lets me put away 20% of my income tax-free. This is only a good one if you don’t have employees because you have to give each employee the same amount for their retirement.
Self-employed/Freelance business knowledge is by far the most valuable thing I’ve gotten out of the WordPress community and particularly the OCWP meetup group.
Code review/advice are certainly valuable as is help finding a the right plugin. However, having come into this carrer from a much larger corporate entity the transition to self-employment (personally I have a pet peeve against mixing this concept with freelancing) has been a huge challenge eased tremendously by my WordPress peers. In that vien the thing I’m still most vague on is contracts, billing and payement schedules. Accounting advice is always helpful as well, even if it’s just “I gave up doing account and hired someone for $X, it’s saved me a fortune by allowing me to focus on work”.
Scope creep is a perennial issue in every bussiness I’ve operated in, so handling THAT actually hasn’t been too much of a challenge. Write a clear scope, be clear when someone wants something outside it, write a change-order/extra and get back to work. The challenge I find is explaining to clients what that interruption/change will do to the schedule.
If you’re not good with numbers and don’t like keeping track of your personal spending, it might be a good idea to hire an accountant to handle it for you.
As a finance major, all accounting software bugs me and I just do it all manually in a spreadsheet. I have my General Journal where you write the date, account (ex: Revenue, Office Expense), description, document, and amount. I keep a running SUM() on the side so I can see how I’m doing for the month. At the end, I sort by account, then date, sum up each category and put it in an income statement.
That will make a great blog post, and I’ll share a sample spreadsheet with it.
Financing the business
Brick and mortar shop versus at home business.
Shared space similar to what you have done (required space and features that would interest people to use the shared space)
There’s plenty m
I didn’t/don’t really need any financing for the business. I work from home on my laptop. Anything I need (ex: got a new computer this month) is financed through revenue. Web design is a low cost / high profit business
Would love to see more posts from you about how you run a successful freelance business. I know in your presentation to the Houston WordPress Meetup you mentioned that you use canned email responses in Gmail to manage the phases of a project – it would be great to hear more about that.
I also know you don’t do maintenance and I’m wondering how you approach that with clients. I am assuming best practice would be to “future-proof” your code as much as you can so that updates to WordPress, etc., won’t make things go wonky – but if you ever are in that situation, how do you handle it?
Here’s a list of all the headlines in my quote: http://presentations.billerickson.net/managing-a-freelance-business/clear-communication-quote/
Other canned responses I have:
- Re: WordPress Development (description of the services I offer, how much they cost, and when I’m currently available to start)
- Designer and Developer recommendations, for when I want to pass on a project
- Project Start, which tells the client why they’re receiving an invoice (my payments are tied to project start), when they can expect the site to be ready, and some video tutorials to watch while I build it
-
It would be awesome to have the Bill Erickson equivalent of Andy Clarke’s Gists (https://gist.github.com/malarkey) of Contract Killer and other key documents that you use. Of course without the specific $ figures and names, but sort of a template.
I don’t have a project minimum for changes to past projects, so I technically do allow maintenance/small changes, but I try to avoid that work. I build the site so it won’t need much work (put on WPEngine for updates, build custom plugins that have the functionality client needs…).
When I am needed for changes, it gets added to the queue. Short changes can usually be squeezed in within a week or two. Larger changes are booked right along with site development, so it could be a few weeks before I can start on them.
I also have developers I recommend that don’t have project minimums, which might be better fits for small changes.
That makes sense. I have been thinking about recommending WPEngine more strongly to clients, so that if a plugin update, etc., causes their site to go wonky, they can restore it easily and then contact me to say “How soon could you take a look at this?”
What methods of free advetising have you found to be most useful in getting your business name out there when you first started? And cheap ones?
The best free advertising is client referrals, but if you’re just starting out you won’t have that
What’s worked best for me is finding a niche where I can be one of the few experts. About 5 years ago I started building sites using Thesis, and I got a ton of traffic from their site. Later I switched to Genesis, and I still get most of my leads from them. It’s a great cycle: I build a site using Genesis => they put it on their site to show “what Genesis can do” => this sends me lots of prospects looking for the same thing => … the cycle repeats.
Find a company or type of company that would benefit from sending work towards a trusted developer. You might focus on a theme (Genesis, Sandbox, Thesis), a plugin (bbPress, BuddyPress, Gravity Forms), or a hosting company (WPEngine, Pagely, ZippyKid).
That’s very helpful. I just started using Genesis and love what it can do. Incidentally, the first one was a lawyer’s site and it looks beautiful. He’s happy with it and a peach of a client. Hopefully that will generate some referrals. My first clients were all non-profit which I did pro-bono and the referrals were all, pro-bono.
Craigslist has generated some, but not enough. And although I’m working with Genesis now there are a lot of Genesis developers out there. I love the niche idea. Genesis + something… Any more advice?
Take a look at Tweaky.com. I send people who have changes too small for me to take on over there. Not sure how many Genesis developers they have, but it’s definitely less than StudioPress.com. You might be the only one experienced with the theme so you get all the ones I send
Thank you, that’s very kind.
Someone recommended Guru to me; I went there and found a lot of middlemen taking jobs dirt cheap who were not developers at all who then farmed the jobs out to people in India. It was a rude awakening. I’m sure the clients had no idea who actually did their sites, or why they were constantly breaking. Hopefully Tweaky will be different.
Bill, for the ones that don’t have a design already, are you requiring a deposit based upon the sample quote or are you creating the design without taking a deposit? I do most of my designing as the website takes shape and find the design and development process to be very interwoven. Do you do your designs offline in photoshop or online in the dev site?
If a design isn’t ready, I’ll provide a preliminary quote based on what I know (typically this is for my project minimum). They will then pay 25% of that amount to get booked. Once the design is finalized, I’ll update the scope and price to cover all the functionality in it.
I don’t do design at all. I request that the designs for the site be provided to me as Photoshop files.
This is one useful post! You should do more of these business posts.
Hi Bill,
Great topic for a post, and judging by the number of comments so far, something people need to know. I just took up blogging about our business development and it’s been a good way to both get advice and help people, and also to flesh out the thinking of how we’re approaching things.
I especially like your comment above about setting up an LLC and associated IRA, I’ll have to ask my lawyer about that. Our LLC is going to comprise of two managing partners, so the IRA may be out of our scope for the moment, but definitely food for thought, thanks!
Hi Bill,
Thanks for taking the time to manage and curate this discussion! I’d love to learn more about any general business “ah-ha” moments you’ve had during your career as a freelancer. You mentioned converting to an LLC and the IRA, which I’ll certainly be looking into. Any other thoughts from a methodology, finance or strategy perspective that, looking back, were game changers?
I go into detail on how I manage my business here: http://wordpress.tv/2012/10/28/bill-erickson-managing-a-freelance-wordpress-development-business/
I can’t really think of any “ah-ha” moments. It’s a constantly evolving process. Every time you complete a project, look back at what you’ve done well and figure out how you can incorporate that into more projects.
Also look at what went wrong and how to prevent it (ex: calling it out in your contract). For instance, after a project where I spent 6 hours on the phone, I added a 1 hour limit to phone calls to my contract.
Here’s a thought as I suffer through a failed computer. What are your backup strategies? I don’t mean data backups, I mean what are things you’ve learned to setup as contingency plans for when things go wrong that affect your business.
For example, my 22 month old MBP died this weekend (video failure of some kind, it’s off to Apple) . So while I DO backup data in duplicate (onsite offsite). I have a 2009 Mac Mini that I keep around as a file/media server and spare computer just-in-case. I spent a few hours troubleshooting my MBP, but once I knew definitively it was dead, I swapped my SSD into the mini and was productive again in a matter of minutes. If hadn’t had the mini, or had for example a windows machine as a backup it’d have been a HUGE disruption to my business.
Additionally I keep at least 1-2 months income around in cash (not paper, in my bank or invested somewhere very liquid). That’s the buffer I need to know I can always weather the variability of income that occurs in my life. Projects sometimes go sideways and require extra effort I might not get paid for, or I spend some extra time on a passion.
Curious if anyone has bussiness insurance?
My renters insurance specifically excludes work assets (IIRC I think it’s actually just capped at $1k) unless those items are specifically enumerated on my policy. For about $6/m extra I have an extra $10k in loss and peril coverage that specifically covers all my computer and camera gear. What’s great is that it actually covers it everywhere from theft AND damage. If I spill coffee on my MBP at the cafe, it’s covered. If my luggage disappears in baggage claim, covered…. etc…
I use a portable hard drive with 500 GB and back that up regularly. And BackupBuddy. I move and copy site “shells” all the time with BackupBuddy.
I have a bunch of computers floating around the house (old minis, airs, and macbook pros) so if something goes wrong with my primary computer I can quickly switch.
I learned this the hard way when my old Macbook Air became unusably slow (overheating, so the system reduced the processing power by like 80% to try to decrease heat). After a week of barely getting my work done, I bought a mini to use while my computer was in the shop.
I keep all my working files (PSDs and notes for active projects) in Dropbox so I can access it on any computer. I have a home server that my laptop backs up to overnight, and a portable SSD with backup that I keep in my safe deposit box at the bank.
Since I work from home and my computers are also personal computers, I’m pretty sure they’re covered by my homeowners insurance, although I should look into this.
I used to keep 3 months of expenses in my business savings account earning nothing. A few weeks ago I looked through the data of the past 12 months and noticed I had never gone below 1/6 of that in my business account, so I’m reducing it to 1 month of expenses. This is strictly for business operations – I keep 6 months income in cash as personal emergency funds.
In this same vien of business contingency plans for freelance/self-employed folks is what happens to your clients if you die or less morbidly are abducted by aliens or have some other emergency?
Does your client have access credentials to take the work elsewhere? (I know Bill works mostly, deliver the product and move on, but what about mid project?)
Is there anyone prepped to take over completing the project if mid-way through you end up in coma or someone you have you can refer emergency support if you happen to be on vacation for a month?
To be honest, I think that’s simply a risk of working with a freelancer. If I’m hit by a car in the 1-3 weeks I’m building their site, they’ll have to hire someone else to build their site. Luckily they won’t have spent too much so far (max of $2500, which is initial 25% payment of the largest project I’d take). They can sue my estate for their deposit back.
When I’m on vacation, I prep my active clients a few months ahead of time and provide them with information on developers that might be able to help in an emergency. I also don’t go more than a few days without checking my email (even when I was in Europe for a month), so I can forward away emergencies as they happen.
I totally agree! When do I ever disagree with you on this stuff…
I know enough about your business that I think you’ve got all this well covered with your system and referral base. The short turn around time helps for sure too. Many of us though do work on many months long projects.
I think a lot of people starting out don’t think about those things and there are a lot of people who’ve been doing it a long time don’t think about the _value_ of those things.
From the freelancer perspective I think talking about setting up systems so that the logistics of making sure client’s or their representatives have access in your absence is best built into the project setup process. As is explaining the tremendous value of building a referral network of peers with work coming BOTH in and out.
Steve Zehngut has done a great WordCamp talk on “How to hire and mange a developer” a couple times that is great talk for both clients and developers that is a good watch on this subject: http://wordpress.tv/2011/09/08/steve-zehngut-how-to-hire-and-manage-a-developer/
From the client perspective, I think these are important things to consider when deciding whether to hire the $50/hr person or the $150/hr person. I could work much cheaper if I played fast in loose without version control, working on live sites, etc… I don’t because that’s a disaster waiting to happen.
If you’re working on multi-month projects, then yes, you definitely need backups and contingency plans in place.
For me, my sysadmin does daily backups of my development server, and when I finish the initial build of a site I export the database, upload it to wp-content, and then tarball the wp-content directory so I have a complete backup (in case the client messes something up somehow).
It might be a good idea for me to share that link with the client. If something happens to me, the client could provide that to any other WordPress developer and get it up-and-running.
But it does seem like preparing for an extreme tail risk. Like putting the money you plan to spend next month in 30 day treasuries because you’re worried your bank might go under and FDIC insurance is under-insured. While a possibility, most would think it remote enough not to justify the additional work.
Bill,
What would a $10K project entail?
So the largest project you took was $10K of which you required 25% down before starting? Wow, I’m not charging anywhere near that, but my projects have thus far been pretty simple. I guess I am still a newb.
Liquor.com was a $10k project, and there’s a few others in my portfolio. But what I found is that once I get to projects of that size, I’m absolutely horrible at quoting and always underquote. I probably made $20/hr on Liquor.com (put in 500 hours).
I have an informal project max of $10k because I personally can’t reliably estimate my time for projects of that size. I know many places who have minimums higher than that.
I’m assuming you did it from scratch? I see 74 pages of “drinks” at liquor.com. Did you train someone on how to upload their data? Or did you take a file and upload most of it for them? When I see sites that require a large number of products I usually send them elsewhere. Another question, do you start with a framework like genesis or just a shell from another successful project? I’ve avoiding doing anything completely custom because then the client can’t go elsewhere and can’t make changes themselves. My clients are smaller than yours, obviously.
They input all the data, I just built the theme and backend tools for entering that data (post types, taxonomies, metaboxes…).
All the sites I build are custom Genesis child themes. Here’s the theme I base all the child themes on: github.com/billerickson/BE-Genesis-Child
Nice, thank you for sharing. I know what I’ll be reading this weekend.
Bill, are most of your clients really tech savvy? Or do you have to train them on how to enter all the data/content necessary to fill out the website? How do you assess the amount of assistance they might need prior to project initiation and how many hours of training do you normally include in your flat rate? I’ve run into a few situations where the training has gotten completely out of control and I’m figuring out that I need to better assess and account for the time commitment when pricing projects.
I provide video tutorials through WP101 Plugin. When I send the site for review, I provide a bulleted list that describes how to edit every aspect of the site (ex: manage the content in the right side of header in Appearance > Widgets > Header Right). I also include up to one hour of phone training/support in my quote. If they need more than that, it is billed separately.
I find the above satisfies 90% of clients, and the other 10% are willing to pay for the additional assistance. This way support doesn’t materially affect my estimate.
You might want to touch on the subject of what kind of organization is right for Drupal and which is right for WordPress. There is a ton of consumer confusion around this and I think the WP devs need to highlighting the benefits of WP more in today’s market place.
Both WordPress and Drupal are technically equivalent – anything a top Drupal developer can build, a WordPress developer could also build. The main difference is the interface for managing content, and WordPress is much easier to manage.
The only situation where I think Drupal is the right choice is if you have inhouse developers that are experienced in it. There’s no reason for your team to learn a new CMS when they can accomplish the same in the one they know.
Ask a developer who’s used Drupal and you’ll hear the rant about how much of a pain Drupal is to dev on. Plus Drupal for a client is difficult to comprehend. They have a ton of block and modules that make up a page, whereas WP just goto Edit Page and chances are, all your elements are right there.
What’s your daily schedule like to produce at the rate you do? How many days each week do you work and how many hours each day/week?
I usually start around 8am or 9am. From then until 10am I do emails. If the response or action will take less than 5 minutes, I do it right then. If not, I add it to my to-do list (these are typically change requests for current projects or reviewing large RFP so I can provide a quote). From 10am-noon I have phone calls scheduled most days (clients book 30 minute time slots using ScheduleOnce). Between calls I knock out what I can on the to-do list. After lunch, I put in a good 4 hours of work on client projects. In this time I can usually build a whole site if it’s fairly simple, or finish up change requests. Around 4 I hop back into emails and take care of them until I’m done or my fiancee gets home (typically around 6). Anything not done by then gets pushed to the next day.
If I know I have a ton of work to do I’ll sometimes work in the evenings after dinner or on the weekend. But I do a pretty good job of keeping a work/life balance and only putting in a 9-5 day. I also try to go on a run a few times a week, and take the dog on a walk once or twice a day. I try not to sit at my desk for more than 2 hours at a time.
Quite often work will get done fast and I’ll have a day or two free. I try not to pack my calendar too tightly with scheduled work since it’s difficult to predict when active projects will require changes.
Here’s my workload for this week:
- Starting one project that’s scheduled for 1 week (delivery this Friday)
- Finishing the second week of a larger project scheduled for 2 weeks (delivery this Friday). I pretty much finished this last week so just need to do a bit more testing in browsers and mobile devices.
- Starting a larger project scheduled for 2 weeks (delivery next Friday).
- Have 25 active projects, including the 3 with initial dev scheduled this week (the ones listed above). The other 22 are sites that I’ve finished the initial build on but are still on my server. Clients can request changes on these, or ask me to migrate to finish the project. I think 2 or 3 will be migrated this week, and right now I have change request for two of them sitting in my email.
How do you take in change requests, budget time and scheudle time for changes to sites that are already through the first phase? How do you respond when those incoming changes are out of scope?
Change requests are emailed to me, typically as a bulleted list of changes. I let them know that it typically takes 2-3 business days for each round of changes, and if I expect it to take longer I let them know.
At the beginning of the week I’m more focused on my scheduled work, so I typically focus on change requests towards the end of the week.
When I quote projects I always include time spent for changes (typically 20-40% of initial dev time). It doesn’t matter if they exceed this time – as long as their requests are within the original scope then I’ll make the changes.
If it’s outside of scope, I’ll let them know why (ex: copy the part of our scope document that’s relevant), and let them know the best way to proceed. This either means quoting for that feature and scheduling it, or working on a time-basis and billing for time.
Also looking at your schedule I don’t seem time for blog posts, blog post comments, emails to non-clients. Is that all in your morning block?
Emails to prospective clients (ex: people who contacted me using my form) fall into that 8-10am time and at 4pm.
I don’t have any scheduled time for blog posts or comments. I do it whenever I have a chance. For instance, I’m migrating a site right now, so I have a few minutes to catch up on comments here).
Thanks. I’ll slow down the typing on my iPad now and try proof reading my words before hitting submit, not after.
I know that you have someone else do the design and you don’t host the sites, but within your scope of things that you do, what areas of your business have you been able to standardize enough that you can get others to help with your business? For example, I thought I saw a reference somewhere that your significant other helps you with the business ( I could be wrong on that ). What part of your process could she do and would it require a high level of technical knowledge? I ask because I’ve often thought about trying to bring my own wife on board with my business, even though her degree/education is in an unrelated field.
I’ve standardized my development practices with the goal of allowing me to outsource parts if needed. I start by building all the functionality in a theme. At the end of this stage it looks like someone took a website and delete its stylesheet. The next stage is then to style the site. In the past I’ve experimented with outsourcing this second part to markup companies, but I ended up spending more time cleaning up their CSS than it would have taken me to build it. So while development is standardized and outsource-able, I don’t do it.
It would be nice to outsource the communication and quoting, but I’ve found that’s just not doable. I tried standardizing my quoting process so my fiancee could handle initial client calls and quoting, but there’s just too much technical knowledge required for answering client questions and providing accurate quotes.
With the model It’s seems you have built you charge the client once and then you are done. How are you going about building residual income if the clients are only charge at the beginning? thank you for your time.
I’m not attempting to build residual income through my services. I get residual income by investing my excess revenue in stocks, bonds, and other income-generating investments.
One of the most overlooked aspects of generating recurring revenue is the cost of doing so. Yes, I could offer to manage my clients sites (update WordPress, plugins, and fix issues as the pop up) for a recurring fee, but the time spent doing that is time I can’t spend building themes. It’s much more profitable for me to focus solely on theme development. I’ve yet to identify a possible recurring revenue source in my business that provides the same or better return than the service I currently provide.
That’s not to say that all recurring revenue sources are sub-par, just that I haven’t found one that will work for me yet. Thomas Griffin built Soliloquoy, a premium rotator plugin, and it is generating enough recurring revenue to support himself. But that required a large investment of time upfront, and (most importantly) had a substantial risk of not providing a reasonable return if the plugin didn’t become popular.
You should definitely look at all revenue opportunities, both one-time fees and recurring. But keep in mind the pros and cons of both and make sure you choose the one that rewards you the most.
For more information, see my post In Defense of Consulting Businesses.
Thanks that was very insightful. I appreciate the quick response.
Regarding your business model of building it and then handing it off to the client, what about areas that might get blurred into being dependent on the client adding the content? For example, what if someone requests you to redevelop an existing site with a 1000 pages on it. You might finish your development in a week, but they haven’t necessarily got a 1000 pages setup yet, with content brought over. Who handles setting up the 301s? Is this built into your quote as part of your launch procedure, or do you just show them how to use a Redirection plugin and then let them do it? I really admire your super-standardized business model and am attempting to standardize aspects of my own, but I keep running into aspects where the clients require some hand-holding.
Also in this vein… I’m curious if you’d share how many clients just completely drop the ball and never enter content and what if anywhere you point them in that scenario. The majority of my clients are woefully poor at inputing content and I’ve really struggled with what to do about it.
During the quoting process we’ll identify all the aspects of the site that they need help with, and find people to do it. I don’t do content entry except for that featured in the PSDs. If they plan to have 1000 pages of content, it’s up to them to write it. If they’d like help with it, I can introduce them to some writers familiar with WordPress (no need to pay a developer rate for copy/paste).
If they already have a large site that’s not on WordPress (ex: Drupal), I can also bring in a database developer to port their content to WordPress. This is usually done concurrently with the design. It gets migrated to a clean WordPress install with the default Twenty Twelve theme. Once they confirm everything they want is there, I’ll build the theme on that installation, and then they can tweak the content as they like once dev is done.
Jon brings up a great point about clients not finishing the content entry in a timely manner. I try to help where I can, but at the end of the day they are the ones who know their business and are qualified to write the content. Most sites launch within about 2 months, but I have one that’s been on my server since Feb 13, 2012 (5 more days until the one year mark).
These types of clients really need more hand holding and content creation help than I can provide. If I can identify this early on, I’ll recommend they bring in a project manager or content editor for them to stay accountable to.
Do you insist that the site be built on your server? Or would you build it on a client’s Hostgator account if they wished? I’ve had situations where I built a clients site on my server, moved it to theirs, and key functionality broke. But I was able to point to the still-working development URL on my server to prove that my code was fine and that it was something outside my control that was now not working. I would think building on your own server would also give you more leverage if a payment issue arose before the site went live.
I’m happy to build on their server if they pay 100% upfront. I don’t release my completed code until all invoices have been paid.
It’s important to have a good migration strategy so you don’t have issues when going live. If there is an issue, it’s usually because their server is missing something important and I recommend moving to a high quality host like WPEngine.
Wow, I just assumed everyone developed on their own server and then migrated. I only developed on someone else’s server once and it was pro-bono. She was paranoid about giving anyone access (which is probably why she couldn’t hire anyone) so I didn’t have enough access to back up anything. You can guess the rest. She wanted an immediate change and I was busy so she tried herself. Lost 30 hours of work in a heartbeat. It was heartbreaking but I learned a lesson–always on my server. I have always had everything prepaid. I can’t imagine not. I’d be spending too much time worrying if I’d get paid the rest. I don’t have the energy for that, too wasteful.
This is really educational. Nice to see what other people are doing and what mistakes they’ve made (and no longer make).
FWIW, I develop everything locally and under version control (so in addition to to the other benefits I always have a backup). I have a dev server I show clients work/progress on. By default I give clients access to their own cPanel on the dev server, and I’ll push development builds to their own server if they want (On new clients I’m prepaid if I do that, on-going clients with a good history I tend to trust).
Also, I wouldn’t take any responsibility for working on or migrating a site to a server I didn’t have complete access to.
To your last comment, my contract only includes 30 minutes spent migrating unless it is to my recommended host, WPEngine. So I get compensated for time spent troubleshooting their server environment
30 min or your recommended server, I love that, adding that to my scopes from now on.
I think it’s really important to develop and migrate to familiar hosting providers.
Bill, how do you put that in to your contacts though. Especially if they already have their own hosting services. I use a version of contact killer but don’t have anything in there about hosting. I would love to see a sample of one of your contacts just for all the terms. Maybe even more how you get people to agree to all of them
From my contract:
Migration
I will provide free migration to the following hosts: WPEngine and Bluehost. If your site is hosted with any other host, you will receive 30 minutes of time spent migrating and/or troubleshooting your host, after which it will be billed at my hourly rate.
Hi Bill,
Have another question. What do you do about spammers? Is there a particular plugin you use? I’ve used Akismet from the beginning and HostGator provides a nice stat page so I can research the IPs, but there are some pretty crafty spammers out there, especially from the eastern european and russian blocks. I have about a dozen sites that get constant hits from spammers. It puts a big burden on the bandwidth to constantly get that. Any suggestions? I use fast secure contact form plugin with captcha and domain/valid email checking and have all comments moderated. I’m looking for something to just enter their IPs and ban them completely from all of my sites.
Annie
I haven’t had any issues with spammers. Akismet takes care of blog comments, and Gravity Forms does a good job of preventing spam emails from my form.
After I asked that I remembered you don’t do maintenance for your customers; you design and leave the maintenance for the customer. I have some who need the maintenance and then spam can be an issue.
I’m not sure how providing maintenance would result in spam. There shouldn’t be any spam regardless of the service you provide.
So you continue to monitor their sites after you release them? If you’re not monitoring them or maintaining them, how would you know if they were getting spam?
1. If they were getting hammered with spam, they’d come back to me to fix it (has happened when they disable Akismet)
2. A lot of the time I forget to change the email in Settings > General, so I get notified of new comments and user registrations. If they were getting spammed, I’d know it.
3. I’ve built and maintain many WordPress websites, including popular ones like my site right here. I don’t get spam very often. Maybe one or two comments a month, and those are human written spam trying to get backlinks on my site.
I have at least one site that gets about 300 akismet spam per month. It’s a movie review site. She doesn’t want to accidentally delete someone’s legitimate comment, so she browses through the spam before she deletes it. I have another site that gets about 2,000 hits a month and about 2 contact form spams (where they are looking for backlinks). They are usually from a spamming IP in the Ukraine. That’s why I asked the question. Have you built something into your Genesis child theme or maybe it’s something from way back when that you’ve adopted into your basic site build that you’ve forgotten? I’ve attended ithemes and other webinars and have heard others with similar problems so I doubt it’s something unique.
Ah, we have different definitions of a “spam problem”. To me, if spam shows up in Akismet then that’s not a problem – Akismet did the job and I didn’t have to mark it as spam. I’m not sure what the false positive ratio is, but I assume it is pretty low.
But, good comments do slip in there, especially if they contain a lot of links. I’ve had people email me saying their comments don’t show up. I look in spam, find it, mark it as not spam, and then they don’t end up there again (your comment is automatically approved if you already have an approved comment).
To your specific question about blocking IP addresses, no I don’t know of a plugin that does that. But that’s a pretty poor spam protection approach. Spammers can easily have dynamic IPs, and if simply blocking the IP worked then Akismet would do that.
With regards to contact form spam, I recommend using Gravity Forms as it has spam protection built in. I do remember getting spam when using other plugins, like Contact Form 7, but since I started using Gravity Forms I receive no automated spam.
Yes, I was afraid of that–there wasn’t really one. I don’t really want to block IPs as that is a slippery slope and could get time-consuming, but it’s also time-consuming to go through the spam folder. I’d rather just have her empty the spam and hope there are no legitimate comments in there. I have been using Fast Secure Contact Form with captcha, but that doesn’t stop a human. The spammers in the Ukraine all have the same IP prefix so they are consistent. This is one of my time wasters. I have yet to try Gravity Forms.
Hi Annie,
Folks who receive a large amount of spam is certainly nothing new. I think what Bill is getting at is that there’s only so much you can do during the web development process to address spam. You can certainly ensure that the site is developed in a manner that will help the administrator identify and delete spam (installing Akismet, etc), but by it’s very nature spam prevention is something that must be done on an ongoing basis.
If you’re interested, check out the following link on Perishable Press. Jeff Starr has done quite a bit of research on the subject and uses the .htaccess file to eliminate some of the most common sources of spam.
http://perishablepress.com/5g-blacklist-2012/
Spam is a pretty common topic in the WordPress community, so you might also want to check out the following links:
http://codex.wordpress.org/Combating_Comment_Spam
http://mashable.com/2008/02/10/fighting-spam-wordpress/
Thank you, Philip. Checking them out now.
RE: Spammers. Thanks to both of you. The .htaccess will be my last resort. Already did everything on the other link. I did not realize that spammers can get their comments in your RSS feed before they’re approved. Akismet is catching all the spam. I was looking for her to not have to wade through the spam folder. I installed Stop Spammers Plugin on the movie site on 2/6 and just checked. It’s caught 268 so far. Only 5 comments in spam. That’s much more manageable. I think I will stick with that for now.
Hehe… I thought it might be a “definition of spam” issue.
All sites, like all email, will get some spam. Good filters will auto-categorize/block much/most/all of it. Akismet is remarkably good.
CloudFlare can help block some spammers and malicious traffic (by ip). I’m a huge fan of CloudFlare.
Or you could just disable comments and contact forms entirely…
Yes, I’m a dorkfish.
CloudFlare would be too expensive for how many sites I have (a lot).
CloudFlare is free for basic service which includes security….
You only need to pay if you need SSL, brand-able captcha pages (only shown to spammers), advanced cache control, etc…
I’ve never needed paid service for anything other than SSL
Thank you. I will give it a shot. I assumed “optimized for mobile” meant it might not work on responsive sites, but I think I was reading too much into it. I’ve been working 26 hrs straight with a 4 hr break and I’m tired.
Bill, thanks again for putting this together, I must have shared this with everyone I know, really useful.
I wondered what your technical setup was like for developing sites, particularly client sites? For example, what software you use? How much you use things like Git in the process? If you have a local development environment etc etc
I know there’s a million different ways to do it and probably no ‘best’ way but I’d be really interested to know more about your way of doing things.
Thanks!
I’d also like to hear how you use Git. Seems everyone is using it.
Hi Annie – I just started using Git and while I’ve still got a lot to learn it’s been useful so far (and finally feel like I’m doing things ‘properly’)
I had a lot of help in the setup though because I’m hosted with WP Engine and their support basically talked me through everything or I’d probably still be stuck now so if you’re with them I’d definitely give them a shout.
Otherwise I’d offer to help but I’m not sure how qualified I am yet! I’d be happy to share my tiny bit of experience so far if it would though
Well my assumption from what I’ve seen so far is that it’s a collaborative effort of people sharing WordPress and other code. So I guess I’d like to know if that’s correct, or wrong, and what you use it for. Do you get pointers from others? Collaboration? Or is it more of a repository where you put code? Is there a testing environment? Those kinds of questions. I really don’t know much about it except that a lot of WordPress peeps put their code out there. No I don’t use WP Engine, at least not yet. Not cost effective. At some point hopefully it will be.
Hi Annie
I think Bill probably explains it better than I could below
but what I’ve personally been using it for really is just a way to join together a local development environment, two different computers and have a way of sending things to a production area and a staging area fairly neatly. Not any collaborative stuff as yet (though that is a possibility for me in the future)
As Bill says it’s probably not necessary for every project (I don’t use it on the ‘tiddlers’) but I really just wanted to force myself to get an understanding of it.
Taking a step back it might be overkill for my process right now but like I say I wanted to try it out and I do feel it has been of benefit.
If what you’re doing is working for you right now and you’re not doing huge sites with lots of different contributors then you could probably leave it as Bill says. I still have a loooong way to go before I really understand it properly so my experience is very limited right now but hope sharing it with you has been of some help!
Cheers,
Nick
Here’s a brief walkthrough of how I personally build out sites:
On my dev server I have a folder called /latest which has a standard WordPress installation with my base themes and plugins (akismet, gravity forms, debug bar, core functionality…)
I also have a folder called /dev, and in there is a folder for each site under construction. When I’m starting a new site, I create a new folder in /dev, then copy the contents of /latest into it (so I have an up-to-date WP, theme, and plugins), and then change the table prefix to be [client-name][date]. So if my client was Google and I was starting today, the table prefix would be google03202013_ .
I build almost all sites without version control, as the projects just aren’t big enough to justify it. I use version control on really large sites, or on ones where I’m working with multiple developers.
Sometimes I develop locally, but not very often. I usually only dev locally if I’m planning to travel (I’m going to build a site on my flight to San Diego on Friday).
Annie, there’s two different things you’re asking about. Git is a version control language, similar to svn and mercurial. It allows you to keep track of changes and distribute development (multiple people can work on a project simultaneously and merge their changes together).
GitHub is a social coding website where a lot of developers share their code. It’s powered by Git, but adds a lot of extra stuff on top like a social network. GitHub makes it really easy for others to contribute to your code, which is why a lot of us developers post our code up there. All my plugins are on GitHub for development, and then when I’m ready with a new version I push it to WordPress.org (which uses svn).
Bill – thanks for the insight I really appreciate you taking the time to explain – as you can probably tell I’ve been experimenting a bit recently with local development and Git so was curious to know what you do – Cheers, Nick
Awesome post. I learned a lot from the post but also the comments. You spend a lot of time replying. Also enjoyed and learned a lot from reading your post on the defence of consultation business. I was wondering if you could point me to some resources, free or premium, on how to learn WordPress PHP.
Thank you in advance
John
Re: Learning PHP
Here’s a nice little, free resource for PHP
http://www.codecademy.com/tracks/php
For a book, Professional WordPress: Design and Development is the best one I know of. It might be a little advanced, but you can search online for more information on the concepts you need help with.
Working with a framework like Genesis has a bit more of a learning curve than a standard WordPress theme, but once you get to know it you’ll be much faster at building themes. You can purchase StudioPress’ Pro Plus package is a great way to get started as you can look at the code for all of their themes and see how they implemented that design and functionality.
Appreciate both replies. Thank you. Will order the book and check out that website. I already have the pro package from Studiopress but thank you for suggesting it.
Hi Bill,
I know John just above asked about PHP, but I’m wondering if that’s the best place to start.
I’ve used WordPress for a couple years now but if I wanted to get into it deeper and learn coding for the purpose of being able to really modify or even create themes, plugins, etc. is starting with learning PHP the best way? If so, what’s a good, as-basic-as-possible “beginner route” to start?
Or is it better to get a grip on coding languages in general? Like a more basic coding primer?
Hope that makes sense. Great blog, plugins and code help – really appreciate all of it.
What worked for me was to just start digging into WordPress themes. I had known HTML/CSS already, but I learned PHP through WordPress.
Open up some theme files, see what’s in there, google, the function names to learn more about them, make changes, and see what happens.
Also, remember to always have debug mode on. In your wp-config.php file, set this to true:
define('WP_DEBUG', true);Without debug mode, when you make a mistake you’ll get a blank screen (the “white screen of death”). With debug mode, you’ll get an error message that points you to the line of the error. It makes troubleshooting so much easier.I recommend starting with standard WordPress themes like TwentyTen, TwentyEleven… Once you have a grasp of WordPress functions, consider looking at theme frameworks like Genesis or starter themes like _s. If you just started with Genesis, you’d have a hard time knowing what is WordPress and what is Genesis.
Thanks Bill. Good idea on the reverse engineering and particularly on the debug mode. I can see how that would help quite a bit.