Your AI chat scrolls wrong. Fix it in 4 lines of CSS
Stop dragging users back to the bottom while the answer streams. Four lines of CSS make your chat follow new text, and stop the moment the user scrolls up.
Read the full issueoutput.textContent += value;
chat.scrollTop = chat.scrollHeight;
What people say
Marko's newsletter fits my busy schedule. Small, digestible tips that keep me sharp without any extra effort.
One of my favorite newsletters. Modern web dev tips delivered straight to my inbox, every week.
Marko's newsletter is one of my favorite Saturday reads. It's genuinely worth your time.
Marko's advice is rooted in real experience, not theory. Easy to apply and worth following if you want to grow.
Marko taught me to stop over-polishing and start shipping. Result: 3× faster launches. Pure grind mode now. ⚔️
Marko's consultation was full of practical insights I could apply right away. I'd recommend it to anyone.
Marko helped us hit #2 Product of the Day on Product Hunt. His passion for web dev is contagious, a true difference-maker.
Marko completely turned around our social media content strategy. 100% recommend him if you want real results.
Marko is my go-to for social media strategy. He builds branding that actually reaches people with no wasted effort.
Marko shaped my X content strategy from scratch. I went from zero to 250K followers and I'm still growing.
Recent issues
Highlight search matches without touching the DOM
Stop wrapping search matches in mark tags. The CSS Custom Highlight API paints every match without adding a single element to your page.
Your articles need a "Copy for AI" button
Your readers already paste your articles into AI chats. Give them a clean Markdown copy instead, with one button and about 30 lines of JavaScript.
Stream AI answers word by word in 15 lines
Stop making users stare at a spinner while your AI feature thinks. Stream the answer word by word with 15 lines of JavaScript, no library, in every modern browser.
Let AI agents use your site with 3 HTML attributes
AI agents guess their way through your UI. Add 3 HTML attributes to your search form and they call it like a function instead. No library, no backend.
Skeleton loaders in pure CSS
Spinners make pages jump and flicker. Build a skeleton loader in pure CSS that only appears when loading is actually slow. Zero dependencies.
Skip the CSV export library: 12 lines of vanilla JS
Turn any HTML table into a CSV download with 12 lines of JavaScript. No backend, no library, and it opens correctly in Excel.












