Skip to main content
Home

Main navigation

  • Services
  • Accessibility
  • Partner Program
  • Blog
    • All Blog Posts
    • Ask Freelock
    • Dev Corner
    • Sustainable/Open Business
    • Off Topic
    • Newsletters
  • About
    • About Freelock
    • Meet the Team
    • Portfolio
    • Client Feedback
    • Typical Hosting Options
    • Invoice Payment
    • Advent 2025 - 24 days of accessibility
  • More ...
    • Topics
      • Reach
      • Engagement
      • Delivery
      • Security
      • Performance
      • Usability
    • Analytics
    • Support and Improvements
      • Drupal Development
      • WordPress
      • Migration
April 2012

We'll make it up in volume

I learned an important lesson last year. Ok, three important lessons. You would think they would be obvious to a smart guy like me, but I can be stubborn sometimes.

The big one? Pricing some services below my cost.

Profit is oxygen for a business. Without it, the business suffocates and dies. Everything you sell must have profit built into the price. Your pricing needs a profit margin added on top of the cost -- selling at cost is not good enough. Why? Because profit is what you need to be able to deliver excellence. It's what allows you to throw in freebies, delight your customers, go above and beyond and do the job right.

Everyone knows this, right? "I'll sell at a loss but make it up in volume!" goes the old joke. But ask nearly any merchant who has done a Groupon about whether they came out ahead. If you're not careful, you might find yourself selling a lot but with nothing to show for it but wear and tear and exhaustion

In our case, when we figured out what it actually cost to deliver an hour of service, calculating wages, hosting and network charges, rent, health insurance and taxes, it turned out our biggest monthly plan cost us substantially more than we charged for it -- and our other plans barely broke even.

The result? We sold a lot of work that was not profitable, and gradually our ability to deliver an excellent result declined. We were too busy, too tired, too overloaded to pay enough attention to many of our most loyal customers.

So last summer we took action, and drastically changed our pricing. We decided to get out of the ditch, stop doing unprofitable work, and not get so overloaded all the time. It hasn't been easy -- we've lost a lot of customers who have been with us for years. But we've picked up some great new customers with much bigger vision who see the value of the work we do. With some actual profit coming in, we're able to start planning ahead, create quality assurance systems to improve our results, identify key things we do better than anyone, and find customers who actually need those things.

The other key lessons? They will have to wait until next time...

Oops, something went wrong! Site admins have been notified.
Read More
Visit Site

A lot has changed around here! We've got a really solid team going right now, a few big projects ramping up, and some exciting internal projects we're in the midst of creating.

Among other things, we've put together a marketing plan and are working on a revamp of our own web site. With our next newsletter, you'll get a taste of our new branding. We're doing more consistent blogging on our site, with a mix of business, development, and fun.

Our most exciting projects at the moment revolve around event management, project and contract management, and e-commerce. If you know anyone who needs help in those areas, be sure to put them in touch!

Meanwhile, I would love to hear from you. Drop me a line at john@freelock.com, and let me know how you're doing, and what technical or business challenges you face, or leave a comment on our site!

Skip to content after comments

0 comments

0 total 0 new

Reading settings

Saved for comment discussions across this site in this browser. Apply saves your choices; Cancel discards edits. Selected comments and drafts stay open beyond the chosen depth.

No comments yet.

No new comments remain in this discussion.

Add new comment

The content of this field is kept private and will not be shown publicly.

Filtered HTML

  • Web page addresses and email addresses turn into links automatically.
  • Allowed HTML tags: <a href hreflang> <em> <strong> <blockquote cite> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h1> <h2 id> <h3 id> <h4 id> <h5 id> <p> <br> <img src alt height width>
  • Lines and paragraphs break automatically.

Recent Rants

Drupal Meets Matrix 03
đź•‘Oct 13, 2026 đź–‹John Locke đź’¬0

Drupal Meets Matrix 03 - Better Conversations with Advanced Comment Threads

Commenting in Drupal hasn't noticeably changed in 15 years. That changes now.

dev corner icon
Dev Corner
Dark presentation slide titled "Drupal Meets Matrix" with subtitle about the Matrix API.
đź•‘Oct 10, 2026 đź–‹John Locke đź’¬0

Drupal Meets Matrix part 2: Live Comments with ECA and HTMX

A comment thread in Drupal works totally fine. You fill in a form, click submit, and your comment gets posted. Same way it has for over 20 years.

But if somebody else replies when you're on the page, you don't see anything change, you don't get any notification.

dev corner icon
Dev Corner
Active PHP process spikes with exponential backoff
đź•‘Oct 05, 2026 đź–‹John Locke đź’¬0

Beyond Bigger Servers: Keeping Websites Online Under Bot Attacks

How layered caching, verified crawlers, and adaptive Anubis protection kept a WordPress publishing site available for readers and editors.
dev corner icon
Dev Corner
developer coding AI software performance review
đź•‘Sep 13, 2026 đź–‹John Locke đź’¬1

Using AI to review AI-Generated code: Astra vs. Opus vs. DeepSeek

Astra built an impressive amount of working code, but missed serious performance problems. DeepSeek found several of them for 22 cents. Opus cost dramatically more and found a substantially different set of problems, especially around UI and accessibility.
dev corner icon
Dev Corner
Dark banner graphic showing "Drupal" and "matrix" connected by a line.
đź•‘Aug 31, 2026 đź–‹John Locke đź’¬0

Drupal Meets Matrix part 1: Setting up Matrix API

I've been maintaining the matrix_api module on Drupal.org since 2016, nearly a decade of it doing one thing well: posting Drupal events into a Matrix room. This year that changed.

dev corner icon
Dev Corner
software maintenance security patch vulnerability
đź•‘Aug 27, 2026 đź–‹John Locke đź’¬0

WordPress Has Thousands of Maintainers. Does Your Replacement?

Last month, a critical WordPress vulnerability triggered emergency patching across the web — and reignited a familiar argument: if WordPress keeps having security problems, why not let AI build something new instead?

It’s a reasonable question.

AI has made software dramatically cheaper and faster to create. But somebody still has to understand it, patch it, test it, and keep it running eighteen months from now.

That’s the part of the “AI instead of WordPress” pitch we think is getting overlooked.

sustainable business icon
Sustainable/Open Business
Drupal developer local environment setup tools
đź•‘Aug 01, 2026 đź–‹John Locke đź’¬0

Zero to new Drupal site in 133 seconds

Gabor asked in Slack about how people contributing to Drupal manage multiple different Drupal versions, and different contributed module branches, when using AI agents:

dev corner icon
Dev Corner
WordPress security vulnerability hacker cyberattack website
đź•‘Jul 21, 2026 đź–‹John Locke đź’¬1

We Patched wp2shell in 4 Hours. On a Friday Afternoon.

On July 17, WordPress shipped an emergency security release for a vulnerability chain now being called wp2shell.

sustainable business icon
Sustainable/Open Business
hacker cybersecurity website breach recovery
đź•‘Jul 09, 2026 đź–‹John Locke đź’¬0

Tempting Fate: What Happened When One of Our "Protected" Sites Got Hacked

A real client site got hacked and lost 35GB of files overnight. Here's how we diagnosed it, recovered in a few hours, and what we changed after.
sustainable business icon
Sustainable/Open Business
workshop board of old-school woodworking tools
đź•‘Jun 12, 2026 đź–‹John Locke đź’¬0

Against Inevitability

What Freelock is for, and what we're against
sustainable business icon
Sustainable/Open Business

Footer

  • Contact
    • +1 206.577.0540
    • Sitemap
  • Freelock Blog
    • Ask Freelock
    • Dev Corner
    • Newsletters
    • Sustainable/Open Business
    • Topics
  • Services
    • Website Maintenance
  • About Us
    • Our Team
    • Client Feedback
    • Portfolio
  • Policies
    • Acceptable Use Policy
    • Copyright Infringement Policy
    • AI Use Policy
    • Privacy Policy
    • Security Statement
    • Standard Contract Terms

Contact

We are located in beautiful Seattle, WA.

 Freelock LLC
 PO Box 9625
 Seattle, WA 98109

User Menu

Social media

  • BlueSky
  • GitHub
  • LinkedIn
  • Mastodon
  • YouTube

1995-2026 Freelock LLC. Neonbyte theme by Dripyard.