mirror of
https://github.com/aljazceru/awesome-nostr.git
synced 2026-09-14 02:55:07 +00:00
- zap-core.js: dependency-free BOLT11 decoder (checksum, mainnet hrp, exact amount vs requested msat per LUD-06, expiry, description-hash binding to the serialized NIP-57 zap request), provider selector (most-recently- connected wins), transient-error classifier, zap lifecycle guard — all unit-tested (node --test, 20 tests) - zap.js: invoice claims match proof (receipt-bound / unverified / none); payment triage (transient -> recovery panel, terminal -> provider message); single pending recovery protected from concurrent failures; all recovery exits clear guard + chip state - loads zap-core.js before zap.js in index.html (both must deploy together)
139 lines
6.2 KiB
HTML
139 lines
6.2 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<script defer data-domain="nostr.net" src="https://analytics.cypherpunk.cloud/js/script.js"></script>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<!-- Add favicon links -->
|
|
<link rel="icon" type="image/png" href="Logo.png">
|
|
<link rel="apple-touch-icon" href="Logo.png">
|
|
|
|
<meta name="description" content="A comprehensive collection of Nostr resources, tools, clients, and protocols for developers and users.">
|
|
<meta name="keywords" content="nostr, cryptocurrency, decentralized social, protocols, tools, clients, resources">
|
|
<meta name="author" content="Your Name">
|
|
<meta name="robots" content="index, follow">
|
|
|
|
<!-- Open Graph / Social Media Meta Tags -->
|
|
<meta property="og:title" content="Awesome Nostr Resources">
|
|
<meta property="og:description" content="A comprehensive collection of Nostr resources, tools, clients, and protocols for developers and users.">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:url" content="https://your-domain.com">
|
|
<meta property="og:image" content="https://your-domain.com/path-to-image.jpg">
|
|
|
|
<!-- Twitter Card Meta Tags -->
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:title" content="Awesome Nostr Resources">
|
|
<meta name="twitter:description" content="A comprehensive collection of Nostr resources, tools, clients, and protocols for developers and users.">
|
|
<meta name="twitter:image" content="https://your-domain.com/path-to-image.jpg">
|
|
|
|
<title>Awesome Nostr Resources | Comprehensive Guide to Nostr Protocol</title>
|
|
<link rel="preconnect" href="https://esm.sh" crossorigin>
|
|
<link rel="stylesheet" href="styles.css">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
|
|
</head>
|
|
<body>
|
|
<nav class="top-nav">
|
|
<div class="nav-content">
|
|
<h1>
|
|
<div class="logo-container">
|
|
<img src="Logo.png" alt="Nostr Logo" class="nav-logo">
|
|
<span class="logo-text">.NET</span>
|
|
</div>
|
|
</h1>
|
|
<div class="search-box">
|
|
<input type="text" id="search" placeholder="Search resources...">
|
|
<i class="fas fa-search"></i>
|
|
</div>
|
|
<div class="theme-controls">
|
|
<!-- Color theme select dropdown commented out as requested
|
|
<select id="colorThemeSelect" class="theme-select" aria-label="Select color theme">
|
|
<option value="cyberpunk">Default</option>
|
|
<option value="purple">Purple Dream</option>
|
|
<option value="nature">Nature's Touch</option>
|
|
<option value="sunset">Sunset Vibes</option>
|
|
<option value="grape">Grape Fusion</option>
|
|
<option value="autumn">Autumn Warmth</option>
|
|
<option value="midnight">Midnight Rose</option>
|
|
<option value="rosenoir">Rose Noir</option>
|
|
<option value="nord">Nord</option>
|
|
<option value="pastel">Pastel Pop</option>
|
|
<option value="oceanic">Oceanic Breeze</option>
|
|
<option value="dracula">Dracula</option>
|
|
</select>
|
|
-->
|
|
<bc-button id="bcConnect"></bc-button>
|
|
<a id="fundButton" class="fund-toggle" href="lightning:aljaz@minibits.cash"
|
|
title="Fund nostr.net ⚡ aljaz@minibits.cash"
|
|
aria-label="Fund nostr.net with a Lightning zap">
|
|
<i class="fas fa-bolt"></i>
|
|
</a>
|
|
<button id="darkModeToggle" class="theme-toggle" aria-label="Toggle dark mode">
|
|
<i class="fas fa-moon"></i>
|
|
</button>
|
|
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<!-- Move menu toggle button outside of sidebar -->
|
|
<button id="menuToggle" class="menu-toggle" aria-label="Toggle menu">
|
|
<i class="fas fa-bars"></i>
|
|
</button>
|
|
|
|
<div class="container">
|
|
<!-- Remove duplicate menu toggle from sidebar -->
|
|
<nav class="sidebar" aria-label="Main navigation">
|
|
<header class="sidebar-header">
|
|
<h4>Nostr Resources</h4>
|
|
</header>
|
|
<div class="sidebar-content">
|
|
<ul class="nav-links">
|
|
<!-- Categories will be dynamically populated here -->
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
|
|
<!-- Main Content -->
|
|
<main class="main-content" role="main">
|
|
<a class="fund-banner" href="#zappable-projects">
|
|
<i class="fas fa-bolt" aria-hidden="true"></i>
|
|
<span class="fund-banner-text"><strong>grantless</strong> — zap the projects building nostr. Every project with a ⚡ chip is zappable, right here on the list.</span>
|
|
<span class="fund-banner-cta">Zappable projects <i class="fas fa-arrow-right" aria-hidden="true"></i></span>
|
|
</a>
|
|
<header class="content-header">
|
|
<div class="view-controls">
|
|
<!-- Dark mode toggle has been moved to top nav -->
|
|
</div>
|
|
</header>
|
|
|
|
<div id="resources-container" role="region" aria-label="Resource listings"></div>
|
|
</main>
|
|
</div>
|
|
|
|
<footer class="site-footer">
|
|
<p>© 2025 nostr.net All rights reserved.</p>
|
|
</footer>
|
|
<!-- Add marked.js before your script -->
|
|
<script type="module">
|
|
import * as bitcoinConnect from 'https://esm.sh/@getalby/bitcoin-connect@3.12.3';
|
|
window.bitcoinConnect = bitcoinConnect;
|
|
</script>
|
|
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
|
<script src="script.js"></script>
|
|
<script src="zap-core.js"></script>
|
|
<script src="zap.js"></script>
|
|
|
|
<!-- Google tag (gtag.js) -->
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=G-E6V2R7B0KQ"></script>
|
|
<script>
|
|
window.dataLayer = window.dataLayer || [];
|
|
function gtag(){dataLayer.push(arguments);}
|
|
gtag('js', new Date());
|
|
|
|
gtag('config', 'G-E6V2R7B0KQ');
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|