Monetizing a Low-Traffic SvelteKit Blog (Real Numbers, Real Stack)
Affiliate links, Adsterra fallback, and newsletter CTA — what actually earned money at 800 visits/month.
Static export, zero-backend data loading, and lightweight SvelteKit tool sites.
Affiliate links, Adsterra fallback, and newsletter CTA — what actually earned money at 800 visits/month.
_redirects, _routes.json, and the adapter-static fallback file that Cloudflare actually respects.
Vite imagetools, responsive srcset at build time, and fixing the 'image not found in production' bug.
Lazy-load ad scripts after LCP, slot placement in +layout.svelte, and the CSP headers that broke my first attempt.
JSON-to-YAML converter as a prerendered page with csr:true. No API routes, works on GitHub Pages.
Inline script in app.html blocks FOUC, localStorage sync, and system preference fallback — battle-tested pattern.
SvelteKit adapter-static deploys but internal links 404 on Vercel. Fix trailingSlash, prerender, and vercel.json rewrites.
Load blog posts and tool configs from JSON files at build time using import.meta.glob. Includes TypeScript types and hot reload.
rollup-plugin-visualizer findings, dynamic imports for heavy libs, and removing hydration on pages that don't need it.
Complete SvelteKit static export — adapter-static config, prerender routes, trailing slashes, and Vercel deployment that works.