Building This Blog with Astro v5

Why I chose Astro over Next.js for a content-focused site, and how Tailwind v4 changed the styling game.

Read Article →

Stay in the loop

Get new posts delivered straight to your inbox. Deep dives on AI, engineering, and architecture. No spam, unsubscribe anytime.

By subscribing, you agree to our Privacy Policy.

Subscribe to Our Newsletter

Email

{ const form = document.querySelector('form'); form.addEventListener("submit", (e) => { e.preventDefault(); const email = document.querySelector('input[name="email"]').value.trim(); fetch('/subscribe', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ email }), credentials: 'same-origin' }) .then(res => res.json()) .then(data => { document.querySelector('.bab-toast').classList.remove('closed'); document.querySelector('.bab-toast').textContent = data.message; }) .catch(() => { document.querySelector('.bab-toast').textContent = "Error"; }); }); });