giant robots smashing into other giant robots

Written by thoughtbot

dancroak

Copycopter is now open source

One month ago, we informed Copycopter customers that we would be shutting the service down on April 15th and they would no longer be charged.

This news triggered a domino effect across the internet. AOL followed up by shutting down Instant Messenger. Milk then shut down Oink and users are fretting that Posterous will shut down after its acquisition by Twitter.

Copycopter logo

Why are we shutting it down?

Copycopter has worked beautifully for its purpose: editing live copy in Rails app using the I18n (internalization) API.

However, as a business, we try to make money and Copycopter has not served that purpose very well. So, we’ve been spending our time on other things.

What is happening to Copycopter now?

It is open source!

Why are we open sourcing it?

  1. It’s not really cool to run a service, then abruptly shut it down. We want to be awesome to our paying customers, many of whom still want to use the service.

  2. Copycopter is fantastic if you’re into Rails, translations, and not editing code and deploying every time copy changes.

  3. Open source code is the bee’s knees.

All the code has been moved over to the “copycopter” organization on Github. There, you’ll also find the Ruby client and a tight little style guide.

Who is maintaining it?

The fine folks at Crowdtap and Iora Health, two very strong Rails teams in New York and Boston, respectively.

They both use Copycopter for their own production apps.

How do I set it up as a new user?

Follow these instructions.

Or, watch this instructional, holiday-themed screencast:

How do I migrate my app from copycopter.com to open source?

Follow these instructions.

Thank you!

Thank you to all of Copycopter’s customers. We’re sorry we can no longer run the service but we’d be even sorrier if we gave you a half-assed effort.

We’re thrilled to be able to give Copycopter new life as an open source project and extremely grateful to the folks at Crowdtap and Iora Health for maintaining it.

We know them well from working together in the past. You might even call us friends.

Since open source is about people, you should get to know their handsome faces:

image image image image image image image image image John Norman Will Mernagh

Get to the choppah!

Written by .

dancroak

International authentication library of mystery

In May, Timur Vafin, Marcel Goerner, and Eugene Bolshakov helped make Clearance i18n-aware.

Baxter, you know I don’t speak Spanish

Even if your language is English, this means you can control all of Clearance’s flash keys and email subjects from one YAML file.

Pretty sweet! Thanks for the patches, fellas.

en:
  flashes:
    failure_when_forbidden:
      'Please double check the URL or try submitting the form again.'
    failure_after_update:
      "Password can't be blank."
    failure_after_create:
      'Bad email or password. Are you trying to register a new account?
       <a href="%{sign_up_path}">Sign up</a>.'
  helpers:
    submit:
      password:
        submit:
          'Reset password'
      password_reset:
        submit:
          'Save this password'
      session:
        submit:
          'Sign in'
      user:
        create:
          'Sign up'
    label:
      password:
        email:
          'Email address'
      password_reset:
        password:
          'Choose password'
  layouts:
    application:
      sign_in:
        'Sign in'
      sign_out:
        'Sign out'
  passwords:
    create:
      description:
        'You will receive an email within the next few minutes.
         It contains instructions for changing your password.'
    edit:
      title:
        'Change your password'
      description:
        'Your password has been reset. Choose a new password below.'
    new:
      title:
        'Reset your password'
      description:
        'To be emailed a link to reset your password, please enter your email
         address.'
  sessions:
    new:
      title:
        'Sign in'
      sign_up:
        'Sign up'
      forgot_password:
        'Forgot password?'
  users:
    new:
      sign_in:
        'Sign in'
  clearance_mailer:
    change_password:
      beginning_paragraph:
        'Someone, hopefully you, requested we send you a link to change your
         password:'
      ending_paragraph:
        "If you didn't request this, ignore this email. Your password hasn't
         been changed."

Written by .