diff --git a/cgi-bin/guest_mm.cgi b/cgi-bin/guest_mm.cgi
index c130773..5b918e0 100755
--- a/cgi-bin/guest_mm.cgi
+++ b/cgi-bin/guest_mm.cgi
@@ -10,209 +10,5 @@ use utf8;
 use open qw{:std :utf8}; # Fix "Wide character in print" warning
 use CGI qw{-utf8};       # Needed to parse unicode params
 use CGI::Carp qw{fatalsToBrowser};
-use XML::LibXML;
-use WebService::Mattermost;
-#use Data::Dumper;        # Uncomment for debugging

-## Variables ##
-
-# Create CGI object (query)
-my $q = CGI->new();
-
-# Open banned phrases and users files
-open(my $thoughtCrimes, '.msg.bans') or die "$@";
-open(my $nameBans,     '.name.bans') or die "$@";
-
-# Get creds file
-my $dotfile           = ".mmCreds.xml";
-# Create XML::LibXML object
-my $dom               = XML::LibXML->load_xml(location => $dotfile);
-# Grab the values from creds file
-my %conf;
-$conf{'authenticate'} = 1;
-$conf{'username'}     = $dom->findvalue('/credentials/username');
-$conf{'password'}     = $dom->findvalue('/credentials/password');
-$conf{'base_url'}     = $dom->findvalue('/credentials/base_url');
-my $chan              = $dom->findvalue('/credentials/channel_id');
-my $spam              = $dom->findvalue('/credentials/spam_chan_id');
-# Create new WebService::Mattermost objects (mm && resource)
-my $mm                = WebService::Mattermost->new(%conf);
-my $resource          = $mm->api->posts;
-
-## Functions ##
-
-# Print the form
-sub form_out {
-    # Begin printing the form
-    print $q->div(
-        {-class => "inner"},
-
-        # Little bit of text
-        $q->p("Use the form below to sign the guestbook and send
-              SwaggNet a message. Please be patient after submitting
-              as messages are checked for spam via cutting-edge
-              Swagg::AI blockchain techmology."),
-        "\n", # Newlines to make it pretty
-
-        # Opening form tag
-        $q->start_form(
-            -name   => 'main',
-            -method => 'POST'
-        ), "\n",
-
-        # Opening table tag
-        $q->start_table(), "\n",
-
-        # Name field
-        $q->Tr(
-            $q->th("Name:"),
-            $q->td(
-                $q->textfield(
-                    -name => "name",
-                    -size => 40
-                )
-            )
-        ), "\n",
-
-        # Location field
-        $q->Tr(
-            $q->th("Location:"),
-            $q->td(
-                $q->textfield(
-                    -name => "location",
-                    -size => 40
-                )
-            )
-        ), "\n",
-
-        # Message box
-        $q->Tr(
-            $q->th("Message:"),
-            $q->td(
-                $q->textarea(
-                    -name    => "message",
-                    -columns => 50,
-                    -rows    => 10
-                )
-            )
-        ), "\n",
-
-        # Submit button
-        $q->Tr(
-            $q->th('&nbsp;'), # Non-breaking space
-            $q->td($q->submit(-value => "Submit"))
-        ), "\n",
-
-        # Closing table tag
-        $q->end_table(), "\n",
-
-        # Closing form tag
-        $q->end_form(), "\n"
-        ) . "\n";
-}
-
-# Process params & say thanks
-sub params_in {
-    # Params to variables
-    my $name     = $q->param("name");
-    my $location = $q->param("location");
-    my $message  = $q->param("message");
-
-    # Enforce max length for params
-    if (length($name) < 1 || length($name) >= 40) {
-        die "Name field must be between 1 and 40 characters\n"
-    }
-    elsif (length($location) < 1 || length($location) >= 40) {
-        die "Location field must be between 1 and 40 characters\n"
-    }
-    elsif (length($message) < 1 || length($message) >= 1900) {
-        die "Message field must be between 1 and 1900 characters\n"
-    }
-
-    # Variable set for banned user
-    my ($ban, $trigger);
-
-    # Parse the banned names list
-    chomp(my @nameBan = <$nameBans>);
-    for (@nameBan) {
-        last if $ban;
-
-        if ($name =~ /$_/i) {
-            $ban     = 1;
-            $trigger = $_;
-        }
-    }
-
-    # Parse the banned phrases list
-    chomp(my @thoughtCrime = <$thoughtCrimes>);
-    for (@thoughtCrime) {
-        last if $ban;
-
-        if ($message =~ /$_/i) {
-            $ban     = 1;
-            $trigger = $_;
-        }
-    }
-
-    # Send it unless ban is true; else send it to spam if spam chan is
-    # defined
-    unless ($ban) {
-        $resource->create(
-            {
-                channel_id => "$chan",
-                message    => "$name from $location says: $message"
-            }
-            );
-    }
-    elsif ($spam) {
-        $resource->create(
-            {
-                channel_id => "$spam",
-                message    => "$name from $location says: $message\n\n" .
-                              "Spam trigger: `$trigger`"
-            }
-            );
-    }
-
-    # Say thanks (even if banned, e.g. shadow ban)
-    print $q->div(
-        {-class => "inner"},
-        $q->h2("Thanks!"),
-        $q->p("Your note has been sent, thanks for using the
-              guestbook.")
-        ) . "\n";
-}
-
-## Begin script ##
-
-# Print header
-print $q->header(-charset => 'UTF-8');
-
-# Print the head & title, begin the body
-print $q->start_html(
-    -title => 'SwaggNet Guestbook',
-    -style => '/css/swagg.css'
-    );
-
-# Heading
-print $q->div(
-    {-class => "outer"},
-    $q->h1("Swagg::Net Guestbook"),
-    $q->br(),
-    "\n"
-    ) . "\n";
-
-# Process returned params if present; else print form
-$q->param() ? params_in() : form_out();
-
-# Print link to go back to homepage in footer
-print $q->div(
-    {-class => "inner"},
-    $q->br(),
-    "<footer>Go back to", # CGI.pm doesn't have footer tag?
-    $q->a({-href => "/"}, "homepage"),
-    "</footer>\n"         # Closing footer tag
-    );
-
-# Close body
-print $q->end_html() . "\n";
+print CGI->redirect('https://guestbook.swagg.net');