commit e99efd670b3d657872e4a06d30d54ef494198c06
Author: root <root@hub.scroll.pub>
Date: 2024-12-24 14:19:12 +0000
Subject: Initial commit
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..38509c2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,2 @@
+# upbeat.scroll.pub
+Website generated from prompt: uptime montoring saas....get minute by minute uptime reports on your website or web app. and a status page.
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..876fd0b
--- /dev/null
+++ b/index.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="description" content="Monitor your website's uptime with real-time alerts and beautiful status pages">
+ <meta name="keywords" content="uptime monitoring, website monitoring, status page, uptime alerts">
+ <title>Upbeat - Real-time Website Monitoring</title>
+ <link rel="stylesheet" href="style.css">
+</head>
+<body>
+ <header>
+ <nav>
+ <div class="logo">upbeat</div>
+ <div class="nav-links">
+ <a href="#features">Features</a>
+ <a href="#pricing">Pricing</a>
+ <a href="#status">Status Page</a>
+ <a href="#login" class="btn-secondary">Login</a>
+ <a href="#signup" class="btn-primary">Start Free</a>
+ </div>
+ <button class="mobile-menu" aria-label="Menu">
+ <span></span><span></span><span></span>
+ </button>
+ </nav>
+ </header>
+
+ <main>
+ <section class="hero">
+ <div class="container">
+ <h1>Know the moment your site goes down</h1>
+ <p class="lead">Minute-by-minute monitoring with instant alerts. Beautiful status pages included.</p>
+ <div class="cta-group">
+ <a href="#signup" class="btn-primary pulse">Start Monitoring</a>
+ <a href="#demo" class="btn-secondary">View Demo</a>
+ </div>
+ <div class="status-demo">
+ <div class="status-card">
+ <div class="pulse-indicator"></div>
+ <div class="status-content">
+ <div class="status-bar"></div>
+ <div class="status-bar"></div>
+ <div class="status-bar"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </section>
+
+ <section id="features" class="features">
+ <div class="container">
+ <h2>Everything you need for reliable monitoring</h2>
+ <div class="feature-grid">
+ <div class="feature-card">
+ <div class="icon">⚡</div>
+ <h3>60-Second Checks</h3>
+ <p>Monitor your sites every minute from multiple locations worldwide.</p>
+ </div>
+ <div class="feature-card">
+ <div class="icon">📱</div>
+ <h3>Instant Alerts</h3>
+ <p>Get notified via SMS, email, Slack, or webhook when issues occur.</p>
+ </div>
+ <div class="feature-card">
+ <div class="icon">📊</div>
+ <h3>Status Pages</h3>
+ <p>Beautiful, customizable status pages to keep your users informed.</p>
+ </div>
+ <div class="feature-card">
+ <div class="icon">📈</div>
+ <h3>Detailed Reports</h3>
+ <p>Comprehensive uptime reports with historical data and insights.</p>
+ </div>
+ </div>
+ </div>
+ </section>
+
+ <section id="pricing" class="pricing">
+ <div class="container">
+ <h2>Simple, transparent pricing</h2>
+ <div class="pricing-grid">
+ <div class="price-card">
+ <h3>Starter</h3>
+ <div class="price">$29<span>/month</span></div>
+ <ul>
+ <li>10 monitors</li>
+ <li>60-second checks</li>
+ <li>Email alerts</li>
+ <li>Basic status page</li>
+ </ul>
+ <a href="#signup" class="btn-primary">Get Started</a>
+ </div>
+ <div class="price-card featured">
+ <h3>Professional</h3>
+ <div class="price">$79<span>/month</span></div>
+ <ul>
+ <li>50 monitors</li>
+ <li>30-second checks</li>
+ <li>All alert channels</li>
+ <li>Custom status pages</li>
+ </ul>
+ <a href="#signup" class="btn-primary">Get Started</a>
+ </div>
+ <div class="price-card">
+ <h3>Enterprise</h3>
+ <div class="price">Custom</div>
+ <ul>
+ <li>Unlimited monitors</li>
+ <li>15-second checks</li>
+ <li>Priority support</li>
+ <li>API access</li>
+ </ul>
+ <a href="#contact" class="btn-secondary">Contact Us</a>
+ </div>
+ </div>
+ </div>
+ </section>
+ </main>
+
+ <footer>
+ <div class="container">
+ <div class="footer-grid">
+ <div class="footer-col">
+ <h4>Product</h4>
+ <a href="#features">Features</a>
+ <a href="#pricing">Pricing</a>
+ <a href="#status">Status Page</a>
+ <a href="#api">API</a>
+ </div>
+ <div class="footer-col">
+ <h4>Company</h4>
+ <a href="#about">About</a>
+ <a href="#blog">Blog</a>
+ <a href="#careers">Careers</a>
+ <a href="#contact">Contact</a>
+ </div>
+ <div class="footer-col">
+ <h4>Resources</h4>
+ <a href="#docs">Documentation</a>
+ <a href="#support">Support</a>
+ <a href="#status">System Status</a>
+ <a href="#terms">Terms</a>
+ </div>
+ </div>
+ </div>
+ </footer>
+ <script src="script.js"></script>
+</body>
+</html>
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..52b152d
--- /dev/null
+++ b/style.css
@@ -0,0 +1,339 @@
+:root {
+ --primary: #6366f1;
+ --primary-dark: #4f46e5;
+ --secondary: #64748b;
+ --background: #f8fafc;
+ --text: #1e293b;
+ --border: #e2e8f0;
+ --white: #ffffff;
+ --radius: 12px;
+ --shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
+}
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, system-ui, sans-serif;
+ line-height: 1.6;
+ color: var(--text);
+ background: var(--background);
+}
+
+.container {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 0 1.5rem;
+}
+
+/* Typography */
+h1 {
+ font-size: clamp(2.5rem, 5vw, 4rem);
+ line-height: 1.1;
+ margin-bottom: 1.5rem;
+}
+
+h2 {
+ font-size: clamp(2rem, 4vw, 3rem);
+ margin-bottom: 3rem;
+ text-align: center;
+}
+
+.lead {
+ font-size: clamp(1.25rem, 2vw, 1.5rem);
+ color: var(--secondary);
+ margin-bottom: 2rem;
+}
+
+/* Navigation */
+header {
+ background: var(--white);
+ box-shadow: var(--shadow);
+ position: fixed;
+ width: 100%;
+ z-index: 1000;
+}
+
+nav {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 1rem 1.5rem;
+ max-width: 1200px;
+ margin: 0 auto;
+}
+
+.logo {
+ font-size: 1.5rem;
+ font-weight: bold;
+ color: var(--primary);
+}
+
+.nav-links {
+ display: flex;
+ gap: 2rem;
+ align-items: center;
+}
+
+.nav-links a {
+ text-decoration: none;
+ color: var(--text);
+ font-weight: 500;
+ transition: color 0.3s;
+}
+
+.nav-links a:hover {
+ color: var(--primary);
+}
+
+/* Buttons */
+.btn-primary, .btn-secondary {
+ display: inline-block;
+ padding: 0.75rem 1.5rem;
+ border-radius: var(--radius);
+ text-decoration: none;
+ font-weight: 500;
+ transition: all 0.3s;
+}
+
+.btn-primary {
+ background: var(--primary);
+ color: var(--white);
+}
+
+.btn-primary:hover {
+ background: var(--primary-dark);
+ transform: translateY(-2px);
+}
+
+.btn-secondary {
+ background: var(--white);
+ color: var(--text);
+ border: 1px solid var(--border);
+}
+
+.btn-secondary:hover {
+ border-color: var(--primary);
+ color: var(--primary);
+}
+
+/* Hero Section */
+.hero {
+ padding: 8rem 0 4rem;
+ text-align: center;
+ background: linear-gradient(to bottom, var(--background), var(--white));
+}
+
+.cta-group {
+ display: flex;
+ gap: 1rem;
+ justify-content: center;
+ margin-bottom: 4rem;
+}
+
+/* Status Demo Animation */
+.status-demo {
+ max-width: 600px;
+ margin: 0 auto;
+}
+
+.status-card {
+ background: var(--white);
+ padding: 2rem;
+ border-radius: var(--radius);
+ box-shadow: var(--shadow);
+ display: flex;
+ gap: 1.5rem;
+}
+
+.pulse-indicator {
+ width: 12px;
+ height: 12px;
+ background: #22c55e;
+ border-radius: 50%;
+ animation: pulse 2s infinite;
+}
+
+.status-content {
+ flex: 1;
+}
+
+.status-bar {
+ height: 8px;
+ background: var(--border);
+ border-radius: 4px;
+ margin-bottom: 0.75rem;
+ animation: shimmer 2s infinite;
+}
+
+/* Features Section */
+.features {
+ padding: 6rem 0;
+ background: var(--white);
+}
+
+.feature-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+ gap: 2rem;
+ margin-top: 3rem;
+}
+
+.feature-card {
+ padding: 2rem;
+ background: var(--background);
+ border-radius: var(--radius);
+ transition: transform 0.3s;
+}
+
+.feature-card:hover {
+ transform: translateY(-5px);
+}
+
+.icon {
+ font-size: 2rem;
+ margin-bottom: 1rem;
+}
+
+/* Pricing Section */
+.pricing {
+ padding: 6rem 0;
+ background: var(--background);
+}
+
+.pricing-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
+ gap: 2rem;
+ margin-top: 3rem;
+}
+
+.price-card {
+ background: var(--white);
+ padding: 2rem;
+ border-radius: var(--radius);
+ text-align: center;
+ transition: transform 0.3s;
+}
+
+.price-card.featured {
+ transform: scale(1.05);
+ border: 2px solid var(--primary);
+}
+
+.price-card:hover {
+ transform: translateY(-5px);
+}
+
+.price {
+ font-size: 2.5rem;
+ font-weight: bold;
+ margin: 1.5rem 0;
+}
+
+.price span {
+ font-size: 1rem;
+ color: var(--secondary);
+}
+
+.price-card ul {
+ list-style: none;
+ margin: 2rem 0;
+}
+
+.price-card li {
+ margin-bottom: 0.75rem;
+}
+
+/* Footer */
+footer {
+ background: var(--white);
+ padding: 4rem 0;
+ margin-top: 4rem;
+}
+
+.footer-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
+ gap: 3rem;
+}
+
+.footer-col h4 {
+ margin-bottom: 1.5rem;
+}
+
+.footer-col a {
+ display: block;
+ color: var(--secondary);
+ text-decoration: none;
+ margin-bottom: 0.75rem;
+ transition: color 0.3s;
+}
+
+.footer-col a:hover {
+ color: var(--primary);
+}
+
+/* Animations */
+@keyframes pulse {
+ 0% { transform: scale(1); opacity: 1; }
+ 50% { transform: scale(1.5); opacity: 0.5; }
+ 100% { transform: scale(1); opacity: 1; }
+}
+
+@keyframes shimmer {
+ 0% { opacity: 1; }
+ 50% { opacity: 0.5; }
+ 100% { opacity: 1; }
+}
+
+/* Mobile Responsiveness */
+.mobile-menu {
+ display: none;
+ background: none;
+ border: none;
+ cursor: pointer;
+ padding: 0.5rem;
+}
+
+.mobile-menu span {
+ display: block;
+ width: 25px;
+ height: 3px;
+ background: var(--text);
+ margin: 5px 0;
+ transition: 0.3s;
+}
+
+@media (max-width: 768px) {
+ .nav-links {
+ display: none;
+ }
+
+ .mobile-menu {
+ display: block;
+ }
+
+ .nav-links.active {
+ display: flex;
+ flex-direction: column;
+ position: absolute;
+ top: 100%;
+ left: 0;
+ right: 0;
+ background: var(--white);
+ padding: 1rem;
+ box-shadow: var(--shadow);
+ }
+
+ .cta-group {
+ flex-direction: column;
+ }
+
+ .hero {
+ padding-top: 6rem;
+ }
+}