diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb
index 32bf94e5b4cf7240798613efcae5bb52ed822146..c860421acbe25663985e10f22d26e9239392a46e 100644
--- a/app/controllers/comments_controller.rb
+++ b/app/controllers/comments_controller.rb
@@ -135,12 +135,10 @@ class CommentsController < ApplicationController
   end
 
   def comment_link(comment)
-    if comment.post.question?
-      question_url(comment.post, anchor: "comment-#{comment.id}")
-    elsif comment.post.article?
-      article_url(comment.post, anchor: "comment-#{comment.id}")
+    if comment.post.parent_id.present?
+      post_url(comment.post.parent_id, anchor: "comment-#{comment.id}")
     else
-      question_url(comment.post.parent, anchor: "comment-#{comment.id}")
+      post_url(comment.post, anchor: "comment-#{comment.id}")
     end
   end
 
diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb
index f8843272a27a706e2f203ae048bd95608a1ffd3e..2cf943f3a5f950a2112d04d5476bb9507f334fb4 100644
--- a/app/controllers/posts_controller.rb
+++ b/app/controllers/posts_controller.rb
@@ -1,6 +1,6 @@
 # rubocop:disable Metrics/ClassLength
 class PostsController < ApplicationController
-  before_action :authenticate_user!, except: [:document, :share_q, :share_a, :help_center, :show]
+  before_action :authenticate_user!, except: [:document, :help_center, :show]
   before_action :set_post, only: [:toggle_comments, :feature, :lock, :unlock]
   before_action :set_scoped_post, only: [:change_category, :show, :edit, :update, :close, :reopen, :delete, :restore]
   before_action :verify_moderator, only: [:toggle_comments]
diff --git a/app/controllers/suggested_edit_controller.rb b/app/controllers/suggested_edit_controller.rb
index bf315464d91e4f9c5173269e7e10d500f67888f9..4e169347537d6a7f855d6fd5514226438a84452d 100644
--- a/app/controllers/suggested_edit_controller.rb
+++ b/app/controllers/suggested_edit_controller.rb
@@ -58,16 +58,7 @@ class SuggestedEditController < ApplicationController
                                                     decided_by: current_user, updated_at: now)
       flash[:success] = 'Edit rejected successfully.'
       AbilityQueue.add(@edit.user, "Suggested Edit Rejected ##{@edit.id}")
-      if @post.question?
-        render(json: { status: 'success', redirect_url: url_for(controller: :posts, action: :share_q,
-                                                                id: @post.id) })
-      elsif @post.answer?
-        render(json: { status: 'success', redirect_url: url_for(controller: :posts, action: :share_a,
-                                                        qid: @post.parent.id, id: @post.id) })
-      elsif @post.article?
-        render(json: { status: 'success', redirect_url: url_for(controller: :articles, action: :share,
-          id: @post.id) })
-      end
+      render json: { status: 'success', redirect_url: helpers.generic_share_link(@post) }
     else
       render json: { status: 'error', redirect_url: 'Cannot reject this suggested edit... Strange.' },
              status: :bad_request
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index d478ed361c06f264e97fb2db5c5b291429642911..d62eceb6397dc2ba1d564c41ef51663fa1f7c9bc 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -75,29 +75,15 @@ module ApplicationHelper
   end
 
   def generic_share_link(post)
-    case post.post_type_id
-    when Question.post_type_id
-      share_question_url(post)
-    when Answer.post_type_id
-      share_answer_url(qid: post.parent_id, id: post.id)
-    when Article.post_type_id
-      share_article_url(post)
+    if second_level_post_types.include?(post.post_type_id)
+      post_url(post, anchor: "answer-#{post.id}")
     else
-      '#'
+      post_url(post)
     end
   end
 
   def generic_edit_link(post)
-    case post.post_type_id
-    when Question.post_type_id
-      edit_question_url(post)
-    when Answer.post_type_id
-      edit_answer_url(post)
-    when Article.post_type_id
-      edit_article_url(post)
-    else
-      '#'
-    end
+    edit_post_url(post)
   end
 
   def generic_show_link(post)
diff --git a/app/views/answers/_answer.html.erb b/app/views/answers/_answer.html.erb
deleted file mode 100644
index 57af4919a16676cf0867f6418e4b4d1fb297a126..0000000000000000000000000000000000000000
--- a/app/views/answers/_answer.html.erb
+++ /dev/null
@@ -1,14 +0,0 @@
-<div class="question">
-  <div class="q-info-box">
-    <p class="large-text center"><%= answer.score %></p>
-    <p>score</p>
-  </div>
-  <div class="q-info-box">
-    <p><a href="/questions/<%= answer.parent.id %>"><%= answer.parent.title %></a></p>
-    <p>
-      Answered <span title="<%= answer.created_at %>" data-livestamp="<%= answer.created_at.to_time.iso8601 %>"><%= answer.created_at %></span>
-      by <a dir="ltr" href="/users/<%= answer.user.id %>"><%= answer.user.rtl_safe_username %></a>
-    </p>
-  </div>
-  <span class="clearfix"></span>
-</div>
diff --git a/app/views/answers/_new.html.erb b/app/views/answers/_new.html.erb
deleted file mode 100644
index 76ad4eaba24cd12198cec94b7925ab21f0e90a57..0000000000000000000000000000000000000000
--- a/app/views/answers/_new.html.erb
+++ /dev/null
@@ -1,47 +0,0 @@
-<h2>Your Answer</h2>
-<% if answer.errors.any? %>
-  <div class="notice is-danger">
-    <p>The following <%= "error".pluralize(answer.errors.count) %> prevented the answer from being posted:</p>
-    <ul>
-      <% answer.errors.full_messages.each do |e| %>
-        <li><%= e %></li>
-      <% end %>
-    </ul>
-  </div>
-<% end %>
-
-<%= render 'posts/markdown_script' %>
-<%= render 'posts/image_upload' %>
-
-<%= form_for answer, url: create_answer_path do |f| %>
-  <%= render 'shared/body_field', f: f, field_name: :body_markdown, field_label: 'Body', post: answer %>
-
-  <div class="form-group">
-    <%= f.label :license_id, 'License', class: 'form-element' %>
-    <% cat = defined?(@category) ? @category : @question.category %>
-    <span class="form-caption">
-      <% site_default = License.site_default %>
-      <% category_default = cat.license %>
-      <% if site_default.present? %>
-        site default: <a href="javascript:void(0)" class="js-license-autofill" data-license-id="<%= site_default.id %>">
-          <%= site_default.name %>
-        </a>
-      <% end %>
-      <% if site_default.present? && category_default.present? %>
-        &middot;
-      <% end %>
-      <% if category_default.present? %>
-        category default: <a href="javascript:void(0)" class="js-license-autofill" data-license-id="<%= category_default.id %>">
-          <%= category_default.name %>
-        </a>
-      <% end %>
-    </span>
-    <%= f.select :license_id, options_for_select(License.enabled.default_order(cat).map { |l| [l.name, l.id] }),
-                 {}, class: 'form-element' %>
-  </div>
-
-  <div class="post-preview"></div>
-  <div class="field">
-    <%= f.submit "Post Answer", class: "button is-filled" %>
-  </div>
-<% end %>
diff --git a/app/views/answers/edit.html.erb b/app/views/answers/edit.html.erb
deleted file mode 100644
index 6a7757331ea6d9f4c4534935a556f65db2dbf7f4..0000000000000000000000000000000000000000
--- a/app/views/answers/edit.html.erb
+++ /dev/null
@@ -1,47 +0,0 @@
-<% content_for :title, "Edit Answer" %>
-
-<h1><%= check_your_post_privilege(@answer, 'edit_posts') ? "Edit Answer" : "Suggest Edit for Answer" %></h1>
-<% if @answer.errors.any? %>
-  <div class="notice is-danger">
-    <p>The following <%= "error".pluralize(@answer.errors.count) %> prevented the answer from being updated:</p>
-    <ul>
-      <% @answer.errors.full_messages.each do |e| %>
-        <li><%= e %></li>
-      <% end %>
-    </ul>
-  </div>
-<% end %>
-
-<%= render 'posts/markdown_script' %>
-<%= render 'posts/image_upload' %>
-
-<%= form_for @answer, url: { controller: :answers, action: :update } do |f| %>
-  <%= render 'shared/body_field', f: f, field_name: :body_markdown, field_label: 'Body', post: @answer %>
-  <div class="post-preview"></div>
-  <div class="form-group">
-    <%= label_tag :edit_comment, 'Edit comment', class: "form-element" %>
-    <div class="form-caption">
-      Describe—if necessary—what you are changing and why you are making this edit.
-    </div>
-    <%= text_field_tag :edit_comment, params[:edit_comment], class: 'form-element' %>
-  </div>
-  <div class="form-group">
-    <%= f.submit (check_your_post_privilege(@answer, 'edit_posts') ? "Save changes" : "Suggest changes"), class: "button is-filled" %>
-    <%= link_to 'Cancel', question_path(@answer.parent), class: 'button is-outlined is-muted' %>
-  </div>
-<% end %>
-
-<h2>Question</h2>
-<div class="has-padding-6 has-border-style-solid has-border-width-1 has-border-color-tertiary-050" style="max-height: 500px; overflow: auto;">
-<%= render 'posts/expanded', post: @answer.parent %>
-</div>
-
-<% content_for :sidebar do %>
-  <div class="widget has-margin-4">
-    <h4 class="widget--header has-margin-0">Hints and Tips</h4>
-    <div class="widget--body">
-    <% guidance = @answer.category.answering_guidance_override || SiteSetting['AnsweringGuidance'] %>
-      <%= raw(sanitize(render_markdown(guidance), scrubber: scrubber)) %>
-    </div>
-  </div>
-<% end %>
diff --git a/app/views/answers/new.html.erb b/app/views/answers/new.html.erb
deleted file mode 100644
index 578e61015b553eca671ef855d6682fd1aa653074..0000000000000000000000000000000000000000
--- a/app/views/answers/new.html.erb
+++ /dev/null
@@ -1,3 +0,0 @@
-<%= render 'posts/expanded', post: @question, answer: @answer %>
-<hr/>
-<%= render 'new', answer: @answer, parent: @question %>
\ No newline at end of file
diff --git a/app/views/posts/_article_list.html.erb b/app/views/posts/_article_list.html.erb
index 607dd804a9dbd013d34a47e2128e7d2015adffb6..3d945a0d2695a0c16326469e82c73d838aafe0d9 100644
--- a/app/views/posts/_article_list.html.erb
+++ b/app/views/posts/_article_list.html.erb
@@ -19,7 +19,7 @@
       <% if @show_category_tag %>
         <span class="badge is-tag is-filled"><%= defined?(@category) ? @category.name : post.category.name %></span>
       <% end %>
-      <%= link_to post.title, share_article_path(post), 'data-ckb-item-link' => '' %>
+      <%= link_to post.title, generic_share_link(post), 'data-ckb-item-link' => '' %>
     </div>
     <% if @last_activity %>
       <p class="has-color-tertiary-600 has-float-right post-list--meta">
diff --git a/app/views/posts/_expanded.html.erb b/app/views/posts/_expanded.html.erb
index f9c0538e3adeeeadb879b2ac87ad50154ad44af7..1f39eb34844393aacc75703b6de2bbe647af621d 100644
--- a/app/views/posts/_expanded.html.erb
+++ b/app/views/posts/_expanded.html.erb
@@ -68,7 +68,7 @@
             <p>
               <%= post.close_reason.description.gsub "$SiteName", SiteSetting['SiteName'] %>
               <% if post.close_reason.requires_other_post %>
-                See: <%= link_to post.duplicate_post.title, question_path(post.duplicate_post), class: "has-font-size-larger" %>
+                See: <%= link_to post.duplicate_post.title, post_path(post.duplicate_post), class: "has-font-size-larger" %>
               <% end %>
             </p>
           <% end %>
@@ -216,7 +216,7 @@
                     Close
                   </a>
                 <% elsif post.closed %>
-                  <%= link_to reopen_question_path(post), method: :post, class: 'reopen-question tools--item' do %>
+                  <%= link_to reopen_post_path(post), method: :post, class: 'reopen-question tools--item' do %>
                     <i class="fa fa-unlock"></i>
                     Reopen
                   <% end %>
diff --git a/app/views/questions/_form.html.erb b/app/views/questions/_form.html.erb
deleted file mode 100644
index 9b750e5cda2e870130533fccd0ae1b5e5e8ee54f..0000000000000000000000000000000000000000
--- a/app/views/questions/_form.html.erb
+++ /dev/null
@@ -1,52 +0,0 @@
-<% is_edit ||= false %>
-
-<%= render 'posts/markdown_script' %>
-
-<% if @question.errors.any? %>
-  <div class="notice is-danger is-filled">
-    The following errors prevented this post from being saved:
-    <ul>
-      <% @question.errors.full_messages.each do |msg| %>
-        <li><%= msg %></li>
-      <% end %>
-    </ul>
-  </div>
-<% end %>
-
-<%= render 'posts/image_upload' %>
-
-<%= form_for @question, url: is_edit ? edit_question_path(@question) : create_question_path do |f| %>
-  <div class="form-group">
-    <%= f.label :title, "Title your question:", class: "form-element" %>
-    <%= f.text_field :title, class: "form-element" %>
-  </div>
-
-  <%= render 'shared/body_field', f: f, field_name: :body_markdown, field_label: 'Body', post: @question %>
-
-  <div class="post-preview"></div>
-
-  <div class="form-group">
-    <%= f.label :tags_cache, "Tags", class: "form-element" %>
-    <div class="form-caption">
-      Tags help to categorize questions. Separate them by space. Use hyphens for multiple-word tags.
-    </div>
-    <%= f.select :tags_cache, options_for_select(@question.tags_cache.map { |t| [t, t] }, selected: @question.tags_cache),
-                 { include_blank: true }, multiple: true, class: "form-element js-tag-select",
-                 data: { tag_set: @question.category.tag_set.id } %>
-  </div>
-
-  <% if is_edit %>
-    <div class="form-group">
-      <%= label_tag :edit_comment, 'Edit comment', class: "form-element" %>
-      <div class="form-caption">
-        Describe&mdash;if necessary&mdash;what you are changing and why you are making this edit.
-      </div>
-      <%= text_field_tag :edit_comment, params[:edit_comment], class: 'form-element' %>
-    </div>
-  <% end %>
-
-  <div class="form-group">
-    <%= f.submit is_edit ? (check_your_post_privilege(@question, 'edit_posts') ? "Save changes" : "Suggest changes") : 'Ask Question', class: "button is-filled" %>
-    <%= link_to 'Cancel', is_edit ? question_path(@question) : category_path(@question.category), class: 'button is-outlined is-muted' %>
-  </div>
-<% end %>
diff --git a/app/views/questions/edit.html.erb b/app/views/questions/edit.html.erb
deleted file mode 100644
index 11c572979cc528cad38e7dacba10f9f715f42f74..0000000000000000000000000000000000000000
--- a/app/views/questions/edit.html.erb
+++ /dev/null
@@ -1,16 +0,0 @@
-<% content_for :title, "Editing '#{@question.title.truncate(50)}'" %>
-
-<h1><%= check_your_post_privilege(@question, 'edit_posts') ? "Edit Question" : "Suggest Edit for Question" %></h1>
-<%= render 'form', is_edit: true %>
-
-<% if SiteSetting['AskingGuidance'] %>
-  <% content_for :sidebar do %>
-    <div class="widget has-margin-4">
-      <h4 class="widget--header has-margin-0">Hints and Tips</h4>
-      <div class="widget--body">
-      <% guidance = @question.category.asking_guidance_override || SiteSetting['AskingGuidance'] %>
-        <%= raw(sanitize(render_markdown(guidance), scrubber: scrubber)) %>
-      </div>
-    </div>
-  <% end %>
-<% end %>
diff --git a/app/views/questions/index.html.erb b/app/views/questions/index.html.erb
deleted file mode 100644
index 62a3f553378f8b25701a4ecd1b71865d0c28e065..0000000000000000000000000000000000000000
--- a/app/views/questions/index.html.erb
+++ /dev/null
@@ -1,20 +0,0 @@
-<% content_for :title, "Questions" %>
-<% content_for :head do %>
-  <link rel="alternate" type="application/rss+xml" title="Questions RSS Feed" href="/questions/feed.rss">
-<% end %>
-<% content_for :sidebar do %>
-
-<div class="has-margin-4 widget has-border-style-none has-shadow-0">
-  <div class="widget--body has-text-align-right">
-
-    <%= link_to new_question_path, class: 'button is-outlined is-very-large' do %>
-        Ask Question
-    <% end %>
-
-  </div>
-</div>
-<% end %>
-
-<h1>Questions</h1>
-
-<%= render 'list' %>
diff --git a/app/views/questions/lottery.html.erb b/app/views/questions/lottery.html.erb
index 89bc45a4f863e353ed4a1cca620312a430ba718f..4fc8d95197ef988e9efd8edd2e7e8e1fdf31e952 100644
--- a/app/views/questions/lottery.html.erb
+++ b/app/views/questions/lottery.html.erb
@@ -1,16 +1,4 @@
-<% content_for :title, "Questions Lottery" %>
-<% content_for :sidebar do %>
-
-<div class="has-margin-4 widget has-border-style-none has-shadow-0">
-  <div class="widget--body has-text-align-right">
-
-    <%= link_to new_question_path, class: 'button is-filled is-very-large is-outlined' do %>
-        Ask Question
-    <% end %>
-
-  </div>
-</div>
-<% end %>
+<% content_for :title, 'Questions Lottery' %>
 
 <h1>Questions</h1>
 
diff --git a/app/views/questions/meta.html.erb b/app/views/questions/meta.html.erb
deleted file mode 100644
index 203948500c42ebabc7c24e7ef18ceaf9f7e0b201..0000000000000000000000000000000000000000
--- a/app/views/questions/meta.html.erb
+++ /dev/null
@@ -1,17 +0,0 @@
-<% content_for :title, "Meta Questions" %>
-<% content_for :sidebar do %>
-
-<div class="has-margin-4 widget has-border-style-none has-shadow-0">
-  <div class="widget--body has-text-align-right">
-
-    <%= link_to new_meta_question_path, class: 'button is-outlined is-muted is-very-large' do %>
-        Ask Meta Question
-    <% end %>
-
-  </div>
-</div>
-<% end %>
-
-<h1>Meta Questions</h1>
-
-<%= render 'list' %>
diff --git a/app/views/questions/new.html.erb b/app/views/questions/new.html.erb
deleted file mode 100644
index a9484f626b8c25ce48b2500264e1ed18d21aed37..0000000000000000000000000000000000000000
--- a/app/views/questions/new.html.erb
+++ /dev/null
@@ -1,33 +0,0 @@
-<% content_for :title, "Ask a Question" %>
-
-<h1>Ask a Question</h1>
-
-<div class="notice">
-  <i class="fas fa-info-circle"></i> You're asking a new question on the <strong>main site</strong>, which is
-  for questions on the topic of the site. If you want to post feedback or start a discussion about the site itself,
-  you'll need to <%= link_to 'ask a Meta question instead', new_meta_question_path %>.
-</div>
-
-<% if @question.errors.any? %>
-  <div class="notice is-danger">
-    <p>The following <%= "error".pluralize(@question.errors.count) %> prevented the question from being posted:</p>
-    <ul>
-      <% @question.errors.full_messages.each do |e| %>
-        <li><%= e %></li>
-      <% end %>
-    </ul>
-  </div>
-<% end %>
-
-<%= render 'form' %>
-
-<% if SiteSetting['AskingGuidance'] %>
-  <% content_for :sidebar do %>
-    <div class="widget has-margin-4">
-      <h4 class="widget--header has-margin-0">Hints and Tips</h4>
-      <div class="widget--body">
-        <%= raw(sanitize(render_markdown(SiteSetting['AskingGuidance']), scrubber: scrubber)) %>
-      </div>
-    </div>
-  <% end %>
-<% end %>
diff --git a/app/views/questions/new_meta.html.erb b/app/views/questions/new_meta.html.erb
deleted file mode 100644
index 4a7918e72ab38f70c970943c56622a51c7aa111d..0000000000000000000000000000000000000000
--- a/app/views/questions/new_meta.html.erb
+++ /dev/null
@@ -1,35 +0,0 @@
-<% content_for :title, "Ask a Meta Question" %>
-
-<h1>Ask a Meta Question</h1>
-
-<div class="notice">
-  <i class="fas fa-info-circle"></i> You're asking a new question on <strong>Meta</strong>, our area for feedback
-  and discussions about this site itself. If you're intending to ask a topical question on the main site, you're in
-  the wrong place - you can do that <%= link_to 'here instead', new_question_path %>.
-</div>
-
-<% if @question.errors.any? %>
-  <div class="notice is-error">
-    <p>The following <%= "error".pluralize(@question.errors.count) %> prevented the question from being posted:</p>
-    <ul>
-      <% @question.errors.full_messages.each do |e| %>
-        <li><%= e %></li>
-      <% end %>
-    </ul>
-  </div>
-<% end %>
-
-<%= render 'posts/image_upload' %>
-
-<%= render 'form', meta?: true %>
-
-<% if SiteSetting['AskingGuidance'] %>
-  <% content_for :sidebar do %>
-    <div class="widget has-margin-4">
-      <h4 class="widget--header has-margin-0">Hints and Tips</h4>
-      <div class="widget--body">
-        <%= raw(sanitize(render_markdown(SiteSetting['AskingGuidance']), scrubber: scrubber)) %>
-      </div>
-    </div>
-  <% end %>
-<% end %>
diff --git a/app/views/questions/show.html.erb b/app/views/questions/show.html.erb
deleted file mode 100644
index 34eacd7ba04d6a7bcd68dbfcd888f135c47deb19..0000000000000000000000000000000000000000
--- a/app/views/questions/show.html.erb
+++ /dev/null
@@ -1,46 +0,0 @@
-<% content_for :title, @question.title.truncate(50) %>
-<% content_for :description do %>
-  <% Rails.cache.fetch "posts/#{@question.id}/description" do %>
-    <%= @question.body_plain[0..74].strip %>...
-    <%= @answers.any? ? @answers.first.body_plain[0..74].strip : '' %>
-  <% end %>
-<% end %>
-
-<% content_for :twitter_card_meta do %>
-  <meta name="twitter:card" content="summary" />
-  <% if @question.user.twitter.present? %>
-    <meta name="twitter:creator" content="@<%= @question.user.twitter %>" />
-  <% end %>
-  <meta property="og:url" content="<%= question_url(@question) %>" />
-  <meta property="og:title" content="<%= @question.title %>" />
-  <meta property="og:description" content="<%= @question.body_plain[0..150].strip %>..." />
-  <meta property="og:image" content="<%= "https://#{RequestContext.community.host}#{SiteSetting['SiteLogoPath']}" %>" />
-<% end %>
-
-<%= render 'posts/expanded', post: @question %>
-
-<h2><%= pluralize(@question.answers.where(deleted: false).count, "answer") %></h2>
-
-<div class="button-list is-gutterless has-float-right">
-  <a href="<%= query_url(sort: 'score') %>" class="button is-muted is-outlined <%= params[:sort].nil? || params[:sort] == 'score' ? 'is-active' : '' %>">Score</a>
-  <a href="<%= query_url(sort: 'age') %>" class="button is-muted is-outlined <%= params[:sort] == 'age' ? 'is-active' : '' %>">Active</a>
-</div>
-
-<div class="has-clear-clear"></div>
-
-<% @answers.each do |answer| %>
-  <%= render 'posts/expanded', post: answer %>
-<% end %>
-
-<div class="text-center">
-  <%= will_paginate @answers, renderer: BootstrapPagination::Rails %>
-</div>
-
-<% if user_signed_in? && !@question.closed %>
-  <%= render 'answers/new', answer: Answer.new, parent: @question %>
-<% elsif !@question.closed %>
-  <p class="has-margin-top-4"></p>
-  <%= link_to new_user_registration_path, class: 'button is-filled is-success h-m-t-4' do %>
-    Sign up to answer this question &raquo;
-  <% end %>
-<% end %>
diff --git a/app/views/questions/tagged.html.erb b/app/views/questions/tagged.html.erb
deleted file mode 100644
index 2aa7fe81eff2e4dc180ee7291349292ada569157..0000000000000000000000000000000000000000
--- a/app/views/questions/tagged.html.erb
+++ /dev/null
@@ -1,16 +0,0 @@
-<% content_for :title, "Tag: #{params[:tag]}" %>
-
-<h3>Questions tagged <%= params[:tag] %></h3>
-
-<div class="item-list">
-  <% @questions.each do |question| %>
-    <%= render 'posts/type_agnostic', post: question %>
-  <% end %>
-</div><br/>
-
-<%= will_paginate @questions, renderer: BootstrapPagination::Rails %>
-
-<div>
-  <%= link_to 'Subscribe to questions in this tag',
-              new_subscription_path(type: 'tag', qualifier: params[:tag], return_to: request.path) %>
-</div>
diff --git a/app/views/subscription_mailer/subscription.html.erb b/app/views/subscription_mailer/subscription.html.erb
index 399de797299d9a6a517bf3eabc2dc48404aa7c3b..c3ee467ea001fd78ded14b372d7b9bd7a62bb0dc 100644
--- a/app/views/subscription_mailer/subscription.html.erb
+++ b/app/views/subscription_mailer/subscription.html.erb
@@ -8,7 +8,7 @@
 <% @questions.each do |question| %>
   <h3 class="question-title">
     score <%= " +-"[question.score <=> 0] + question.score.to_s %>:
-    <%= link_to question.title, question_url(question, host: @subscription.community.host) %>
+    <%= link_to question.title, post_url(question, host: @subscription.community.host) %>
   </h3>
   <p>
     <%= question.body.first(150).gsub(/<\/?[^>]+>/, '') %>
diff --git a/app/views/subscription_mailer/subscription.text.erb b/app/views/subscription_mailer/subscription.text.erb
index 7c2ddbea5114beec015504edc1324969b7b976ca..c18d661a9263488dc70f87c9c2e76e27fea5c1c3 100644
--- a/app/views/subscription_mailer/subscription.text.erb
+++ b/app/views/subscription_mailer/subscription.text.erb
@@ -3,7 +3,7 @@
 
 <% @questions.each do |question| %>
 score <%= " +-"[question.score <=> 0] + question.score.to_s %>: <%= question.title %>
-<%= question_url(question, host: @subscription.community.host) %>
+<%= post_url(question, host: @subscription.community.host) %>
 
 <%= question.body.first(150).gsub(/<\/?[^>]+>/, '') %><%= question.body.length > 150 ? '...' : '' %>
 — "<%= question.user.rtl_safe_username %>" (<%= user_url(question.user, host: @subscription.community.host) %>),
diff --git a/app/views/subscriptions/new.html.erb b/app/views/subscriptions/new.html.erb
index 9229f92c2410f34be58267eb3b9da112a50cb20d..3f4b7a895e86cb1b2b68fe3736513e990ad5218b 100644
--- a/app/views/subscriptions/new.html.erb
+++ b/app/views/subscriptions/new.html.erb
@@ -17,7 +17,7 @@
     </p>
 
     <p>If you came here from a link and have filled in the details below, this may be a bug. Please let us know on
-      <%= link_to 'Meta', new_meta_question_path %>.</p>
+      <%= link_to 'Meta', 'https://meta.codidact.com/' %>.</p>
   </div>
 <% end %>