PageSourceSearch

https://fastpaste.llc/signup

html fastpaste.llc collected 2026-10-02 01:59:46 UTC 3,807 bytes, 86 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4  <meta charset="UTF-8" />
5  <meta name="viewport" content="width=device-width, initial-scale=1" />
6  <title>Sign up — FastPaste</title>
7  <link rel="preconnect" href="https://fonts.googleapis.com">
8  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet">
10  <link rel="stylesheet" href="/styles.css" />
11</head>
12<body>
13  <div id="site-header"></div>
14
15  <main class="container-narrow">
16    <div class="card">
17      <h1>Create your account</h1>
18      <p>Free forever, 5 pastes per week. Upgrade for unlimited any time.</p>
19
20      <div id="error" class="alert alert-error hidden"></div>
21      <div id="success" class="alert alert-success hidden"></div>
22
23      <form id="signup-form" autocomplete="on">
24        <label for="email">Email</label>
25        <input type="email" id="email" name="email" autocomplete="email" required />
26
27        <label for="password">Password</label>
28        <input type="password" id="password" name="new-password" autocomplete="new-password" minlength="8" required />
29        <p class="muted" style="margin-top:-8px;margin-bottom:14px;">At least 8 characters</p>
30
31        <button type="submit" class="btn btn-primary btn-full" id="submit-btn">Create account</button>
32      </form>
33
34      <p class="muted center mt-16">Already have an account? <a href="/login.html">Log in</a></p>
35    </div>
36  </main>
37
38  
38<script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2"></script>
38
39  
39<script src="/config.js"></script>
39
40  
40<script src="/app.js"></script>
40
41  
41<script>
42    const errEl = document.getElementById('error');
43    const okEl = document.getElementById('success');
44    const btn = document.getElementById('submit-btn');
45
46    function showErr(msg) { errEl.textContent = msg; errEl.classList.remove('hidden'); okEl.classList.add('hidden'); }
47    function showOk(msg) { okEl.textContent = msg; okEl.classList.remove('hidden'); errEl.classList.add('hidden'); }
48
49    (async () => {
50      const user = await FP.getUser();
51      FP.renderHeader(user);
52      // If already logged in, send to dashboard
53      if (user) window.location.href = '/dashboard.html';
54    })();
55
56    document.getElementById('signup-form').addEventListener('submit', async (e) => {
57      e.preventDefault();
58      errEl.classList.add('hidden'); okEl.classList.add('hidden');
59      btn.disabled = true; btn.innerHTML = '<span class="spinner"></span>Creating account...';
60
61      const email = document.getElementById('email').value.trim();
62      const password = document.getElementById('password').value;
63
64      const { data, error } = await FP.supabase.auth.signUp({
65        email, password,
66        options: { emailRedirectTo: window.location.origin + '/dashboard.html' }
67      });
68
69      btn.disabled = false; btn.textContent = 'Create account';
70
71      if (error) { showErr(error.message); return; }
72
73      // Supabase may require email confirmation depending on project settings.
74      if (data.user && !data.session) {
75        showOk('Check your email to confirm your account, then log in.');
76      } else if (data.session) {
77        showOk('Account created! Redirecting...');
78        setTimeout(() => window.location.href = '/dashboard.html', 600);
79      } else {
80        showOk('Account created. Please check your email.');
81      }
82    });
83  </script>
vendor: 1 bytes, line 83
83
84<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"5b83b05421fc4736817bbe865a4f04b8","r":1,"spa":2}' crossorigin="anonymous"></script>
84
85</body>
86</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.