diff --git a/src/components/user_card_content/user_card_content.js b/src/components/user_card_content/user_card_content.js
index 6e67a321..32d62ebb 100644
--- a/src/components/user_card_content/user_card_content.js
+++ b/src/components/user_card_content/user_card_content.js
@@ -22,6 +22,11 @@ export default {
     isOtherUser () {
       return this.user.id !== this.$store.state.users.currentUser.id
     },
+    subscribeUrl () {
+      // eslint-disable-next-line no-undef
+      const serverUrl = new URL(this.user.statusnet_profile_url)
+      return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`
+    },
     loggedIn () {
       return this.$store.state.users.currentUser
     },
diff --git a/src/components/user_card_content/user_card_content.vue b/src/components/user_card_content/user_card_content.vue
index 4c40c55f..ef000c94 100644
--- a/src/components/user_card_content/user_card_content.vue
+++ b/src/components/user_card_content/user_card_content.vue
@@ -46,6 +46,15 @@
               </button>
             </span>
           </div>
+          <div class="remote-follow" v-if='!loggedIn && user.is_local'>
+            <form method="POST" :action='subscribeUrl'>
+              <input type="hidden" name="nickname" :value="user.screen_name">
+              <input type="hidden" name="profile" value="">
+              <button click="submit" class="remote-button base05 base02-background">
+                {{ $t('user_card.remote_follow') }}
+              </button>
+            </form>
+          </div>
           <div class='block' v-if='isOtherUser && loggedIn'>
             <span v-if='user.statusnet_blocking'>
               <button @click="unblockUser" class="base04 base00-background pressed">
@@ -182,6 +191,11 @@
       min-height: 28px;
     }
 
+    .remote-follow {
+      max-width: 220px;
+      min-height: 28px;
+    }
+
     .follow {
       max-width: 220px;
       min-height: 28px;
@@ -191,6 +205,12 @@
       width: 92%;
       height: 100%;
     }
+
+    .remote-button {
+      height: 28px !important;
+      width: 92%;
+    }
+
     .pressed {
       border-bottom-color: rgba(255, 255, 255, 0.2);
       border-top-color: rgba(0, 0, 0, 0.2);
diff --git a/src/i18n/messages.js b/src/i18n/messages.js
index d4128ab7..f3f1e2d4 100644
--- a/src/i18n/messages.js
+++ b/src/i18n/messages.js
@@ -208,7 +208,8 @@ const en = {
     muted: 'Muted',
     followers: 'Followers',
     followees: 'Following',
-    per_day: 'per day'
+    per_day: 'per day',
+    remote_follow: 'Remote follow'
   },
   timeline: {
     show_new: 'Show new',