diff --git a/web/404.html b/web/404.html
new file mode 100644
index 0000000..f2ada99
--- /dev/null
+++ b/web/404.html
@@ -0,0 +1,15 @@
+
+
+
+
+
The page or file you're looking for doesn't exist.
+
Maybe it was devoured by a dragon that got loose on the hard disk. If that happened, the problem should get fixed quickly.
+
Or maybe you have been fighting umber hulks, and mistyped the name. Quaff a potion of healing and try again.
+
+
+
diff --git a/web/index.html b/web/index.html
new file mode 100644
index 0000000..4694159
--- /dev/null
+++ b/web/index.html
@@ -0,0 +1,37 @@
+
+
+
+
+
The Roguelike Gallery is a living museum of roguelike games. A collection
+of historical roguelikes is being restored and made available for play on this server.
+
Try the new Web player!
+
You can also play by ssh to rlgallery.org. The username is "rodney", and "yendor" is the password.
+
Available Games
+
+
Scoring
+
+
News
+
Aug. 19, 2012: The upgrade is complete, games are back online. Watch for more changes.
+
Jul. 27, 2012: The latency problems with the Web player should be resolved now.
+
Jun. 30, 2012: I've fixed a bug that prevented new accounts from being created.
+
Jun. 27, 2012: A tournament is being planned!
+
Jun. 24, 2012: It is now possible to play in your browser, without needing any other software.
+
Feb. 2, 2012: Everything should be recovered from the failed upgrade. Please report any problems.
+
Feb. 4, 2011: Some updates to the website. The ttyrec finder is now usable.
+
+
+
diff --git a/web/main.css b/web/main.css
new file mode 100644
index 0000000..460a9bf
--- /dev/null
+++ b/web/main.css
@@ -0,0 +1,45 @@
+@import url("http://fonts.googleapis.com/css?family=Inconsolata");
+
+html {
+ background-color: #C0FFC0;
+ color: #101040;
+ font-family: sans-serif;
+}
+
+h1 {
+ text-align: center;
+}
+
+h1, h2, h3 {
+ font-family: Inconsolata, monospace;
+}
+
+div.content {
+ margin: 0 auto;
+ width: 75%;
+}
+
+div.nav {
+ font-size: 0.8em;
+ background-color: #E0FFE0;
+ padding: 0.3em;
+}
+
+ul {
+ list-style-type: none;
+}
+
+form {
+ width: 90%;
+ margin: 1.5em auto;
+ border-top: 1px solid #101040;
+ border-bottom: 1px solid #101040;
+}
+
+form div {
+ margin: 0.6em auto;
+}
+
+span.metavar {
+ font-style: italic;
+}
diff --git a/web/recent.cgi b/web/recent.cgi
new file mode 100755
index 0000000..644e720
--- /dev/null
+++ b/web/recent.cgi
@@ -0,0 +1,20 @@
+#!/usr/bin/python
+# CGI script creating page of recent games
+
+import sys
+import time
+import rlgall
+
+# The required header
+sys.stdout.write("Content-type: text/html\r\n\r\n")
+# The top of the page
+sys.stdout.write(rlgall.phead.format("Recent Games"))
+sys.stdout.write(rlgall.ptop);
+sys.stdout.write(rlgall.navtop.format("Recent"));
+sys.stdout.write(rlgall.pti.format("Recent Expeditions"))
+
+for game in rlgall.gamelist:
+ game.tablerecent(sys.stdout)
+
+sys.stdout.write(rlgall.pend)
+exit()