Introducing Copycopter: let your clients do the copy writing

Joe Ferris


We’ve worked with quite a few clients in our time and a repeated issue we run into is managing what we affectionately call copy. These little blurbs of text barely make it into the peripheral vision of most programmers, but headings and marketing descriptions can be vitally important from the site owner’s perspective. While developers are obsessing over the best way to create pages, clients are often obsessing over the wording on those pages. Here’s a familiar scenario for most developers:

Developer: Okay, the sign up page is live now. Just click Sign Up. Client: Looks great, but can it say Sign Up Now?

This is a simple request, but now you have to change the text on the page, possibly correct a few Cucumber scenarios, rerun your test suite, and deploy to staging. Here’s my favorite:

Developer: Okay, it says Sign Up Now. Client: Actually, I think we should change it back.

Actually, I lied - that’s a fun scenario, but it’s not my favorite. My favorite is when you get this after another month of development:

Developer: Alright, the sign up page is deployed to production. Client: Speaking of sign ups, I talked to a few more people, and I really think it should be Sign Up Now after all.

At this point, do you try to explain that your master branch has features that aren’t ready to go live yet? Do you create a new branch based on the previous stable branch, change your text, deploy that, and then back port the change to master? Do you tell him he’ll just have to wait until the next deploy?

These examples may seem trivial or absurd, but I bet you’re nodding your head in agreement right now. The truth is there’s a lot of development time wasted on this kind of mindless coding. Copy is important and all of these clients requests were simple, so why is this so hard?

Copycopter saves the day

We wanted a better experience both for ourselves and for our clients, so we created Copycopter.

Copycopter allows you to write default copy in the application that can later be edited by clients without changing the application code or issuing a new deploy. Setting up an application with Copycopter is simple.

Sign Up

Creating a new project takes only a few minutes, and you can try Copycopter for free.


Copycopter comes with a client gem for Ruby applications, so just add it to your Gemfile:

gem "copycopter_client"


All you need to configure is your project’s API key:

CopycopterClient.configure do |config|
  config.api_key = "81caded18444fc3b60e56622f927bcce"


Once your Rails application is linked to a Copycopter project, you can add blurbs using the standard I18n API.

<%= link_to t(".sign_up", :default => "Sign Up") %>


As soon as a you view a page with default copy, the client will create the blurb with the default copy in Copycopter.

Editing copy in Copycopter

Any changes you make from Copycopter will automatically be reflected in the live application.


Copycopter is intended to fit the natural rhythm of developing locally, testing on a staging server, and publishing to production. All blurbs start in a draft state, which will be displayed during development and on staging servers. The Copycopter client comes with a deploy task, which will mark all blurbs as published. Adding this task to your production deploy scripts will allow you to naturally move new blurbs to production as you deploy the pages that use them.


Of course, if you want to directly change any copy in production, you can do that, too.

Get to da choppa

If you’re tired of doing the copy text tango with your clients, sign up for Copycopter and leave the copy writing to your clients. We hope to see you on the chopper soon! Sign up now now!