SvelteKit using the static adapter to render everything to static HTML - except a few islands of with dynamic components like for the image gallery - and MDsvex to convert markdown to Svelte components with some extra remark plugins to simplify crosslinking, Tailwind for the CSS with some design copied from the excellent TailwindUI, Github Actions to push the static pages to GitHub Pages, and a CNAME on my domain pointing at the Pages URL. I have an Ink.js TUI utility to manage some bits of the blog like optimize static assets, update metadata or un/publish a post, etc.
For search I just generate a JSON file with all my posts and use Fuse.js to search against it locally in the browser.