<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Rami Mustaklem — Writing</title><description>Notes on security, frontend patterns, and tooling — things I&apos;ve learned shipping production systems.</description><link>https://ramim.dev</link><language>en</language><item><title>&quot;Session Cookie&quot; VS &quot;JWT&quot; — What are they and when to use which?</title><link>https://ramim.dev/blog/session-vs-jwt-what-and-when-to-use-which</link><guid isPermaLink="true">https://ramim.dev/blog/session-vs-jwt-what-and-when-to-use-which</guid><description>The two dominant auth strategies compared — how each works, where each breaks, and a practical rule for choosing.</description><pubDate>Thu, 19 Sep 2024 00:00:00 GMT</pubDate><category>Security</category><category>Backend</category></item><item><title>How to Secure your Single Page Application</title><link>https://ramim.dev/blog/how-to-secure-a-single-page-application</link><guid isPermaLink="true">https://ramim.dev/blog/how-to-secure-a-single-page-application</guid><description>XSS, CSRF, auth strategies, security headers and dependency hygiene — a practical hardening checklist for SPAs.</description><pubDate>Sun, 01 Sep 2024 00:00:00 GMT</pubDate><category>Security</category><category>Frontend</category></item><item><title>Stop using React useState to control inputs</title><link>https://ramim.dev/blog/stop-using-react-usestate-to-control-inputs</link><guid isPermaLink="true">https://ramim.dev/blog/stop-using-react-usestate-to-control-inputs</guid><description>Controlled inputs re-render on every keystroke. Most forms don&apos;t need that — here&apos;s the simpler pattern.</description><pubDate>Mon, 20 Feb 2023 00:00:00 GMT</pubDate><category>React</category></item><item><title>Why I use PNPM over YARN and NPM — and you should too</title><link>https://ramim.dev/blog/why-i-use-pnpm-over-yarn-and-npm</link><guid isPermaLink="true">https://ramim.dev/blog/why-i-use-pnpm-over-yarn-and-npm</guid><description>Disk-efficient, strict, and fast — what pnpm does differently and why it matters on real projects.</description><pubDate>Fri, 10 Feb 2023 00:00:00 GMT</pubDate><category>Tooling</category></item><item><title>How to Optimize a WordPress/WooCommerce Shop to Load in Under 3 Seconds</title><link>https://medium.com/@ramimustaklem/how-to-optimize-a-wordpress-woocommerce-shop-to-load-in-less-than-3-seconds-36ade8faa3ee</link><guid isPermaLink="true">https://medium.com/@ramimustaklem/how-to-optimize-a-wordpress-woocommerce-shop-to-load-in-less-than-3-seconds-36ade8faa3ee</guid><description>Caching, image pipelines and query trimming on a live WooCommerce shop. Published on Medium.</description><pubDate>Sat, 01 Aug 2020 00:00:00 GMT</pubDate><category>Performance</category></item></channel></rss>