Every app has copy.
<div id="letter">
  <p><strong>Hi, we're thoughtbot.</strong></p>
  <p>We created Trajectory to solve our own problems.</p>
  <p>
    <span id="with-love">Love</span>,
    Developers like you.
  </p>
</div>
“Hey, we have the final copy for the homepage.”
$   git commit -am “wip”
$   git checkout master
$   git pull
$   vim app/views/homes/show.html.erb
$   git commit -am “New homepage copy”
$   bundle exec rake
$   git push
$   git log
$   git push heroku master
“Hey, we have some changes for the homepage copy.”
We have a better idea.
$ gem install copycopter_client
CopycopterClient.configure do |config|
  config.api_key = 'magic api key numbers'
end
<div id="letter">
  <p>
    <strong>
       <%= t(".greeting",
             :default => "Hi, we're thoughtbot.") %>
    </strong>
  </p>
  <%= t(".letter",
         :default => "We created Trajectory to solve our own problems.") %>
  <p>
    <span id="with-love" class="with-love">Love</span>,
    <%= t(".signature", :default => "Developers like you") %>
  </p>
</div>
• Don’t worry about copy when developing
• Edit without a deploy
• Non-technical team members can edit
• Automatic synchronization
• Minimal performance impact
• Standard Ruby API (Ruby/Rails I18n)

Copycopter Presentation by Joe Ferris at BostonRB

  • 2.
  • 4.
    <div id="letter"> <p><strong>Hi, we're thoughtbot.</strong></p> <p>We created Trajectory to solve our own problems.</p> <p> <span id="with-love">Love</span>, Developers like you. </p> </div>
  • 6.
    “Hey, we havethe final copy for the homepage.”
  • 7.
    $ git commit -am “wip” $ git checkout master $ git pull $ vim app/views/homes/show.html.erb $ git commit -am “New homepage copy” $ bundle exec rake $ git push $ git log $ git push heroku master
  • 8.
    “Hey, we havesome changes for the homepage copy.”
  • 9.
    We have abetter idea.
  • 10.
    $ gem installcopycopter_client
  • 11.
    CopycopterClient.configure do |config| config.api_key = 'magic api key numbers' end
  • 12.
    <div id="letter"> <p> <strong> <%= t(".greeting", :default => "Hi, we're thoughtbot.") %> </strong> </p> <%= t(".letter", :default => "We created Trajectory to solve our own problems.") %> <p> <span id="with-love" class="with-love">Love</span>, <%= t(".signature", :default => "Developers like you") %> </p> </div>
  • 17.
    • Don’t worryabout copy when developing • Edit without a deploy • Non-technical team members can edit • Automatic synchronization • Minimal performance impact • Standard Ruby API (Ruby/Rails I18n)