<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Maferep</title>
  <subtitle></subtitle>
  <link href="https://ceets-deets.vip/feed.xml" rel="self"/>
  <link href="https://ceets-deets.vip/"/>
  
    <updated>2026-05-19T00:00:00Z</updated>
  
  <id>https://ceets-deets.vip</id>
  <author>
    <name>Maria Pont</name>
    <email>mf.pont.tv@gmail.com</email>
  </author>
  
    
    <entry>
      <title>Setting up an 11ty blog with a comments section and newsletter using Caddy</title>
      <link href="https://ceets-deets.vip/posts/setting-up-an-11ty-blog-with-a-comments-section-and-newsletter-using-caddy/"/>
      <updated>2026-05-19T00:00:00Z</updated>
      <id>https://ceets-deets.vip/posts/setting-up-an-11ty-blog-with-a-comments-section-and-newsletter-using-caddy/</id>
      <content type="html">
        <![CDATA[
      <p>I've been looking at 11ty as a powerful static site generator solution for my blog. I originally planned to use a basic template from those offered in the website, like the lovely Eleventy Duo, but I quickly realized I wanted a simpler and more straightforward stack than what was available.</p>
<p>I also decided I wanted to imitate a news-website look, allowing my users to leave comments and sign up to a newsletter. I would have loved to self host the entire mailing solution, but it's well understood how difficult it is to maintain a self-hosted e-mail node that the mainstream providers trust. I'd need an external provider, but I also wanted to keep the newsletter relatively service-agnostic so I could customize it in the future.</p>
<h2>Part I: 11ty</h2>
<p>After having spent way too many hours wrestling with Hugo and Jekyll, I was a little wary of trying out a third generator solution. However, by itself, 11ty is beautifully simple.</p>
<p>That said, all of the templates I found online relied heavily on plugins and automations that I just didn't need. This is a very barebones blog, even if it grows to 70x the size I doubt I will need a full SASS solution when modern CSS is as powerful as it is. I've allowed myself some less-than-ideal inlining here and there in exchange for not adding an additional compilation step to the website build. Similarly, I don't need to minify this code.</p>
<p>As such, I started with Eleventy Duo as a base, which did not include SASS but did utilize a lot of preprocessing machinery that just wasn't necessary for my current scope. There was also Mermaid, a UML graphical code utility that I also had no use for. The cleanup also helped me to get rid of 11ty configuration functions that are <a href="https://www.11ty.dev/docs/data-deep-merge/">now obsolete</a>, like DeepMerge. My modified version removes:</p>
<ul>
<li>Babel</li>
<li>autoprefixer</li>
<li>babel-loader</li>
<li>cssnano</li>
<li>mini-css-extract-plugin</li>
<li>postcss</li>
<li>webpack</li>
</ul>
<p>I might decide to re-implement some of the build process if I end up reusing this base for something more demanding than blog posts. The current simplified version does involve a lot of roundtrips for CSS that should be trimmed down.</p>
<p>After that, I got to work tweaking the styling a little, added default thumbnails to the posts, and set up a browser-friendly light/dark mode. I was left with a quite accessible mobile-friendly site, aided by Eleventy Duo using rem units already.</p>
<h2>Part II: Comments section</h2>
<p>The standard practice for comment sections on personal sites is setting up Disqus. I personally find them to be a distasteful advertising engine, and would much rather be responsible for my own comment moderation than hand it off to a third party ad site.</p>
<p>Remark42 is a wonderful little self-hosted solution that integrates with a ton of different identity providers, and allows you to just open the floodgates and let people comment anonymously. This is a risky move as bots may quickly flood your site with spam. However I decided to accept the risk; the underlying system was so simple I didn't feel worried about having to clear and lock comments down if I ever needed to. Their own demo website barely gets comment traffic given it's completely open to the internet, so I wasn't too worried about the maintenance burden.</p>
<p>I was already using my VPS for something else, so I decided this was a good time to finally figure out Caddy. It invisibly negotiates TLS encryption for you with Let's Encrypt, saving you the <a href="https://tom7.org/httpv/httpv.pdf">dubiously useful hassle</a> of fiddling with certificate negotiator utilities yourself in your VPS. Green padlock at all costs.</p>
<pre class="language-caddy"><code class="language-caddy">maferep.fiuba.dedyn.io {
        handle_path /remark42/* {
                reverse_proxy :42100
        }
        handle {
                file_server browse {
                        root /11ty/public
                }
        }
        respond "Not Found" 404
}</code></pre>
<p>Being self hosted, I could have styled the comments widget myself but I was happy with the default look (and beautiful lack of forced ad redirects).</p>
<h2>Part III: Newsletter</h2>
<p>The simplest solution to having a newsletter on your website is to sign up for a commercial service and use their built-in forms. It's probably what I should have done too, but I wasn't too happy with having to embed a commercial widget tied to a subscription service to my site. I settled on setting up a small golang server on my own VPS, which hooks up directly to the newsletter service's API. I can't emphasize enough that none of this is necessary. But it did make sense for me, as I was already using the VPS to set up an anonymous comment section on this site and the API itself was pretty simple.</p>
<p>At least it should come in handy if I do decide to change providers, and this way I have full control of the widget's aesthetics and functionality, minimizing the spyware I add to the site. I still wish to move to ButtonDown eventually, they claim to not <a href="https://en.wikipedia.org/wiki/Web_beacon">put trackers on their e-mail</a> by default and I would like to keep it that way.</p>
<h2>Conclusion</h2>
<p>The VPS aspects of this setup may seem scary and technical but they're completely optional. I'll try to publish my Eleventy Duo mod as soon as possible so you can give it a shot as well.</p>

    ]]>
      </content>
    </entry>
  
</feed>