<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Adriano Dias · Writing</title>
  <subtitle>Freelance web developer in Brussels. Drupal, Laravel and static sites, built and maintained properly.</subtitle>
  <link href="https://adwebdev.xyz/writing/feed.xml" rel="self"/>
  <link href="https://adwebdev.xyz/"/>
  <id>https://adwebdev.xyz/writing/feed.xml</id>
  <updated>2026-10-27T00:00:00Z</updated>
  <author><name>Adriano Dias</name></author>
  <generator>Statico</generator>
  <entry>
    <title>Not Invented Here (Yet) 🦀</title>
    <link href="https://adwebdev.xyz/writing/not-invented-here/"/>
    <id>https://adwebdev.xyz/writing/not-invented-here/</id>
    <published>2026-10-27T00:00:00Z</published>
    <updated>2026-10-27T00:00:00Z</updated>
    <summary>I rewrote my static site generator. Then I didn&#39;t stop. A field report from somewhere inside the vibe-coding trenches.</summary>
    <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/images/posts/not-invented-here.png&quot; alt=&quot;A terminal listing tools being rewritten&quot; /&gt;&lt;/p&gt;
&lt;p&gt;So. Funny thing happened on the way to having a simple blog.&lt;/p&gt;
&lt;p&gt;You may remember &lt;a href=&quot;/writing/hello-world/&quot;&gt;my first post&lt;/a&gt;, where I explained that I&#39;d chosen static sites because I&#39;m lazy—sorry, &lt;em&gt;efficient&lt;/em&gt;—and didn&#39;t want to maintain anything. A reasonable position. A position I held for roughly as long as it took for the Tailwind build to break in a way the error message declined to explain.&lt;/p&gt;
&lt;p&gt;Reader, I did not debug it. I rewrote the whole generator in Rust.&lt;/p&gt;
&lt;h2 id=&quot;-the-current-inventory&quot;&gt;🧱 The Current Inventory&lt;/h2&gt;
&lt;p&gt;Here&#39;s the honest state of my &quot;I just want a simple blog&quot; project:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/adrianodias8/statico&quot;&gt;Statico&lt;/a&gt;&lt;/strong&gt; — a static site generator. Replaces Static by DevDojo. It builds this very page. ✅ Done, actually works, I&#39;m using it right now.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;berth&lt;/strong&gt; — a free, open-source take on OrbStack. Docker and Linux on Apple Silicon, straight onto Virtualization.framework. Because I looked at my container tooling and thought &quot;how hard can it be.&quot; 🚧&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;rustyphp&lt;/strong&gt; — a PHP engine. In Rust. We&#39;ll come back to this one. 💀&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;This website&lt;/strong&gt; — I needed a portfolio. A portfolio is one page. Instead it boots like an operating system on an old CRT: windows, a dock, a pretend browser, a terminal, a screensaver, a folder of sixteen little tools, and a fake Tinker and Drush backed by a small PHP interpreter I wrote in JavaScript. (Yes, another PHP engine. Given what happened with the last one, which we&#39;ll get to, this was brave.) There&#39;s even an AI agent window that pretends to rewrite the site while you read it, which is either satire or a cry for help. ✅ You&#39;re inside it right now.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&#39;s the part I&#39;m willing to put in a list with a straight face.&lt;/p&gt;
&lt;h2 id=&quot;-the-graveyard&quot;&gt;⚰️ The Graveyard&lt;/h2&gt;
&lt;p&gt;Here&#39;s the part nobody puts in the list.&lt;/p&gt;
&lt;p&gt;For every project above there&#39;s a folder of repos where the README is comfortably the most finished artefact in it. Things I started at 11pm with total conviction and abandoned by Thursday, not because they didn&#39;t work, but because the interesting problem had already been solved in my head and the remaining 80% was just &lt;em&gt;typing&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;This is, I think, the actual occupational hazard of vibe coding. Not bad code — bad &lt;em&gt;follow-through&lt;/em&gt;. When starting something costs an evening instead of a quarter, you start everything. The bottleneck was never the idea. It was the three weeks of grind that used to filter out the ideas that weren&#39;t worth it, and that filter is gone now.&lt;/p&gt;
&lt;p&gt;So you end up with a graveyard. Every vibe coder has one. Mine has a view.&lt;/p&gt;
&lt;p&gt;I&#39;ve made peace with it, mostly. Some of those repos were genuinely just me learning something with extra steps, and there are worse ways to spend a Tuesday. But I do notice that the three projects I listed above are the three I actually &lt;em&gt;use&lt;/em&gt;, and I don&#39;t think that&#39;s coincidence. Dogfooding is the only honest filter I&#39;ve found: if you don&#39;t reach for it on a normal day, it&#39;s already in the graveyard, it just hasn&#39;t been told yet.&lt;/p&gt;
&lt;h2 id=&quot;-rustyphp-or-signs-and-portents&quot;&gt;💀 rustyphp, or: Signs and Portents&lt;/h2&gt;
&lt;p&gt;Which brings me to rustyphp.&lt;/p&gt;
&lt;p&gt;I write Drupal and Laravel for a living. PHP has paid for every meal I have eaten in a decade. So naturally I decided to implement its engine. In Rust. Voluntarily, in my own time, for fun.&lt;/p&gt;
&lt;p&gt;Shortly after I started, my MacBook&#39;s screen did this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/posts/cursed-screen.jpg&quot; alt=&quot;A MacBook screen with two vertical black bands of dead pixels running down it&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Two vertical black bars. Straight down the display. Permanently.&lt;/p&gt;
&lt;p&gt;Now. I want to be clear that I am a professional and I understand that display failures have physical causes — a flex cable, a panel defect, thermal cycling, the ordinary cruelty of hardware. There is no mechanism by which writing a PHP parser damages a laptop screen.&lt;/p&gt;
&lt;p&gt;I understand this.&lt;/p&gt;
&lt;p&gt;I am simply observing that I have written PHP for ten years without incident, and that within weeks of attempting to &lt;em&gt;reimplement&lt;/em&gt; it, my machine developed a permanent visual impairment in the exact region where I had been reading the parser code.&lt;/p&gt;
&lt;p&gt;I&#39;m not saying it&#39;s related. I&#39;m saying I haven&#39;t opened that repo since, and my screen hasn&#39;t gotten any worse. Draw your own conclusions. Some things aren&#39;t meant to be rewritten, and PHP&#39;s engine may well be load-bearing for reality in ways the spec doesn&#39;t document.&lt;/p&gt;
&lt;p&gt;rustyphp stays where it is. Respectfully. 🙏&lt;/p&gt;
&lt;h2 id=&quot;-in-my-defence-dhh-started-it&quot;&gt;🎤 In My Defence, DHH Started It&lt;/h2&gt;
&lt;p&gt;Here&#39;s where I&#39;d like to shift some blame.&lt;/p&gt;
&lt;p&gt;At Rails World 2026, DHH gave a keynote about how 37signals is building software now — there&#39;s a good &lt;a href=&quot;https://rustify.rs/articles/rails-world-2026-keynote-dhh-hey-rust-ai-agents&quot;&gt;write-up over at Rustify&lt;/a&gt;. The short version, as I understood it through the haze of my own enthusiasm:&lt;/p&gt;
&lt;p&gt;They&#39;ve gone &lt;strong&gt;&quot;pencils down&quot;&lt;/strong&gt; — meaning the normal workflow is no longer a human typing the implementation. A human decides what should exist, an agent writes it, the human reviews what came back.&lt;/p&gt;
&lt;p&gt;He reckons Rust is unpleasant to read and write by hand, but that this matters a great deal less when a human isn&#39;t the one doing the typing. Meanwhile it&#39;s fast, which you get to keep forever.&lt;/p&gt;
&lt;p&gt;They rewrote the HEY mail server core in Rust and reported something like 99% less CPU and 95% less memory. He was upfront that these are their own numbers from their own workload, so season to taste — but even if you halve it twice, that&#39;s still an absurd result.&lt;/p&gt;
&lt;p&gt;And the number that really got me: around 150,000 lines of code in a single month, against a historical average of roughly 30,000 lines of production Ruby &lt;em&gt;per year&lt;/em&gt;. The Rustify write-up is careful to point out that counting lines is a famously terrible way to measure productivity, which is true, and which I ignored instantly because it was telling me what I wanted to hear.&lt;/p&gt;
&lt;p&gt;So. A man with considerably more credibility than me says the constraint has moved. Rewriting your tools is no longer obviously insane.&lt;/p&gt;
&lt;p&gt;I took this as a personal licence. I don&#39;t think it was issued as one.&lt;/p&gt;
&lt;h2 id=&quot;-the-part-where-i-admit-i-might-be-losing-it&quot;&gt;🫠 The Part Where I Admit I Might Be Losing It&lt;/h2&gt;
&lt;p&gt;Let me be honest about the other side of this, because the post would be a lie otherwise.&lt;/p&gt;
&lt;p&gt;There&#39;s a specific feeling when an agent hands you 2,000 lines of working Rust in a language whose borrow checker you&#39;ve argued with maybe twice. It passes. The tests are green. The benchmarks are genuinely good.&lt;/p&gt;
&lt;p&gt;And a small voice asks: &lt;em&gt;do you understand this?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Sometimes yes. Sometimes I understand it the way you understand a city you&#39;ve only seen from a train. I know the shape. I could not give directions.&lt;/p&gt;
&lt;p&gt;I keep catching myself in a loop that goes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Notice minor annoyance in existing tool.&lt;/li&gt;
&lt;li&gt;Think &quot;I could rewrite this.&quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Actually rewrite it&lt;/strong&gt;, because now that&#39;s a Tuesday evening rather than a six-month project.&lt;/li&gt;
&lt;li&gt;Now maintain it. Forever. Alone.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Step four is doing a tremendous amount of silent work there. Statico is lovely right now because I wrote it last week. Ask me about maintaining it in two years when someone files a genuinely good bug report about a Tailwind v5 edge case I&#39;ve never heard of.&lt;/p&gt;
&lt;p&gt;The honest summary: I cannot currently tell whether I&#39;m being unusually productive or unusually unhinged. The outputs look identical from inside.&lt;/p&gt;
&lt;h2 id=&quot;-until-then-vibe-code-everything&quot;&gt;🏄 Until Then: Vibe Code Everything&lt;/h2&gt;
&lt;p&gt;So here&#39;s where I&#39;ve landed, and I accept it is not a rigorous position:&lt;/p&gt;
&lt;p&gt;I&#39;m going to keep going. Full send. Vibe code everything.&lt;/p&gt;
&lt;p&gt;Partly because it&#39;s the most fun I&#39;ve had programming in years, and I think that counts for more than people admit. Partly because the tools I&#39;ve ended up with are genuinely better &lt;em&gt;for me&lt;/em&gt; — Statico does exactly what I want, has no Node in it, and builds this site in under a second, because it was built by someone with a sample size of one user and strong opinions about that user.&lt;/p&gt;
&lt;p&gt;And partly because if the constraint really has moved, the people who find out first will be the ones who went and poked it.&lt;/p&gt;
&lt;p&gt;I&#39;ll reassess when something catches fire. Something already did catch fire, technically, but it was only the screen. 🦀&lt;/p&gt;
&lt;h2 id=&quot;-next-local-models-and-a-very-expensive-laptop&quot;&gt;🔮 Next: Local Models, and a Very Expensive Laptop&lt;/h2&gt;
&lt;p&gt;Which brings me to the next thing I&#39;m going to be insufferable about.&lt;/p&gt;
&lt;p&gt;I&#39;ve been dabbling with running models locally, and so far it&#39;s been equal parts &quot;oh, that&#39;s genuinely useful&quot; and &quot;why is this eating my entire machine.&quot; Both of these problems may be solved by throwing money at them, which is my favourite kind of problem.&lt;/p&gt;
&lt;p&gt;A MacBook Pro M5 Max with 128GB of unified memory arrives later this week. 🎉&lt;/p&gt;
&lt;p&gt;That is an amount of RAM that would have run a small hosting company, and I intend to spend it asking local models to write Rust I will then nod at knowingly. It also, and I cannot stress this enough, has a &lt;strong&gt;screen that works&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;m planning to write up what I actually find, honestly — which models are genuinely usable at that memory, what the speeds really look like rather than what the benchmarks claim, and whether local models are good enough yet to do the sort of work I&#39;ve been handing to the cloud. Including the bits that don&#39;t work, because those posts are more useful and nobody writes them.&lt;/p&gt;
&lt;p&gt;Assuming the laptop arrives, and assuming I haven&#39;t started rewriting macOS by then.&lt;/p&gt;
&lt;p&gt;Stay tuned for more rambling!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Hello World 🌍</title>
    <link href="https://adwebdev.xyz/writing/hello-world/"/>
    <id>https://adwebdev.xyz/writing/hello-world/</id>
    <published>2025-04-08T00:00:00Z</published>
    <updated>2025-04-08T00:00:00Z</updated>
    <summary>My first post, on why I went with a static site and how this blog is built and deployed.</summary>
    <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/images/posts/hello-world.jpeg&quot; alt=&quot;Hello World&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Updated, October 2026&lt;/strong&gt; — this post originally walked through building the blog with Static by DevDojo. The site now runs on &lt;a href=&quot;https://github.com/adrianodias8/statico&quot;&gt;Statico&lt;/a&gt;, a static site generator I ended up writing in Rust. The commands and the deploy workflow below have been updated to match. Everything else is as it was.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Oh, hi there! 👋 Welcome to my very first blog post. Think of it like that awkward &quot;Hello, World!&quot; program we all wrote when first learning to code.&lt;/p&gt;
&lt;p&gt;I&#39;ve decided to kick things off by embracing the concept of less is more, mostly because I&#39;m lazy—oops, I meant &quot;efficient&quot; and I found out static sites are an awesome way to achieve this. Plus, who has time for complicated CMS setups, database migrations, updates, etc etc...&lt;/p&gt;
&lt;h2 id=&quot;-static-websites-when-less-really-is-more&quot;&gt;🚀 Static Websites: When Less Really is More&lt;/h2&gt;
&lt;p&gt;You might be thinking: &quot;Static websites? Sounds boring!&quot; But hear me out, they&#39;re like the IKEA furniture of web development—sleek, functional, and occasionally frustratingly simple. No moving parts means fewer things to break, less to maintain.&lt;/p&gt;
&lt;p&gt;I started out with Static by DevDojo because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It&#39;s free (my favorite price).&lt;/li&gt;
&lt;li&gt;It&#39;s easy (my favorite difficulty level).&lt;/li&gt;
&lt;li&gt;You can get something looking nice really fast.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&#39;s what got this blog off the ground, and the idea behind it is still exactly what I wanted: pages are just HTML files, with a handful of tags for layouts, includes and loops. No template language to learn.&lt;/p&gt;
&lt;p&gt;What I kept tripping over was everything around it. It needs Node, the Tailwind setup broke in ways that were hard to pin down, and when something went wrong the error rarely told me which file to look at. So I did the reasonable, proportionate thing and rewrote it in Rust. 🙃&lt;/p&gt;
&lt;p&gt;That&#39;s &lt;strong&gt;Statico&lt;/strong&gt;: same HTML, same folders, same tags — one binary instead of a Node toolchain. My site files didn&#39;t change at all when I switched, which is the part I&#39;m most pleased about.&lt;/p&gt;
&lt;h2 id=&quot;-how-to-statico-like-a-pro-or-at-least-fake-it&quot;&gt;🛠️ How to Statico Like a Pro (or at least Fake It)&lt;/h2&gt;
&lt;p&gt;Here&#39;s the quick guide to getting started:&lt;/p&gt;
&lt;p&gt;Install Statico: it&#39;s a single binary, so there&#39;s nothing else to set up. Open your terminal and run:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;curl -fsSL https://raw.githubusercontent.com/adrianodias8/statico/main/packaging/install.sh | sh&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This drops a &lt;code&gt;statico&lt;/code&gt; binary into &lt;code&gt;~/.local/bin&lt;/code&gt;. Builds for other platforms are on the &lt;a href=&quot;https://github.com/adrianodias8/statico/releases&quot;&gt;releases page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Create a New Project: Navigate to the directory where you want your project to reside and run:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;statico new my-static-site&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Replace my-static-site with your desired project name. This command creates a new folder with all the necessary files for your static site.&lt;/p&gt;
&lt;p&gt;Navigate to Your Project Folder:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cd my-static-site&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Move into your project&#39;s directory to start working on it.&lt;/p&gt;
&lt;p&gt;Start the Development Server: Launch the local development server with:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;statico dev&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Your site is now running locally at http://localhost:3000/, and it reloads by itself when you save a file. Open this URL in your browser to view your site.&lt;/p&gt;
&lt;p&gt;Check Your Work: Before you push anything, run:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;statico check&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This builds the site and tells you about broken links, missing &lt;code&gt;#anchor&lt;/code&gt; targets, images without alt text and placeholders you typo&#39;d. Zero errors means you&#39;re good.&lt;/p&gt;
&lt;p&gt;Build for Production: Once you&#39;re satisfied with your site, generate the production-ready files by running:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;statico build&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This command creates a &lt;code&gt;_site&lt;/code&gt; folder containing your optimized static files, ready for deployment.&lt;/p&gt;
&lt;p&gt;Congratulations, you&#39;re now the proud owner of a static website!&lt;/p&gt;
&lt;h2 id=&quot;-why-static-websites-are-actually-awesome&quot;&gt;🤔 Why Static Websites Are Actually Awesome&lt;/h2&gt;
&lt;p&gt;⚡ Speed: Super fast loading times due to optimized static assets.&lt;/p&gt;
&lt;p&gt;🔐 Security: Less vulnerable to hacking because, honestly, there&#39;s nothing dynamic to hack.&lt;/p&gt;
&lt;p&gt;💰 Cost-effective: Hosting is virtually free. For example, GitHub Pages offers free hosting.&lt;/p&gt;
&lt;h2 id=&quot;-deploying-your-static-website-on-github-pages&quot;&gt;🌐 Deploying Your Static Website on GitHub Pages&lt;/h2&gt;
&lt;p&gt;Let&#39;s take advantage of GitHub Pages to host your static site completely for free! Follow these simple steps to deploy your site automatically each time you update your repository.&lt;/p&gt;
&lt;p&gt;Step-by-Step Guide for GitHub Pages&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a GitHub Repository:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Visit GitHub and create a new repository (for example, my-static-site).&lt;/p&gt;
&lt;p&gt;Clone it locally, or set your existing project to track this remote.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git init
git add .
git commit -m &quot;Initial commit&quot;
git branch -M main
git remote add origin https://github.com/yourusername/my-static-site.git
git push -u origin main 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Replace yourusername and my-static-site with your GitHub username and repo name.&lt;/p&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;Add GitHub Actions Workflow:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In your repository, you should find new folder &lt;code&gt;.github/workflows&lt;/code&gt; and a &lt;code&gt;static.yml&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Note on GitHub Workflow&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Back when this ran on Static, the default workflow didn&#39;t work for me — some of the actions it used were outdated, and I added a &lt;a href=&quot;https://github.com/static-templates/aria/pull/4&quot;&gt;pull request&lt;/a&gt; so hopefully someone from DevDojo updates it in their templates.&lt;/p&gt;
&lt;p&gt;The current one is shorter, because there&#39;s no Node to install. It downloads one binary, checks the site, builds it and deploys:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;static.yml&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Simple workflow for deploying static content to GitHub Pages
name: Deploy static content to Pages

on:
  # Runs on pushes targeting the default branch
  push:
    branches: [&quot;main&quot;]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
  contents: read
  pages: write
  id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
  group: &quot;pages&quot;
  cancel-in-progress: false

env:
  # Pin the generator so a build is reproducible; bump to upgrade.
  STATICO_VERSION: v0.1.0
  SITE_URL: https://adwebdev.xyz

jobs:
  # Single deploy job since we&#39;re just deploying
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Pages
        uses: actions/configure-pages@v4

      # Statico fetches standalone Tailwind and esbuild binaries on first use.
      # Caching them keeps every run after the first one offline and fast.
      - name: Cache Statico toolchain
        uses: actions/cache@v4
        with:
          path: ~/.cache/statico
          key: statico-tools-${{ env.STATICO_VERSION }}

      - name: Install Statico
        run: |
          curl -fsSL &quot;https://github.com/adrianodias8/statico/releases/download/${STATICO_VERSION}/statico-x86_64-unknown-linux-musl.tar.gz&quot; \
            | sudo tar xz -C /usr/local/bin statico
          statico --version

      # Fails the build on broken links, missing anchors and unresolved
      # placeholders. Drop this step if you&#39;d rather deploy regardless.
      - name: Check
        run: statico check

      - name: Build
        run: statico build &quot;$SITE_URL&quot;

      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: &quot;./_site/&quot;

      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The whole thing takes about 20 seconds, most of which is GitHub spinning up the runner.&lt;/p&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;Enable GitHub Pages in Your Repository:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Go to your repository&#39;s Settings tab.&lt;/p&gt;
&lt;p&gt;Select Pages from the sidebar.&lt;/p&gt;
&lt;p&gt;Under Build and deployment, set the source to GitHub Actions. GitHub will use your configured workflow.&lt;/p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;(Optional) Add a Custom Domain:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To make your website more professional, you can use a custom domain:&lt;/p&gt;
&lt;p&gt;Purchase your domain or use one you already own.&lt;/p&gt;
&lt;p&gt;Follow the official GitHub documentation to configure your custom domain.&lt;/p&gt;
&lt;h2 id=&quot;-in-conclusion-or-just-getting-started&quot;&gt;🎉 In Conclusion (or Just Getting Started?)&lt;/h2&gt;
&lt;p&gt;Remember, simplicity doesn&#39;t mean sacrificing style or functionality. Sometimes, stripping things down to basics is exactly what&#39;s needed to get moving and for me was how I ended up with my blog running.&lt;/p&gt;
&lt;p&gt;Sure, this blog post might just be a test run, but it&#39;s my test run. And I&#39;m really happy with it. Though I&#39;ll admit &quot;I just want a simple blog&quot; turning into &quot;I wrote my own static site generator&quot; is a very on-brand way for this to have gone.&lt;/p&gt;
&lt;p&gt;Stay tuned for more rambling!&lt;/p&gt;
</content>
  </entry>
</feed>
