Kieran's opinionated (and probably slightly dumb) nix config
1<!DOCTYPE html>
2<html lang="en">
3
4<head>
5 <meta charset="UTF-8">
6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <title>404 - bore</title>
8 <link rel="icon"
9 href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🚇</text></svg>">
10 <style>
11 * {
12 margin: 0;
13 padding: 0;
14 box-sizing: border-box;
15 }
16
17 body {
18 font-family: 'SF Mono', 'Monaco', monospace;
19 background: #0d1117;
20 color: #e6edf3;
21 min-height: 100vh;
22 display: flex;
23 align-items: center;
24 justify-content: center;
25 padding: 2rem;
26 }
27
28 .container {
29 text-align: center;
30 max-width: 600px;
31 }
32
33 .error-code {
34 font-size: 8rem;
35 font-weight: 700;
36 color: #8b949e;
37 line-height: 1;
38 margin-bottom: 1rem;
39 }
40
41 .emoji {
42 font-size: 4rem;
43 margin-bottom: 2rem;
44 opacity: 0.5;
45 }
46
47 h1 {
48 font-size: 2rem;
49 margin-bottom: 1rem;
50 color: #e6edf3;
51 }
52
53 p {
54 color: #8b949e;
55 font-size: 1rem;
56 margin-bottom: 2rem;
57 line-height: 1.6;
58 }
59
60 .countdown {
61 color: #14b8a6;
62 font-size: 1.2rem;
63 font-weight: 600;
64 font-variant-numeric: tabular-nums;
65 }
66 </style>
67</head>
68
69<body>
70 <div class="container">
71 <div class="emoji">🚇</div>
72 <div class="error-code">404</div>
73 <h1>wrong stop!</h1>
74 <p>this tunnel doesn't go anywhere. maybe it was never built, or perhaps it collapsed?</p>
75 <p>redirecting in <span class="countdown" id="countdown">5.000</span>s</p>
76 </div>
77
78 <script>
79 let timeLeft = 5000; // 5 seconds in milliseconds
80 const countdownEl = document.getElementById('countdown');
81 const startTime = Date.now();
82
83 const interval = setInterval(() => {
84 const elapsed = Date.now() - startTime;
85 timeLeft = Math.max(0, 5000 - elapsed);
86
87 countdownEl.textContent = (timeLeft / 1000).toFixed(3);
88
89 if (timeLeft <= 0) {
90 clearInterval(interval);
91 window.location.href = 'https://bore.dunkirk.sh';
92 }
93 }, 10); // Update every 10ms for smooth countdown
94 </script>
95</body>
96
97</html>