diff --git a/app/controllers/about_controller.rb b/app/controllers/about_controller.rb
index 84e5fbbd91..b69c8e790f 100644
--- a/app/controllers/about_controller.rb
+++ b/app/controllers/about_controller.rb
@@ -7,6 +7,12 @@ class AboutController < ApplicationController
     @description = Setting.site_description
   end
 
+  def more
+    @extended_description = Setting.site_extended_description
+    @contact_account      = Account.find_local(Setting.site_contact_username)
+    @contact_email        = Setting.site_contact_email
+  end
+
   def terms; end
 
   private
diff --git a/app/lib/settings/extend.rb b/app/lib/settings/extend.rb
index 7241a1221c..407c3480f0 100644
--- a/app/lib/settings/extend.rb
+++ b/app/lib/settings/extend.rb
@@ -1,9 +1,11 @@
+# frozen_string_literal: true
+
 module Settings
   module Extend
-  	extend ActiveSupport::Concern
+    extend ActiveSupport::Concern
 
     def settings
       ScopedSettings.for_thing(self)
     end
   end
-end
\ No newline at end of file
+end
diff --git a/app/lib/settings/scoped_settings.rb b/app/lib/settings/scoped_settings.rb
index f8f22a91b2..82b70d1280 100644
--- a/app/lib/settings/scoped_settings.rb
+++ b/app/lib/settings/scoped_settings.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
 module Settings
   class ScopedSettings < ::Setting
     def self.for_thing(object)
@@ -9,4 +11,4 @@ module Settings
       unscoped.where(thing_type: @object.class.base_class.to_s, thing_id: @object.id)
     end
   end
-end
\ No newline at end of file
+end
diff --git a/app/models/account.rb b/app/models/account.rb
index ec0e81f7cd..5f07615fcf 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -159,6 +159,7 @@ class Account < ApplicationRecord
     end
 
     def find_remote!(username, domain)
+      return if username.blank?
       where(arel_table[:username].matches(username.gsub(/[%_]/, '\\\\\0'))).where(domain.nil? ? { domain: nil } : arel_table[:domain].matches(domain.gsub(/[%_]/, '\\\\\0'))).take!
     end
 
diff --git a/app/models/setting.rb b/app/models/setting.rb
index f3c65c0548..3796253d43 100644
--- a/app/models/setting.rb
+++ b/app/models/setting.rb
@@ -9,10 +9,9 @@ class Setting < RailsSettings::Base
   end
 
   class << self
-
     def [](key)
       return super(key) unless rails_initialized?
-      
+
       val = Rails.cache.fetch(cache_key(key, @object)) do
         db_val = object(key)
 
@@ -25,7 +24,7 @@ class Setting < RailsSettings::Base
           default_settings[key]
         end
       end
-      
+
       val
     end
 
diff --git a/app/models/web.rb b/app/models/web.rb
index 3c6eebbe26..58654fd77e 100644
--- a/app/models/web.rb
+++ b/app/models/web.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
 module Web
   def self.table_name_prefix
     'web_'
diff --git a/app/views/about/more.html.haml b/app/views/about/more.html.haml
new file mode 100644
index 0000000000..49a3a0c95d
--- /dev/null
+++ b/app/views/about/more.html.haml
@@ -0,0 +1,8 @@
+- content_for :page_title do
+  #{Rails.configuration.x.local_domain}
+
+.wrapper
+  = @extended_description.html_safe
+
+  - if @contact_account
+    = render partial: 'authorize_follow/card', locals: { account: @contact_account }
\ No newline at end of file
diff --git a/app/views/admin/settings/index.html.haml b/app/views/admin/settings/index.html.haml
index 4f9ad2fde0..5b482213ba 100644
--- a/app/views/admin/settings/index.html.haml
+++ b/app/views/admin/settings/index.html.haml
@@ -9,6 +9,12 @@
       %th Setting
       %th Click to edit
   %tbody
+    %tr
+      %td{ rowspan: 2 }
+        %strong Contact information
+      %td= best_in_place @settings['site_contact_username'], :value, url: admin_setting_path(@settings['site_contact_username']), place_holder: 'Enter a username'
+    %tr
+      %td= best_in_place @settings['site_contact_email'], :value, url: admin_setting_path(@settings['site_contact_email']), place_holder: 'Enter a public e-mail address'
     %tr
       %td
         %strong Site description
@@ -21,8 +27,10 @@
         %code= '<em>'
       %td= best_in_place @settings['site_description'], :value, as: :textarea, url: admin_setting_path(@settings['site_description'])
     %tr
-      %td{ rowspan: 2 }
-        %strong Contact information
-      %td= best_in_place @settings['site_contact_username'], :value, url: admin_setting_path(@settings['site_contact_username']), place_holder: 'Enter a username'
-    %tr
-      %td= best_in_place @settings['site_contact_email'], :value, url: admin_setting_path(@settings['site_contact_email']), place_holder: 'Enter a public e-mail address'
+      %td
+        %strong Extended site description
+        %br/
+        Displayed on extended information page
+        %br/
+        You can use HTML tags
+      %td= best_in_place @settings['site_extended_description'], :value, as: :textarea, url: admin_setting_path(@settings['site_extended_description'])
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index c0262e9334..42de503f0b 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -143,9 +143,10 @@ Rails.application.routes.draw do
 
   get '/web/(*any)', to: 'home#index', as: :web
 
-  get :about, to: 'about#index'
-  get :terms, to: 'about#terms'
-
+  get '/about',      to: 'about#index'
+  get '/about/more', to: 'about#more'
+  get '/terms',      to: 'about#terms'
+  
   root 'home#index'
 
   match '*unmatched_route', via: :all, to: 'application#raise_not_found'
diff --git a/config/settings.yml b/config/settings.yml
index 2e309e46ed..a78bd067d5 100644
--- a/config/settings.yml
+++ b/config/settings.yml
@@ -1,6 +1,7 @@
 # config/app.yml for rails-settings-cached
 defaults: &defaults
   site_description: ''
+  site_extended_description: ''
   site_contact_username: ''
   site_contact_email: ''
   notification_emails:
@@ -12,7 +13,6 @@ defaults: &defaults
   interactions:
     must_be_follower: false
     must_be_following: false
-
 development:
   <<: *defaults