<!DOCTYPE html>
<html lang="en">
 <head>
  <script>
   (function () {
  var proto = XMLHttpRequest.prototype;
  var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send;
  var TOKEN_KEY = 'base44_access_token';
  var storedTokenHeader = function () {
    try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; }
  };
  var forgetStoredToken = function () {
    try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {}
  };

  proto.open = function (method, url) {
    this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url);
    return open.apply(this, arguments);
  };

  proto.setRequestHeader = function (name, value) {
    if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) {
      this.__b44SentToken = value;
    }
    return setRequestHeader.call(this, name, value);
  };

  proto.send = function () {
    this.addEventListener('loadend', function () {
      var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader();
      if (rejectedTokenStillStored) forgetStoredToken();
    });
    return send.apply(this, arguments);
  };
})();
  </script>
  <meta charset="utf-8"/>
  <link href="/favicon.svg" rel="icon" type="image/svg+xml"/>
  <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
  <meta content="#111111" name="theme-color"/>
  <meta content="PerOla Hammar" name="author"/>
  <meta content="origin-when-cross-origin" name="referrer"/>
  <meta content="Practical, honest guidance for building, growing, and monetizing a useful blog: writing, SEO, audience, and revenue strategies that actually work." name="description"/>
  <meta content="WeBlogBetter — Build a better blog" property="og:title"/>
  <meta content="Practical, honest guidance for building, growing, and monetizing a useful blog." property="og:description"/>
  <meta content="website" property="og:type"/>
  <meta content="WeBlogBetter" property="og:site_name"/>
  <meta content="en_US" property="og:locale"/>
  <meta content="https://weblogbetter.com/" property="og:url"/>
  <meta content="https://media.base44.com/images/public/6a7a9ede848401cb191b6d68/daab6063b_perolahammar.png" property="og:image"/>
  <meta content="summary_large_image" name="twitter:card"/>
  <meta content="WeBlogBetter — Build a better blog" name="twitter:title"/>
  <meta content="Practical, honest guidance for building, growing, and monetizing a useful blog." name="twitter:description"/>
  <meta content="https://media.base44.com/images/public/6a7a9ede848401cb191b6d68/daab6063b_perolahammar.png" name="twitter:image"/>
  <link href="/manifest.json" rel="manifest"/>
  <link href="/sitemap.xml" rel="sitemap" type="application/xml"/>
  <link href="/feed.xml" rel="alternate" title="WeBlogBetter RSS Feed" type="application/rss+xml"/>
  <title>
   WeBlogBetter — Build a better blog
  </title>
  <script crossorigin="" src="/assets/index-DY0Zz1k5.js" type="module">
  </script>
  <link crossorigin="" href="/assets/index-jMSOb-TT.css" rel="stylesheet"/>
  <script type="module">
   if (window.self === window.top) {
  let lastPath = "";
  function getPageNameFromPath(path) {
    const segments = path.split("/").filter(Boolean);
    return segments[0] || null;
  }
  function trackPageView() {
    const path = window.location.pathname;
    if (path === lastPath) return;
    lastPath = path;
    const pageName = getPageNameFromPath(path) || "home";
    const appId = "6a7a9ede848401cb191b6d68";
    if (!appId) return;
    fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, {
      method: "POST",
    }).catch(() => {});
  }
  const originalPushState = history.pushState.bind(history);
  history.pushState = function (...args) {
    originalPushState(...args);
    trackPageView();
  };
  const originalReplaceState = history.replaceState.bind(history);
  history.replaceState = function (...args) {
    originalReplaceState(...args);
    trackPageView();
  };
  window.addEventListener("popstate", trackPageView);
  trackPageView();
}
  </script>
  <meta content="yes" name="mobile-web-app-capable"/>
  <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
  <meta content="WeBlogBetter" name="apple-mobile-web-app-title"/>
 </head>
 <body>
  <div id="root">
  </div>
 </body>
</html>
