diff --git a/Changelog.md b/Changelog.md
index b53fad879dfb9d98ff270618058ff9fcca54aee7..79e13c40995e378f183744078139a70413de36d1 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -7,6 +7,7 @@
 * Update comment in database example config [#7282](https://github.com/diaspora/diaspora/pull/7282)
 
 ## Features
+* Add support for [Liberapay](https://liberapay.com) donations [#7290](https://github.com/diaspora/diaspora/pull/7290)
 
 # 0.6.3.0
 
diff --git a/app/assets/images/buttons/liberapay-button.svg b/app/assets/images/buttons/liberapay-button.svg
new file mode 100644
index 0000000000000000000000000000000000000000..995dd029cfc37ea5e1196b0b49f0a42daf79f9e8
--- /dev/null
+++ b/app/assets/images/buttons/liberapay-button.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="83" height="30">
+  <rect id="back" fill="#f6c915" x="1" y=".5" width="82" height="29" rx="4"/>
+  <svg viewBox="0 0 80 80" height="16" width="16" x="7" y="7">
+    <g transform="translate(-78.37-208.06)" fill="#1a171b">
+      <path d="m104.28 271.1c-3.571 0-6.373-.466-8.41-1.396-2.037-.93-3.495-2.199-4.375-3.809-.88-1.609-1.308-3.457-1.282-5.544.025-2.086.313-4.311.868-6.675l9.579-40.05 11.69-1.81-10.484 43.44c-.202.905-.314 1.735-.339 2.489-.026.754.113 1.421.415 1.999.302.579.817 1.044 1.546 1.395.729.353 1.747.579 3.055.679l-2.263 9.278"/>
+      <path d="m146.52 246.14c0 3.671-.604 7.03-1.811 10.07-1.207 3.043-2.879 5.669-5.01 7.881-2.138 2.213-4.702 3.935-7.693 5.167-2.992 1.231-6.248 1.848-9.767 1.848-1.71 0-3.42-.151-5.129-.453l-3.394 13.651h-11.162l12.52-52.19c2.01-.603 4.311-1.143 6.901-1.622 2.589-.477 5.393-.716 8.41-.716 2.815 0 5.242.428 7.278 1.282 2.037.855 3.708 2.024 5.02 3.507 1.307 1.484 2.274 3.219 2.904 5.205.627 1.987.942 4.11.942 6.373m-27.378 15.461c.854.202 1.91.302 3.167.302 1.961 0 3.746-.364 5.355-1.094 1.609-.728 2.979-1.747 4.111-3.055 1.131-1.307 2.01-2.877 2.64-4.714.628-1.835.943-3.858.943-6.071 0-2.161-.479-3.998-1.433-5.506-.956-1.508-2.615-2.263-4.978-2.263-1.61 0-3.118.151-4.525.453l-5.28 21.948"/>
+    </g>
+  </svg>
+  <text fill="#1a171b" text-anchor="middle" font-family="Helvetica Neue,Helvetica,Arial,sans-serif" font-weight="700" font-size="14" x="50" y="20">Donate</text>
+</svg>
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 6fed2b8b6b355bedae28c0ec415a40428be1a008..3a89c597db50c0eb9744b07d260989ead75bf37c 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -23,6 +23,12 @@ module ApplicationHelper
     AppConfig.settings.source_url.presence || "#{root_path.chomp('/')}/source.tar.gz"
   end
 
+  def donations_enabled?
+    AppConfig.settings.paypal_donations.enable? ||
+    AppConfig.settings.liberapay_username.present? ||
+    AppConfig.bitcoin_donation_address.present?
+  end
+
   def timeago(time, options={})
     timeago_tag(time, options.merge(:class => 'timeago', :title => time.iso8601, :force => true)) if time
   end
diff --git a/app/views/shared/_donatepod.html.haml b/app/views/shared/_donatepod.html.haml
index 430525e6fb3f50ed868ed19ed23392c1de505b55..c2d860f9262990436f7a1c78b7ec92e52b4ad307 100644
--- a/app/views/shared/_donatepod.html.haml
+++ b/app/views/shared/_donatepod.html.haml
@@ -1,15 +1,29 @@
 - if AppConfig.settings.paypal_donations.enable?
-  PayPal:
-  %form{action: "https://www.paypal.com/cgi-bin/webscr", method: "post", target: "_blank"}
-    %input{name: "cmd", type: "hidden", value: "_s-xclick"}
-    - if AppConfig.settings.paypal_donations.paypal_hosted_button_id.present?
-      %input{name: "hosted_button_id", type: "hidden", value: AppConfig.settings.paypal_donations.paypal_hosted_button_id}
-    -if AppConfig.settings.paypal_donations.paypal_unhosted_button_encrypted.present?
-      %input{name: "encrypted", type: "hidden", value: AppConfig.settings.paypal_donations.paypal_unhosted_button_encrypted}
-    %input{name: "currency_code", type: "hidden", value: AppConfig.settings.paypal_donations.currency}
-    %input{name: "submit", type: "submit", value: t("aspects.index.donate"), class: "btn btn-default"}
+  %p
+    PayPal:
+    %br
+    %form{action: "https://www.paypal.com/cgi-bin/webscr", method: "post", target: "_blank"}
+      %input{name: "cmd", type: "hidden", value: "_s-xclick"}
+      - if AppConfig.settings.paypal_donations.paypal_hosted_button_id.present?
+        %input{name: "hosted_button_id", type: "hidden",
+          value: AppConfig.settings.paypal_donations.paypal_hosted_button_id}
+      - if AppConfig.settings.paypal_donations.paypal_unhosted_button_encrypted.present?
+        %input{name: "encrypted", type: "hidden",
+          value: AppConfig.settings.paypal_donations.paypal_unhosted_button_encrypted}
+      %input{name: "currency_code", type: "hidden", value: AppConfig.settings.paypal_donations.currency}
+      %input.btn.btn-default{name: "submit", type: "submit", value: t("aspects.index.donate")}
 
-- if AppConfig.bitcoin_donation_address
-  Bitcoin:
-  %input{type: "text", id: "bitcoin_address", value: AppConfig.bitcoin_donation_address, readonly: true}
+- if AppConfig.settings.liberapay_username.present?
+  %p
+    Liberapay:
+    %br
+    %a{id: "liberapay-button", href: "https://liberapay.com/#{AppConfig.settings.liberapay_username}/donate"}
+      = image_tag "buttons/liberapay-button.svg",
+          alt: t("aspects.index.donate"),
+          title: t("aspects.index.donate_liberapay")
 
+- if AppConfig.bitcoin_donation_address
+  %p
+    Bitcoin:
+    %br
+    %input{type: "text", id: "bitcoin_address", value: AppConfig.bitcoin_donation_address, readonly: true}
diff --git a/app/views/streams/main_stream.html.haml b/app/views/streams/main_stream.html.haml
index ed210d1856f4b820112ed764cce562d7d20d3b90..b5130de8ca0802f5ac6e0035cf5568854ea864d8 100644
--- a/app/views/streams/main_stream.html.haml
+++ b/app/views/streams/main_stream.html.haml
@@ -124,7 +124,7 @@
           .content
             != t("bookmarklet.explanation", link: link_to(t("bookmarklet.post_something"), bookmarklet_code))
 
-        - if AppConfig.settings.paypal_donations.enable? || AppConfig.bitcoin_donation_address
+        - if donations_enabled?
           .section.collapsed
             .title
               %h5.title-header
diff --git a/config/defaults.yml b/config/defaults.yml
index 285b9d6cfe30adcb9669aaa7d971a49917c4ad52..ca3e4d5e6755ce806b4f193abc40c6689d142fcb 100644
--- a/config/defaults.yml
+++ b/config/defaults.yml
@@ -105,6 +105,7 @@ defaults:
       currency: USD
       paypal_hosted_button_id:
       paypal_unhosted_button_encrypted:
+    liberapay_username:
     bitcoin_address:
     bitcoin_wallet_id: # DEPRECATED: Remove with 0.6
     community_spotlight:
diff --git a/config/diaspora.yml.example b/config/diaspora.yml.example
index d4f0622e5958d7756b20eadfe2502cae6a2b0cf4..833f36bb0ac0975f26c0591c47a896ae804be688 100644
--- a/config/diaspora.yml.example
+++ b/config/diaspora.yml.example
@@ -430,6 +430,10 @@ configuration: ## Section
       ## OR encrypted key of unhosted button
       #paypal_unhosted_button_encrypted: "-----BEGIN PKCS7-----"
 
+    ## Liberapay.com is a free platform which allow donations like patreon
+    ## Set your username to include your liberapay button
+    # liberapay_username: "change_me"
+
     ## Bitcoin donations
     ## You can provide a bitcoin address here to allow your users to provide
     ## donations towards the running of their pod.
diff --git a/config/locales/diaspora/en.yml b/config/locales/diaspora/en.yml
index 669079d3a17a90b0aedaa93ae56bdce36b74b39d..065f7336c01df548969581bbbb1ea6380c2ddd13 100644
--- a/config/locales/diaspora/en.yml
+++ b/config/locales/diaspora/en.yml
@@ -194,6 +194,7 @@ en:
     index:
       donate: "Donate"
       keep_pod_running: "Keep %{pod} running fast and buy servers their coffee fix with a monthly donation!"
+      donate_liberapay: "Donate to liberapay"
       welcome_to_diaspora: "Welcome to diaspora*, %{name}!"
       introduce_yourself: "This is your stream.  Jump in and introduce yourself."
 
diff --git a/features/desktop/donations.feature b/features/desktop/donations.feature
index 0985ff132cfc2d08712e47447323ed526a6210fe..8ef798acb683813ebd1e43380228c35daca32921 100644
--- a/features/desktop/donations.feature
+++ b/features/desktop/donations.feature
@@ -16,3 +16,10 @@ Feature: donations
     Then I should see "Donate" within ".info-bar"
     And I click on "Donate" navbar title
     Then I should see the Bitcoin address
+
+  Scenario: Liberapay donations
+    Given I have configured a Liberapay username
+    And I go to the home page
+    Then I should see "Donate" within ".info-bar"
+    And I click on "Donate" navbar title
+    Then I should see the Liberapay donate button
diff --git a/features/step_definitions/custom_web_steps.rb b/features/step_definitions/custom_web_steps.rb
index a84f2d337bbac07996a9bb1a4bba613c29ba9c9c..c72deff6a6ec21d40b407ea2b4afdd125482be6b 100644
--- a/features/step_definitions/custom_web_steps.rb
+++ b/features/step_definitions/custom_web_steps.rb
@@ -288,6 +288,14 @@ Then /^I should see the Bitcoin address$/ do
   find("#bitcoin_address")['value'].should == "AAAAAA"
 end
 
+Given /^I have configured a Liberapay username$/ do
+  AppConfig.settings.liberapay_username = "BBBBBB"
+end
+
+Then /^I should see the Liberapay donate button$/ do
+  find("#liberapay-button")["href"].should == "https://liberapay.com/BBBBBB/donate"
+end
+
 Given /^"([^"]*)" is hidden$/ do |selector|
   page.should have_selector(selector, visible: false)
   page.should_not have_selector(selector)
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 84bc7cc35ac8aa497fda4291a8091b29e5d3fe02..8a277d41a44db392ea454645d9c58e9f2ea3781f 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -68,6 +68,34 @@ describe ApplicationHelper, :type => :helper do
     end
   end
 
+  describe "#donations_enabled?" do
+    it "returns false when nothing is set" do
+      expect(helper.donations_enabled?).to be false
+    end
+
+    it "returns true when the paypal donations is enabled" do
+      AppConfig.settings.paypal_donations.enable = true
+      expect(helper.donations_enabled?).to be true
+    end
+
+    it "returns true when the liberapay username is set" do
+      AppConfig.settings.liberapay_username = "foo"
+      expect(helper.donations_enabled?).to be true
+    end
+
+    it "returns true when the bitcoin_address is set" do
+      AppConfig.settings.bitcoin_address = "bar"
+      expect(helper.donations_enabled?).to be true
+    end
+
+    it "returns true when all the donations are enabled" do
+      AppConfig.settings.paypal_donations.enable = true
+      AppConfig.settings.liberapay_username = "foo"
+      AppConfig.settings.bitcoin_address = "bar"
+      expect(helper.donations_enabled?).to be true
+    end
+  end
+
   describe "#changelog_url" do
     let(:changelog_url_setting) {
       double.tap {|double| allow(AppConfig).to receive(:settings).and_return(double(changelog_url: double)) }