diff --git a/district/models.py b/district/models.py
index e57ea2ae006e40b827f6d70d20ca82a68aa228fa..cf218bfb13216c3688b58fb4c79120dcaea39d65 100644
--- a/district/models.py
+++ b/district/models.py
@@ -49,7 +49,7 @@ from shared.models import (
     ArticleMixin,
     ExtendedMetadataHomePageMixin,
     ExtendedMetadataPageMixin,
-    HomepageMixin,
+    MastodonFeedMixin,
     MenuMixin,
     SubpageMixin,
 )
@@ -69,7 +69,7 @@ class DistrictHomePage(
     ExtendedMetadataHomePageMixin,
     MetadataPageMixin,
     CalendarMixin,
-    HomepageMixin,
+    MastodonFeedMixin,
     Page,
 ):
     ### FIELDS
@@ -358,7 +358,12 @@ class DistrictArticleTag(TaggedItemBase):
 
 
 class DistrictArticlePage(
-    ArticleMixin, ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    ArticleMixin,
+    ExtendedMetadataPageMixin,
+    SubpageMixin,
+    MastodonFeedMixin,
+    MetadataPageMixin,
+    Page,
 ):
     ### FIELDS
 
@@ -421,7 +426,12 @@ class DistrictArticlePage(
 
 
 class DistrictArticlesPage(
-    RoutablePageMixin, ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    RoutablePageMixin,
+    ExtendedMetadataPageMixin,
+    SubpageMixin,
+    MastodonFeedMixin,
+    MetadataPageMixin,
+    Page,
 ):
     ### FIELDS
 
@@ -557,7 +567,7 @@ class DistrictArticlesPage(
 
 
 class DistrictContactPage(
-    ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    ExtendedMetadataPageMixin, SubpageMixin, MastodonFeedMixin, MetadataPageMixin, Page
 ):
     ### FIELDS
 
@@ -601,7 +611,7 @@ class DistrictPersonTag(TaggedItemBase):
 
 
 class DistrictPersonPage(
-    ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    ExtendedMetadataPageMixin, SubpageMixin, MastodonFeedMixin, MetadataPageMixin, Page
 ):
     ### FIELDS
     job = models.CharField(
@@ -762,7 +772,7 @@ class DistrictPersonPage(
 
 
 class DistrictPeoplePage(
-    ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    ExtendedMetadataPageMixin, SubpageMixin, MastodonFeedMixin, MetadataPageMixin, Page
 ):
     ### FIELDS
 
@@ -804,7 +814,7 @@ class DistrictPeoplePage(
 
 
 class DistrictElectionBasePage(
-    ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    ExtendedMetadataPageMixin, SubpageMixin, MastodonFeedMixin, MetadataPageMixin, Page
 ):
     ### FIELDS
 
@@ -1125,7 +1135,7 @@ class DistrictElectionRootPage(RoutablePageMixin, Page):
 
 
 class DistrictInteractiveProgramPage(
-    ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    ExtendedMetadataPageMixin, SubpageMixin, MastodonFeedMixin, MetadataPageMixin, Page
 ):
     ### FIELDS
 
@@ -1172,7 +1182,7 @@ class DistrictInteractiveProgramPage(
 
 
 class DistrictProgramPage(
-    ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    ExtendedMetadataPageMixin, SubpageMixin, MastodonFeedMixin, MetadataPageMixin, Page
 ):
     ### FIELDS
 
@@ -1222,7 +1232,12 @@ class DistrictProgramPage(
 
 
 class DistrictCenterPage(
-    CalendarMixin, ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    CalendarMixin,
+    ExtendedMetadataPageMixin,
+    SubpageMixin,
+    MastodonFeedMixin,
+    MetadataPageMixin,
+    Page,
 ):
     ### FIELDS
 
@@ -1321,7 +1336,7 @@ class DistrictCenterPage(
 
 
 class DistrictCrossroadPage(
-    ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    ExtendedMetadataPageMixin, SubpageMixin, MastodonFeedMixin, MetadataPageMixin, Page
 ):
     ### FIELDS
 
@@ -1379,7 +1394,7 @@ class DistrictCrossroadPage(
 
 
 class DistrictCustomPage(
-    ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    ExtendedMetadataPageMixin, SubpageMixin, MastodonFeedMixin, MetadataPageMixin, Page
 ):
     ### FIELDS
 
@@ -1417,7 +1432,7 @@ class DistrictCustomPage(
 
 
 class DistrictGeoFeatureCollectionPage(
-    ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    ExtendedMetadataPageMixin, SubpageMixin, MastodonFeedMixin, MetadataPageMixin, Page
 ):
     ### FIELDS
     perex = models.TextField("Perex", null=True)
@@ -1635,7 +1650,12 @@ def make_feature_index_cache_key(feature: "DistrictGeoFeatureDetailPage"):
 
 
 class DistrictGeoFeatureDetailPage(
-    ExtendedMetadataPageMixin, MetadataPageMixin, SubpageMixin, Page, Orderable
+    ExtendedMetadataPageMixin,
+    MetadataPageMixin,
+    SubpageMixin,
+    MastodonFeedMixin,
+    Page,
+    Orderable,
 ):
     perex = models.TextField("Perex", null=False)
     geojson = models.TextField(
diff --git a/district/templates/district/base.html b/district/templates/district/base.html
index 2128f77c5dedfe781287a3b785e6d86d1a05e36e..43e06b0099b6b18f5d1b523626ca977e13060db8 100644
--- a/district/templates/district/base.html
+++ b/district/templates/district/base.html
@@ -201,17 +201,19 @@
                 {% endwith %}
               {% endif %}
 
-              <button
-                class="btn btn--condensed btn--grey-500 btn--hoveractive btn--to-white text-sm ml-2 px-0"
-                :class="{'btn--activated': isCurrentView('mastodon')}"
-                @click="toggleView('mastodon')"
-                aria-label="Mastodon feed"
-              >
-                <div class="btn__body py-2">
-                  {% include "shared/mastodon_icon_snippet.html" with size="20" class_name="mr-2" %}
-                  <span class="hidden md:block" aria-hidden="true">Mastodon feed</span>
-                </div>
-              </button>
+              {% if page.mastodon_feed or page.root_page.mastodon_feed %}
+                <button
+                  class="btn btn--condensed btn--grey-500 btn--hoveractive btn--to-white text-sm ml-2 px-0"
+                  :class="{'btn--activated': isCurrentView('mastodon')}"
+                  @click="toggleView('mastodon')"
+                  aria-label="Mastodon feed"
+                >
+                  <div class="btn__body py-2">
+                    {% include "shared/mastodon_icon_snippet.html" with size="20" class_name="mr-2" %}
+                    <span class="hidden md:block" aria-hidden="true">Mastodon feed</span>
+                  </div>
+                </button>
+              {% endif %}
 
               {% if page.root_page.facebook %}
                 <a href="{{ page.root_page.facebook }}" target="_blank" rel="noopener noreferrer" class="btn btn--inline-icon btn--condensed btn--hoveractive btn--grey-500 btn--to-brands-facebook text-sm ml-2 px-0">
diff --git a/senate/models.py b/senate/models.py
index b6b95aa998f72a2c1d9ae3a68eea6a36275ac238..7c26a7bb2392c80e55bf592c85e9f64ff8c42528 100644
--- a/senate/models.py
+++ b/senate/models.py
@@ -8,7 +8,7 @@ from wagtail.images.edit_handlers import FieldPanel
 from wagtail.models import Page
 from wagtailmetadata.models import MetadataPageMixin
 
-from shared.models import HomepageMixin
+from shared.models import MastodonFeedMixin
 from tuning import admin_help
 
 
@@ -26,7 +26,7 @@ class PersonBlock(blocks.StructBlock):
         label = "osoba"
 
 
-class SenateHomePage(MetadataPageMixin, HomepageMixin, Page):
+class SenateHomePage(MetadataPageMixin, MastodonFeedMixin, Page):
     ### FIELDS
 
     senators = StreamField(
diff --git a/shared/models.py b/shared/models.py
index 7608e06b760b5503e0fe28daefdd8ca6ec86f209..1f6aeeb88326fdf4c2cf07f52882ce384b8b1cc7 100644
--- a/shared/models.py
+++ b/shared/models.py
@@ -16,11 +16,7 @@ from shared.blocks import (
 logger = logging.getLogger(__name__)
 
 
-class HomepageMixin(models.Model):
-    """
-    Use this for homepage types
-    """
-
+class MastodonFeedMixin(models.Model):
     mastodon_feed = StreamField(
         [
             ("mastodon_feed", MastodonFeedBlock()),
@@ -35,19 +31,9 @@ class HomepageMixin(models.Model):
         abstract = True
 
 
-class SubpageMixin(models.Model):
+class SubpageMixin:
     """Must be used in class definition before MetadataPageMixin!"""
 
-    mastodon_feed = StreamField(
-        [
-            ("mastodon_feed", MastodonFeedBlock()),
-        ],
-        verbose_name="Mastodon feed",
-        blank=True,
-        use_json_field=True,
-        max_length=1,
-    )
-
     @property
     def root_page(self):
         if not hasattr(self, "_root_page"):
diff --git a/shared/templates/shared/blocks/mastodon_feed_block.html b/shared/templates/shared/blocks/mastodon_feed_block.html
index 49677866c2515ba2d56f2608a54368f8862f59e0..583fe625cb8ceed16ce3f7a47346eee7a2f2d74c 100644
--- a/shared/templates/shared/blocks/mastodon_feed_block.html
+++ b/shared/templates/shared/blocks/mastodon_feed_block.html
@@ -4,6 +4,6 @@
     allowfullscreen
     sandbox="allow-top-navigation allow-scripts allow-popups allow-popups-to-escape-sandbox"
     width="400"
-    height="800"
+    height="400"
     src="https://mastofeed.com/apiv2/feed?userurl={{ self.url | mastodon_url:self.user_name | urlencode:'' }}&theme=dark&size=100&header=true&replies=false&boosts=false">
 </iframe>
diff --git a/shared/templates/shared/mastodon_feed_link_snippet.html b/shared/templates/shared/mastodon_feed_link_snippet.html
index 5368bb63920038f78eb705f49fe393081a4db171..ba639792704faac3865b1dd29dda81657680ed1a 100644
--- a/shared/templates/shared/mastodon_feed_link_snippet.html
+++ b/shared/templates/shared/mastodon_feed_link_snippet.html
@@ -4,6 +4,4 @@
     <a href="{{ page.mastodon_feed.url | mastodon_url: page.mastodon_feed.user_name }}" class="social-icon ">{% include "shared/mastodon_icon_snippet.html" with size="20" %}</a>
 {% elif page.root_page.mastodon_feed %}
     <a href="{{ page.root_page.mastodon_feed.url | mastodon_url: page.root_page.mastodon_feed.user_name }}" class="social-icon ">{% include "shared/mastodon_icon_snippet.html" with size="20" %}</a>
-{% else %}
-    <a href="https://mastodon.pirati.cz" class="social-icon ">{% include "shared/mastodon_icon_snippet.html" with size="20" %}</a>
 {% endif %}
diff --git a/shared/templates/shared/mastodon_feed_snippet.html b/shared/templates/shared/mastodon_feed_snippet.html
index 5c09a78506bf047fc9ff72fa3dbe0427d22afdde..042b00854fc9b6cb059ffacc22184d13a9523b4c 100644
--- a/shared/templates/shared/mastodon_feed_snippet.html
+++ b/shared/templates/shared/mastodon_feed_snippet.html
@@ -4,12 +4,4 @@
     {% include_block page.mastodon_feed %}
 {% elif page.root_page.mastodon_feed %}
     {% include_block page.root_page.mastodon_feed %}
-{% else %}
-    <iframe
-        allowfullscreen
-        sandbox="allow-top-navigation allow-scripts allow-popups allow-popups-to-escape-sandbox"
-        width="400"
-        height="800"
-        src="https://mastofeed.com/api/feed?url={{ 'https://mastodon.pirati.cz' | urlencode:'' }}&theme=dark&size=100&header=true&replies=false&boosts=false">
-    </iframe>
 {% endif %}
diff --git a/uniweb/models.py b/uniweb/models.py
index 9eeb63441ebbdad2722d755ec8b09c1fac87132d..32aba6fb5ba92b1a52bb03599dcd4d23bb6b16be 100644
--- a/uniweb/models.py
+++ b/uniweb/models.py
@@ -31,13 +31,13 @@ from shared.models import (
     ArticleMixin,
     ExtendedMetadataHomePageMixin,
     ExtendedMetadataPageMixin,
-    HomepageMixin,
+    MastodonFeedMixin,
     SubpageMixin,
 )
 from shared.utils import make_promote_panels, strip_all_html_tags, trim_to_length
 from tuning import admin_help
 
-from .blocks import PeopleGroupListBlock, PersonCustomPositionBlock, PersonUrlBlock
+from .blocks import PeopleGroupListBlock, PersonUrlBlock
 from .constants import (
     ALIGN_CHOICES,
     ALIGN_CSS,
@@ -301,7 +301,11 @@ class UniwebArticleTag(TaggedItemBase):
 
 
 class UniwebHomePage(
-    Page, ExtendedMetadataHomePageMixin, MetadataPageMixin, CalendarMixin, HomepageMixin
+    Page,
+    ExtendedMetadataHomePageMixin,
+    MetadataPageMixin,
+    CalendarMixin,
+    MastodonFeedMixin,
 ):
     ### FIELDS
 
@@ -407,7 +411,7 @@ class UniwebHomePage(
 
 
 class UniwebFlexiblePage(
-    Page, ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin
+    Page, ExtendedMetadataPageMixin, SubpageMixin, MastodonFeedMixin, MetadataPageMixin
 ):
     ### FIELDS
 
@@ -424,6 +428,7 @@ class UniwebFlexiblePage(
 
     content_panels = Page.content_panels + [
         FieldPanel("content"),
+        FieldPanel("mastodon_feed"),
     ]
 
     settings_panels = []
@@ -444,7 +449,7 @@ class UniwebFlexiblePage(
 
 
 class UniwebArticlesIndexPage(
-    Page, ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin
+    Page, ExtendedMetadataPageMixin, SubpageMixin, MastodonFeedMixin, MetadataPageMixin
 ):
     ### FIELDS
 
@@ -484,7 +489,12 @@ class UniwebArticlesIndexPage(
 
 
 class UniwebArticlePage(
-    ArticleMixin, ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    ArticleMixin,
+    ExtendedMetadataPageMixin,
+    SubpageMixin,
+    MastodonFeedMixin,
+    MetadataPageMixin,
+    Page,
 ):
     ### FIELDS
 
@@ -527,7 +537,11 @@ class UniwebFormField(AbstractFormField):
 
 
 class UniwebFormPage(
-    AbstractForm, ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin
+    AbstractForm,
+    ExtendedMetadataPageMixin,
+    SubpageMixin,
+    MastodonFeedMixin,
+    MetadataPageMixin,
 ):
     ### FIELDS
 
@@ -594,7 +608,7 @@ class UniwebFormPage(
 # Don't waste time making a new mixin for this,
 # we'll be doing Octopus imports within a short while.
 class UniwebPersonPage(
-    ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    ExtendedMetadataPageMixin, SubpageMixin, MastodonFeedMixin, MetadataPageMixin, Page
 ):
     ### FIELDS
     job = models.CharField(
@@ -754,7 +768,7 @@ class UniwebPersonPage(
 
 
 class UniwebPeoplePage(
-    ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page
+    ExtendedMetadataPageMixin, SubpageMixin, MastodonFeedMixin, MetadataPageMixin, Page
 ):
     ### FIELDS