diff --git a/Gemfile b/Gemfile
index ebf6eec..3e252ec 100644
--- a/Gemfile
+++ b/Gemfile
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
 
 group :development do
   gem 'rake', '~> 0.9.2'
-  gem 'rack', '~> 1.6.13'
+  gem 'rack', '~> 3.0.9'
   gem 'jekyll', '~> 0.11.2'
   gem 'rdiscount', '~> 1.6.8'
   gem 'pygments.rb', '~> 0.6.3'
@@ -15,4 +15,4 @@ group :development do
   gem 'liquid', '~> 2.3.0'
 end
 
-gem 'sinatra', '~> 1.4.5'
+gem 'sinatra', '~> 4.0.0'
diff --git a/Gemfile.lock b/Gemfile.lock
index 8e59ec3..7d22f93 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -4,6 +4,7 @@ GEM
     RedCloth (4.3.0)
     albino (1.3.3)
       posix-spawn (>= 0.3.6)
+    base64 (0.2.0)
     chunky_png (1.3.4)
     classifier (1.3.4)
       fast-stemmer (>= 1.0.0)
@@ -27,25 +28,33 @@ GEM
     kramdown (0.14.2)
     liquid (2.3.0)
     maruku (0.7.2)
+    mustermann (3.0.0)
+      ruby2_keywords (~> 0.0.1)
     posix-spawn (0.3.11)
     pygments.rb (0.6.3)
       posix-spawn (~> 0.3.6)
       yajl-ruby (~> 1.2.0)
-    rack (1.6.13)
-    rack-protection (1.5.3)
-      rack
+    rack (3.0.9.1)
+    rack-protection (4.0.0)
+      base64 (>= 0.1.0)
+      rack (>= 3.0.0, < 4)
+    rack-session (2.0.0)
+      rack (>= 3.0.0)
     rake (0.9.6)
     rb-fsevent (0.9.5)
     rdiscount (1.6.8)
+    ruby2_keywords (0.0.5)
     rubypants (0.2.0)
     sass (3.2.19)
-    sinatra (1.4.6)
-      rack (~> 1.4)
-      rack-protection (~> 1.4)
-      tilt (>= 1.3, < 3)
+    sinatra (4.0.0)
+      mustermann (~> 3.0)
+      rack (>= 3.0.0, < 4)
+      rack-protection (= 4.0.0)
+      rack-session (>= 2.0.0, < 3)
+      tilt (~> 2.0)
     stringex (1.4.0)
     temple (0.8.2)
-    tilt (2.0.1)
+    tilt (2.3.0)
     yajl-ruby (1.2.3)
 
 PLATFORMS
@@ -58,12 +67,12 @@ DEPENDENCIES
   jekyll (~> 0.11.2)
   liquid (~> 2.3.0)
   pygments.rb (~> 0.6.3)
-  rack (~> 1.6.13)
+  rack (~> 3.0.9)
   rake (~> 0.9.2)
   rb-fsevent (~> 0.9)
   rdiscount (~> 1.6.8)
   rubypants (~> 0.2.0)
-  sinatra (~> 1.4.5)
+  sinatra (~> 4.0.0)
   stringex (~> 1.4.0)
 
 BUNDLED WITH