Production-ready overhaul: backend fixes, claim flow polish, SEO, mobile, nginx
Backend: - Fix activity score (followersCount check), NIP-98 URL proto, wallet balance guard - Add payment_hash to confirm response, spentTodaySats to stats - Add idx_claims_ip_hash; security headers, graceful shutdown, periodic nonce cleanup Frontend: - Remove 8 legacy components; polish wizard (rules summary, profile card, confetti, share) - Stats budget bar uses spentTodaySats; ErrorBoundary with reload SEO & production: - Full meta/OG/Twitter, favicon, JSON-LD, robots.txt, sitemap.xml - Mobile CSS fixes; nginx static dist + gzip + cache + security headers - Vite manualChunks; aria-labels, dynamic page titles Made-with: Cursor
This commit is contained in:
@@ -3,7 +3,49 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Sats Faucet</title>
|
||||
<title>Sats Faucet — Free Bitcoin for Nostr Users</title>
|
||||
<meta name="description" content="Free Bitcoin sats faucet for Nostr users. Connect your Nostr account, prove your identity, and claim sats via Lightning. Transparent, fair, community-funded." />
|
||||
<meta name="robots" content="index, follow" />
|
||||
<meta name="theme-color" content="#0c1222" />
|
||||
<link rel="canonical" href="https://faucet.lnpulse.app/" />
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Sats Faucet — Free Bitcoin for Nostr Users" />
|
||||
<meta property="og:description" content="Claim free sats via Lightning. Connect your Nostr identity, pass eligibility checks, and receive a randomized payout. Community-funded and transparent." />
|
||||
<meta property="og:url" content="https://faucet.lnpulse.app/" />
|
||||
<meta property="og:site_name" content="Sats Faucet" />
|
||||
<meta property="og:image" content="https://faucet.lnpulse.app/og-image.png" />
|
||||
<meta property="og:image:width" content="1200" />
|
||||
<meta property="og:image:height" content="630" />
|
||||
|
||||
<!-- Twitter Card -->
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:title" content="Sats Faucet — Free Bitcoin for Nostr Users" />
|
||||
<meta name="twitter:description" content="Claim free sats via Lightning. Connect your Nostr identity, pass eligibility checks, and receive a randomized payout." />
|
||||
<meta name="twitter:image" content="https://faucet.lnpulse.app/og-image.png" />
|
||||
|
||||
<!-- Favicon (inline SVG lightning bolt) -->
|
||||
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='6' fill='%230c1222'/%3E%3Cpath d='M18 4L8 18h6l-2 10 10-14h-6z' fill='%23f97316'/%3E%3C/svg%3E" />
|
||||
<link rel="apple-touch-icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 180'%3E%3Crect width='180' height='180' rx='36' fill='%230c1222'/%3E%3Cpath d='M100 20L45 100h35l-12 60 58-80H90z' fill='%23f97316'/%3E%3C/svg%3E" />
|
||||
|
||||
<!-- Structured Data (JSON-LD) -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebApplication",
|
||||
"name": "Sats Faucet",
|
||||
"url": "https://faucet.lnpulse.app",
|
||||
"description": "Free Bitcoin sats faucet for Nostr users. Claim sats via Lightning with your Nostr identity.",
|
||||
"applicationCategory": "FinanceApplication",
|
||||
"operatingSystem": "Any",
|
||||
"offers": {
|
||||
"@type": "Offer",
|
||||
"price": "0",
|
||||
"priceCurrency": "USD"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
Reference in New Issue
Block a user