add newsletter

This commit is contained in:
samantha42
2026-05-30 18:15:20 +02:00
parent 681f916787
commit 8d4e523b3e
6 changed files with 104 additions and 17 deletions
+65
View File
@@ -271,6 +271,51 @@
</div>
<br>
</section>
<section id="newsletter">
<div class="page-header">
<h2 class="page-title">Equity Research · Newsletter</h2>
</div>
<div class="exp-card">
<div class="exp-header">
<span class="exp-title">When the numbers say something worth saying.</span>
</div>
<p class="exp-body">
Not a scheduled publication. Sent when there is a specific, well-reasoned case to make — a mispricing, a narrative the market has wrong, or an implied expectation that doesn't survive contact with the filings.
<br><br>
Fundamental analysis. SEC filings. No macro noise.
</p>
<div style="display:flex;flex-wrap:wrap;gap:1rem;margin:1.25rem 0;">
<div style="flex:1;min-width:140px;">
<div class="exp-title" style="margin-bottom:6px;">// thesis</div>
<p class="exp-body">A specific position on a specific company. Long or short. With a reason.</p>
</div>
<div style="flex:1;min-width:140px;">
<div class="exp-title" style="margin-bottom:6px;">// filings-first</div>
<p class="exp-body">10-K, 10-Q, earnings. The numbers, not the press release.</p>
</div>
</div>
<div id="nl-form" style="display:flex;flex-wrap:wrap;gap:8px;margin-top:1rem;">
<input
id="nl-email"
type="email"
placeholder="your@email.com"
autocomplete="email"
style="font-family:var(--ff-mono);font-size:0.75rem;background:transparent;border:0.5px solid var(--border);color:var(--text);padding:0 12px;height:36px;border-radius:3px;outline:none;min-width:200px;flex:1;"
/>
<button
onclick="nlSubmit()"
class="navigate"
style="height:36px;padding:0 16px;cursor:pointer;white-space:nowrap;"
>subscribe →</button>
</div>
<p id="nl-note" style="font-family:var(--ff-mono);font-size:0.65rem;color:var(--muted);margin-top:8px;">// no schedule. no spam. unsubscribe anytime.</p>
<p id="nl-success" style="display:none;font-family:var(--ff-mono);font-size:0.75rem;color:var(--accent, #5DCAA5);margin-top:8px;">// subscribed. you'll hear from me when something is worth writing about.</p>
</div>
</section>
<section id="interests">
<div class="page-header">
<h2 class="page-title" id="interest">
@@ -484,6 +529,26 @@ function openOverlay() {
button.textContent = "close ↑"
}
}
function nlSubmit() {
const input = document.getElementById('nl-email');
const val = input.value.trim();
if (!val || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(val)) {
input.style.borderColor = 'red';
input.focus();
setTimeout(() => { input.style.borderColor = ''; }, 1600);
return;
}
console.log(val)
// TODO: POST to your subscriber endpoint (Listmonk, Buttondown, etc.)
fetch('/newsletter/subscribe', { method:'POST', body: JSON.stringify({email:val}), headers:{'Content-Type':'application/json'} })
document.getElementById('nl-form').style.display = 'none';
document.getElementById('nl-note').style.display = 'none';
document.getElementById('nl-success').style.display = 'block';
}
document.getElementById('nl-email').addEventListener('keydown', e => {
if (e.key === 'Enter') nlSubmit();
});
</script>
<script src="/static/scripts/posteranimation.js"></script>