diff --git a/src/backoffice/forms.py b/src/backoffice/forms.py
index 6c1aef84c0ebd2885960c7a7440c4bd9547d456f..c4a6863bd43740701eb2e3c6233fcc6375c8e6ae 100644
--- a/src/backoffice/forms.py
+++ b/src/backoffice/forms.py
@@ -506,6 +506,12 @@ class CreateAssemblyRoomLinkForm(forms.ModelForm):
         fields = ['name', 'link_type', 'link']
 
 
+class StaticPageEditForm(forms.ModelForm):
+    class Meta:
+        model = StaticPage
+        fields = ['protection', 'privacy']
+
+
 class StaticPageCreateForm(forms.ModelForm):
     class Meta:
         model = StaticPage
diff --git a/src/backoffice/locale/de/LC_MESSAGES/django.po b/src/backoffice/locale/de/LC_MESSAGES/django.po
index 2b50d473bb6c4e7e603d97a9172eadf383236ad5..3f43e97c34f4790f005cd467ce6858f504bf2417 100644
--- a/src/backoffice/locale/de/LC_MESSAGES/django.po
+++ b/src/backoffice/locale/de/LC_MESSAGES/django.po
@@ -104,9 +104,6 @@ msgstr "Hangar-Zugriff"
 msgid "Room-hangar_backend_link__help"
 msgstr "Private FTP-Zugang um Dateien im Hangar abzulegen"
 
-msgid "StaticPage__cannot_publish_draft"
-msgstr "eine als Entwurf markierte Revision kann nicht veröffentlicht werden"
-
 msgid "Event--schedule_end--after_conference_end"
 msgstr "Muss mit der Konferenz enden!"
 
@@ -845,9 +842,22 @@ msgstr "Hiermit wird diese Selforganized Session gelöscht. Wenn du sie nur unsi
 msgid "Event--sos-delete-confirm"
 msgstr "Diese Selforganized Session wirklich löschen?"
 
+msgid "StaticPage--delete-confirm"
+msgstr "Diese Seite und zugehörige Historie wirklich löschen?"
+
 msgid "StaticPage"
 msgstr "statische Seite"
 
+msgid "StaticPage--delete-page"
+msgstr "Seite löschen"
+
+msgid "StaticPage--revisions"
+msgstr "Versionen"
+
+#, python-format
+msgid "StaticPage--preview %(object.public_revision)s"
+msgstr "Aktuell veröffentlichte Version: %(object.public_revision)s"
+
 msgid "StaticPages"
 msgstr "statische Seiten"
 
@@ -857,6 +867,9 @@ msgstr "Kurzname"
 msgid "StaticPage__title"
 msgstr "Überschrift"
 
+msgid "StaticPage__language"
+msgstr "Sprache"
+
 msgid "StaticPage__last_edited_by"
 msgstr "Zuletzt Von"
 
@@ -1254,6 +1267,9 @@ msgstr "Projekte"
 msgid "StaticPage__slug__duplicate"
 msgstr "Dieser Kurzname wird bereits verwendet."
 
+msgid "StaticPage--deleted"
+msgstr "Statische Seite und zugehörige Historie gelöscht."
+
 msgid "userprofile_updated"
 msgstr "Benutzerprofil aktualisiert"
 
diff --git a/src/backoffice/locale/en/LC_MESSAGES/django.po b/src/backoffice/locale/en/LC_MESSAGES/django.po
index cbee3127cf265bd91a231d370dc544b7ca59703d..80fb5e09021499196870e7939eb7d094f8c1c778 100644
--- a/src/backoffice/locale/en/LC_MESSAGES/django.po
+++ b/src/backoffice/locale/en/LC_MESSAGES/django.po
@@ -104,9 +104,6 @@ msgstr "Hangar Access"
 msgid "Room-hangar_backend_link__help"
 msgstr "your private ftp access to put files on your hangar"
 
-msgid "StaticPage__cannot_publish_draft"
-msgstr "Cannot publish a revision marked as draft."
-
 msgid "Event--schedule_end--after_conference_end"
 msgstr "Must end with the conference!"
 
@@ -844,9 +841,22 @@ msgstr "This removes this selforganized session. If you only want to hide it for
 msgid "Event--sos-delete-confirm"
 msgstr "Are you sure you want to remove this selforganized session?"
 
+msgid "StaticPage--delete-confirm"
+msgstr "Are you sure you want to remove this Static Page session? All revisions and all stored history will be removed as well!"
+
 msgid "StaticPage"
 msgstr "static page"
 
+msgid "StaticPage--delete-page"
+msgstr "Delete Page"
+
+msgid "StaticPage--revisions"
+msgstr "Versionen"
+
+#, python-format
+msgid "StaticPage--preview %(object.public_revision)s"
+msgstr "Preview of currently published version %(object.public_revision)s"
+
 msgid "StaticPages"
 msgstr "Static Pages"
 
@@ -856,6 +866,9 @@ msgstr "Slug"
 msgid "StaticPage__title"
 msgstr "Title"
 
+msgid "StaticPage__language"
+msgstr "Language"
+
 msgid "StaticPage__last_edited_by"
 msgstr "Last modified by"
 
@@ -1252,6 +1265,9 @@ msgstr "Projects"
 msgid "StaticPage__slug__duplicate"
 msgstr "This slug is already in use on another page."
 
+msgid "StaticPage--deleted"
+msgstr "StaticPage and all corresponding revisions deleted."
+
 msgid "userprofile_updated"
 msgstr "user profile updated"
 
diff --git a/src/backoffice/templates/backoffice/staticpage_detail.html b/src/backoffice/templates/backoffice/staticpage_detail.html
index 10d3db147ab00c349d9e71818976710827d1339f..a55697db59a98c3eeed1a2919d37c01ed5a8d677 100644
--- a/src/backoffice/templates/backoffice/staticpage_detail.html
+++ b/src/backoffice/templates/backoffice/staticpage_detail.html
@@ -4,13 +4,17 @@
 
 {% block content %}
 
+<form action="{% url 'backoffice:page-delete' pk=object.pk %}" method="POST" id="delete_page" onsubmit="return confirm('{% trans 'StaticPage--delete-confirm' %}')">
+  {% csrf_token %}
+</form>
+
+
 <form action="{% url 'backoffice:page-detail' pk=object.pk %}" method="POST">
 {% csrf_token %}
 
 <div class="card">
   <div class="card-header">{% trans 'StaticPage' %} {{ object.pk }}</div>
   <div class="card-body">
-    <p>Slug: <strong>{{ object.slug }}</strong> (<a href="{% url 'backoffice:page-edit' pk=object.pk %}">edit</a>)</p>
     <p>Revision: <strong>{{ object.newest_revision.revision }}</strong>{% if object.newest_revision.revision != object.public_version %} (public: {{ object.public_revision }}){% endif %}</p>
     {% if form.errors %}
     <div class="row"><div class="col-md-12">
@@ -22,15 +26,15 @@
     {% bootstrap_form form %}
   </div>
   <div class="card-footer text-right">
+    <button type="submit" class="btn btn-danger" form="delete_page">{% trans "StaticPage--delete-page" %}</button>
     <button type="submit" class="btn btn-primary">{% trans "assemblyedit_submitbtn" %}</button>
   </div>
 </div>
-
 </form>
 
 {% if object.public_revision > 0 %}
 <div class="card mt-3">
-  <div class="card-header">preview: published rev. {{ object.public_revision }}</div>
+  <div class="card-header">{% blocktranslate %}StaticPage--preview {{ object.public_revision }}{% endblocktranslate%}</div>
   <div class="card-body">
     {{ object.body_html|safe }}
   </div>
diff --git a/src/backoffice/templates/backoffice/staticpage_form.html b/src/backoffice/templates/backoffice/staticpage_form.html
deleted file mode 100644
index b3f29e68e6bee2aaef0d55df2356579802b3a6bf..0000000000000000000000000000000000000000
--- a/src/backoffice/templates/backoffice/staticpage_form.html
+++ /dev/null
@@ -1,29 +0,0 @@
-{% extends 'backoffice/base.html' %}
-{% load bootstrap4 %}
-{% load i18n %}
-
-{% block content %}
-
-<form action="#" method="POST">
-{% csrf_token %}
-
-<div class="card">
-  <div class="card-header">{% trans 'StaticPage' %} {{ object.pk }}</div>
-  <div class="card-body">
-    {% if form.errors %}
-    <div class="row"><div class="col-md-12">
-      <div class="alert alert-danger">
-        {{ form.errors }}
-      </div>
-    </div></div>
-    {% endif %}
-    {% bootstrap_form form %}
-  </div>
-</div>
-
-<div class="row"><div class="col-md-12 text-right mb-5">
-  <button type="submit" class="btn btn-primary">{% trans "assemblyedit_submitbtn" %}</button>
-</div>
-</form>
-
-{% endblock %}
\ No newline at end of file
diff --git a/src/backoffice/urls.py b/src/backoffice/urls.py
index 70738b5c46a1332f60e16ed5e0915ca015e0b12b..ae8275233dff14eacd486dad9c88b7cc0a73cbee 100644
--- a/src/backoffice/urls.py
+++ b/src/backoffice/urls.py
@@ -44,8 +44,8 @@ urlpatterns = [
 
     path('pages', pages.PagesView.as_view(), name='pages'),
     path('page/new', pages.NewPageView.as_view(), name='page-new'),
-    path('page/<uuid:pk>/edit', pages.EditPageView.as_view(), name='page-edit'),
     path('page/<uuid:pk>', pages.PageView.as_view(), name='page-detail'),
+    path('page/<uuid:pk>/delete', pages.PageDeleteView.as_view(), name='page-delete'),
 
     path('assemblies', assemblyteam.AssembliesView.as_view(), name='assemblies'),
     path('assemblies/list/<str:variant>', assemblyteam.AssembliesListsView.as_view(), name='assemblieslist'),
diff --git a/src/backoffice/views/pages.py b/src/backoffice/views/pages.py
index 0bb7922bd91afe83c050611babda4b1c6e878e91..d040e329e5530a76c51f2b214ebbb0cfcfd0f09b 100644
--- a/src/backoffice/views/pages.py
+++ b/src/backoffice/views/pages.py
@@ -10,13 +10,13 @@ from django.db.models.expressions import F
 from django.db.models.functions import JSONObject
 from django.shortcuts import redirect
 from django.views.generic import FormView, ListView
-from django.views.generic.edit import CreateView, UpdateView
-from django.urls import reverse
+from django.views.generic.edit import UpdateView, DeleteView
+from django.urls import reverse, reverse_lazy
 from django.utils.translation import gettext_lazy as _, get_language
 
 from core.models import StaticPage, StaticPageRevision
 
-from ..forms import StaticPageCreateForm
+from ..forms import StaticPageCreateForm, StaticPageEditForm
 from .mixins import ConferenceMixin
 
 
@@ -95,38 +95,14 @@ class NewPageView(ConferenceMixin, FormView):
         return reverse('backoffice:page-detail', kwargs={'pk': self.object.pk})
 
 
-class PageView(ConferenceMixin, FormView):
+class PageView(ConferenceMixin, UpdateView):
     permission_required = ('core.static_pages')
-    form_class = StaticPageForm
+    form_class = StaticPageEditForm
     template_name = 'backoffice/staticpage_detail.html'
     require_conference = True
 
-    def dispatch(self, *args, **kwargs):
-        self.object = StaticPage.objects.accessible_by_user(self.request.user, self.conference, language=get_language()).get(pk=kwargs.get('pk'))
-        return super().dispatch(*args, **kwargs)
-
-    def get_initial(self):
-        if (rev := self.object.newest_revision) is None:
-            return None
-
-        initial = {'title': rev.title, 'is_draft': rev.is_draft, 'public': False, 'body': rev.body}
-        return initial
-
-    def form_valid(self, form):
-        if not form.has_changed():
-            return redirect(self.get_success_url())
-
-        rev = form.save(commit=False)
-        rev.page = self.object
-        rev.save()
-        messages.success(self.request, f'Saved revision {rev.revision} of page {self.conference.slug}/{self.object.slug}')
-
-        if form.cleaned_data['publish']:
-            rev.set_public()
-            messages.success(self.request, f'Made revision {rev.revision} of page {self.conference.slug}/{self.object.slug} public.')
-            self.object.refresh_from_db()
-
-        return redirect(self.get_success_url())
+    def get_object(self):
+        return StaticPage.objects.accessible_by_user(self.request.user, self.conference, language=None).get(pk=self.kwargs.get('pk'))
 
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
@@ -138,20 +114,16 @@ class PageView(ConferenceMixin, FormView):
         return reverse('backoffice:page-detail', kwargs={'pk': self.object.pk})
 
 
-class EditPageView(ConferenceMixin, UpdateView):
+class PageDeleteView(ConferenceMixin, DeleteView):
     permission_required = ('core.static_pages')
     model = StaticPage
-    fields = ['slug', 'public_revision']
-    template_name = 'backoffice/staticpage_form.html'
+    success_url = reverse_lazy('backoffice:pages')
     require_conference = True
 
-    def get_queryset(self, *args, **kwargs):
-        return StaticPage.objects.accessible_by_user(conference=self.conference, user=self.request.user, language=get_language())
+    def get_object(self):
+        return StaticPage.objects.accessible_by_user(self.request.user, self.conference, language=None).get(pk=self.kwargs.get('pk'))
 
-    def get_context_data(self, **kwargs):
-        context = super().get_context_data(**kwargs)
-        context['active_page'] = 'pages'
-        return context
-
-    def get_success_url(self, *args, **kwargs):
-        return reverse('backoffice:page-detail', kwargs={'pk': self.kwargs['pk']})
+    def form_valid(self, form):
+        res = super().form_valid(form)
+        messages.success(self.request, _("StaticPage--deleted"))
+        return res