Plain HTML + JS. I am not doing sales, so it is enough for me. (I also find it very fun to play with WebGL for 3D rendering and animations, but this is just for fun : ) )
In generates I do everything in case but because I take it as an exercise cue, it depends on the complexity, if too big you probably better use tools that make it easier otherwise you don't get out alive :)
For my AI-based crypto newsletter https://quickviewai.substack.com I made a backend that automates the management of summaries but then I didn't have to make any frontend as I relied on the Substack newsletter platform
Squarespace. That might change when I develop a browser-based version of my mobile app, or I'll keep the Squarespace site for marketing and blogging and have the app on a different platform.