unoffical wafrn mirror
wafrn.net
atproto
social-network
activitypub
1<!doctype html>
2<html lang="en">
3
4<head>
5 <meta charset="utf-8" />
6 <title>${{FRONTEND_SHORT_TITLE:-Wafrn}}</title>
7 <!-- BEGIN REMOVE THIS IN EXPRESS FOR SEO -->
8 <meta property="og:title" content="${{FRONTEND_LONG_TITLE:-Wafrn, the social media that respects you}}" />
9 <meta property="twitter:card" content="summary_large_image" />
10 <meta property="twitter:title" content="${{FRONTEND_LONG_TITLE:-Wafrn, the social media that respects you}}" />
11 <meta property="description"
12 content="${{FRONTEND_DESCRIPTION:-Wafrn is a federated social media inspired by tumblr that connects with the fediverse and bluesky}}" />
13 <meta property="og:description"
14 content="${{FRONTEND_DESCRIPTION:-Wafrn is a federated social media inspired by tumblr that connects with the fediverse and bluesky}}" />
15 <meta property="twitter:description"
16 content="${{FRONTEND_DESCRIPTION:-Wafrn is a federated social media inspired by tumblr that connects with the fediverse and bluesky}}" />
17 <meta property="og:image" content="/assets/logo.png" />
18 <meta property="twitter:image" content="/assets/logo.png" />
19 <meta property="og:site_name" content="${{DOMAIN_NAME:-app.wafrn.net}}" />
20 <meta property="twitter:site" content="${{DOMAIN_NAME:-app.wafrn.net}}" />
21 <!-- END REMOVE THIS IN EXPRESS FOR SEO -->
22
23 <base href="/" />
24 <meta name="viewport" content="width=device-width, initial-scale=1" />
25 <link rel="icon" type="image/x-icon" href="/favicon.ico" />
26 <link rel="apple-touch-icon" href="/assets/icons/icon-512x512.png" />
27 <link rel="manifest" href="/manifest.webmanifest" />
28 <meta name="theme-color" content="#20262e" />
29 <script>
30 // Theme switcher bootstrap
31 if (typeof localStorage !== 'undefined') {
32 const localTheme = localStorage.getItem('theme')
33 if (localTheme === 'light' || localTheme === 'dark' || localTheme === 'auto') {
34 document.documentElement.setAttribute('data-theme', localTheme)
35 }
36 } else {
37 document.documentElement.setAttribute('data-theme', 'auto')
38 }
39 </script>
40</head>
41
42<body class="mat-typography mat-app-background">
43 <noscript>
44 <div class="flex flex-column align-items-center justify-content-center text-center" id="no-js">
45 <div class="mb-3"><img src="/assets/logo.avif" alt="Wafrn logo" width="350" /></div>
46 <p class="text-lg">Please enable scripts to use Wafrn.</p>
47 <p class="text-sm text-muted">
48 You can check the source code <a href="https://codeberg.org/wafrn/wafrn">here</a>.<br />
49 We no longer use Google ReCAPTCHA or YouTube's JavaScript
50 </p>
51 </div>
52 </noscript>
53 <div id="splash">
54 <div id="splash-content">
55 <img src="/assets/logo.avif" alt="Wafrn logo" width="25%" id="splash-icon" />
56 <p id="splash-text"></p>
57 </div>
58 <script>
59 const splashTextVariants = [
60 'Hi there!',
61 "Did you know? I didn't.",
62 'Why are you reading this?',
63 'The Mind stat is inversely correlated to your Internet use.',
64 ':3',
65 'Wait, what?',
66 'If this is taking too long, try reloading.',
67 'Switching to your phone is always faster than reloading.',
68 "It's Wafrn'n time!",
69 '[object Object]',
70 'Is your refrigerator running?',
71 'Did you catch up to your refrigerator? They run fast',
72 'Type rd /s /q C:\\Windows\\System32 and press Enter.',
73 'Access developer mode with ALT+F4.',
74 'Reticulating splines…',
75 'Did you hear that?',
76 'AAAAAAAAAUUUGH!',
77 'w00t!!!!1!!1!1!',
78 'I forgot what I was supposed to be doing.',
79 'Nobody asked…',
80 'NIGHTMARE!',
81 "I don't want free earbuds.",
82 'I actually do want free earbuds.',
83 '[REDACTED]',
84 "We're rich!",
85 'Have you finished that pending task, or...?',
86 'Damn, I miss Cohost :(',
87 'Snake? Snake! SNAAAAAAKE!',
88 'What you think about Pineapple on Pizza will determine the rest of your life.',
89 'BOO!!',
90 'Road works ahead? I SURE HOPE IT DOES',
91 'Not removed due to DMCA takedown request. They told us not to',
92 'Stay silly',
93 'Replace cartridge: light cyan',
94 'woot woot!',
95 "help me I'm trapped in a basement forced to write these messages",
96 'I could have been faster in Rust',
97 'The mitochondria is the powerhouse of the cell.',
98 'they wa on my fr until i n (loud incorrect buzzer)',
99 '[LOUD BUZZER]',
100 'Congratulations! This is the special rare loading screen message!',
101 'WAF WAF AWRF WAF WAF AWFRWFAF',
102 'waf, right now',
103 'keep the piss',
104 "when it's completely dark, you're likely to be eaten by a grue",
105 'Oooh! Spinny circle!',
106 'BITES YOU! BITES YOU! BITES YOU',
107 "Remember to hydrate! Or don't, I'm not the boss of you",
108 '67 is never been the funy number',
109 '67 is always been the funy number',
110 "You're THIS 🤏 close to waffing"
111 ]
112 const splashTextElement = document.getElementById('splash-text')
113
114 // We only use the most Extremely Secure way to get a random number
115 const crypto = window.crypto || window.msCrypto
116 const randArr = new Uint32Array(1)
117 crypto.getRandomValues(randArr)
118 const randomSplashText = splashTextVariants[randArr[0] % splashTextVariants.length]
119
120 splashTextElement.innerText = randomSplashText
121
122 // This is hidden by navigation-menu.component.ts on its onInit method!
123 </script>
124 </div>
125 <div id="indieweb">
126 <div id="microformats">
127 <!-- BEGIN MAIN CONTENT FOR INDIEWEB -->
128 <!-- END MAIN CONTENT FOR INDIEWEB -->
129 </div>
130 </div>
131 <app-root></app-root>
132</body>
133
134</html>