<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>semih.fun The rulebook</title><description>Notes on Laravel, React, Three.js, e-commerce and game development. Every post is a page on how a piece of work is played.</description><link>https://semih.fun/</link><language>en-US</language><item><title>WHMCS or WiseCP? 6 questions to ask when a hosting company picks a panel</title><link>https://semih.fun/en/blog/whmcs-vs-wisecp/</link><guid isPermaLink="true">https://semih.fun/en/blog/whmcs-vs-wisecp/</guid><description>What to look at when a company selling hosting and domains chooses between WHMCS and WiseCP. There&apos;s no winner, only the right questions.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><category>WHMCS</category><category>WiseCP</category><category>Hosting</category></item><item><title>Making a WHMCS theme update-safe: child themes and hooks</title><link>https://semih.fun/en/blog/whmcs-child-theme/</link><guid isPermaLink="true">https://semih.fun/en/blog/whmcs-child-theme/</guid><description>A child theme structure, the template markup you must keep, and hook-based customisation without touching the core, so your custom theme survives WHMCS updates.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><category>WHMCS</category><category>Hosting</category></item><item><title>GEO: how to write content that AI answers cite as a source</title><link>https://semih.fun/en/blog/geo-content/</link><guid isPermaLink="true">https://semih.fun/en/blog/geo-content/</guid><description>Search isn&apos;t just ten blue links anymore. Structure, language and technical tips for content that answer engines like ChatGPT, Perplexity and Gemini understand and quote.</description><pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate><category>SEO</category><category>Markdown</category></item><item><title>Customising WiseCP without touching the core: first steps with hooks</title><link>https://semih.fun/en/blog/wisecp-hooks/</link><guid isPermaLink="true">https://semih.fun/en/blog/wisecp-hooks/</guid><description>Modules, themes, hooks and the API explained, plus practical examples with action, filter and gate hooks, so your WiseCP extensions survive every update.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate><category>WiseCP</category><category>Hosting</category></item><item><title>60 FPS in a browser game: smooth scenes without cooking the phone</title><link>https://semih.fun/en/blog/browser-game-60fps/</link><guid isPermaLink="true">https://semih.fun/en/blog/browser-game-60fps/</guid><description>Practical notes on draw calls, shadows, textures and pixel ratio for keeping a Three.js browser game smooth on mid-range phones.</description><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate><category>Three.js</category><category>WebGL</category><category>Game development</category></item><item><title>7 rules for getting a sales team to love its CRM</title><link>https://semih.fun/en/blog/crm-adoption/</link><guid isPermaLink="true">https://semih.fun/en/blog/crm-adoption/</guid><description>Setting up a CRM is easy; getting the team to actually use it is hard. Seven practical rules for a CRM your sales team opens on its own instead of avoiding.</description><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate><category>CRM</category><category>Small business</category></item><item><title>From Excel to ERP: a switch plan that keeps the business running</title><link>https://semih.fun/en/blog/excel-to-erp/</link><guid isPermaLink="true">https://semih.fun/en/blog/excel-to-erp/</guid><description>Have stock, orders and production lived in Excel for years? A step-by-step plan for moving to an ERP without stopping the business or losing the team.</description><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate><category>ERP</category><category>Small business</category></item><item><title>Your first field in the browser with Three.js</title><link>https://semih.fun/en/blog/threejs-first-field/</link><guid isPermaLink="true">https://semih.fun/en/blog/threejs-first-field/</guid><description>How do you set up the first scene of a browser game? A step-by-step start with Three.js for camera, light, a low-poly field and clickable plots.</description><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><category>Three.js</category><category>WebGL</category><category>Game development</category></item><item><title>A bilingual site with Astro: wiring hreflang correctly</title><link>https://semih.fun/en/blog/astro-bilingual/</link><guid isPermaLink="true">https://semih.fun/en/blog/astro-bilingual/</guid><description>How to set up URL structure, shared content keys and hreflang tags in Astro so search engines understand your Turkish and English pages correctly.</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate><category>Astro</category><category>SEO</category></item><item><title>CRM or ERP? Choosing the right order for your business</title><link>https://semih.fun/en/blog/crm-or-erp/</link><guid isPermaLink="true">https://semih.fun/en/blog/crm-or-erp/</guid><description>A CRM runs the customer side, an ERP runs the inside of the business. Which one to start with, how the two connect and what to watch during the switch.</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate><category>CRM</category><category>ERP</category><category>Small business</category></item><item><title>A site without a database: content management with Markdown and Astro</title><link>https://semih.fun/en/blog/markdown-site/</link><guid isPermaLink="true">https://semih.fun/en/blog/markdown-site/</guid><description>This site uses no database. Posts, projects and services are generated from Markdown files. Why I chose this path and how it works.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>Astro</category><category>Markdown</category><category>SEO</category></item></channel></rss>