diff --git app/models/project.rb app/models/project.rb
index 9644696..bd13706 100644
--- app/models/project.rb
+++ app/models/project.rb
@@ -57,7 +57,7 @@ class Project < ActiveRecord::Base
   validates_associated :custom_values, :on => :update
   validates_associated :repository, :wiki
   validates_length_of :name, :maximum => 30
-  validates_length_of :homepage, :maximum => 60
+  validates_length_of :homepage, :maximum => 254
   validates_length_of :identifier, :in => 3..20
   validates_format_of :identifier, :with => /^[a-z0-9\-]*$/
   
diff --git db/migrate/094_extend_project_homepage_url.rb db/migrate/094_extend_project_homepage_url.rb
new file mode 100644
index 0000000..878d898
--- /dev/null
+++ db/migrate/094_extend_project_homepage_url.rb
@@ -0,0 +1,9 @@
+class ExtendProjectHomepageUrl < ActiveRecord::Migration
+  def self.up
+    change_column :projects, :homepage, :string, :limit => 255, :default => ""
+  end
+
+  def self.down
+    change_column :projects, :homepage, :string, :limit => 60, :default => ""
+  end
+end
diff --git test/unit/project_test.rb test/unit/project_test.rb
index f24e7d4..05a9e0b 100644
--- test/unit/project_test.rb
+++ test/unit/project_test.rb
@@ -45,6 +45,13 @@ class ProjectTest < Test::Unit::TestCase
     assert_equal "activerecord_error_blank", @ecookbook.errors.on(:name)
   end
   
+  def test_long_homepage
+    @ecookbook.homepage = 'a' * 250
+    assert @ecookbook.save
+    assert_equal 0, @ecookbook.errors.count
+    assert_not_equal "activerecord_error_too_long", @ecookbook.errors.on(:homepage)
+  end
+  
   def test_public_projects
     public_projects = Project.find(:all, :conditions => ["is_public=?", true])
     assert_equal 3, public_projects.length
