<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>kbcd.net - Meta</title><link href="https://kbcd.net/" rel="alternate"/><link href="https://kbcd.net/feeds/meta.atom.xml" rel="self"/><id>https://kbcd.net/</id><updated>2026-05-30T00:00:00+02:00</updated><entry><title>Adding Remark42 for comments functionality</title><link href="https://kbcd.net/articles/adding-remark42-comments-functionality" rel="alternate"/><published>2026-05-30T00:00:00+02:00</published><updated>2026-05-30T00:00:00+02:00</updated><author><name>Daniel Kubica</name></author><id>tag:kbcd.net,2026-05-30:/articles/adding-remark42-comments-functionality</id><summary type="html">&lt;p&gt;Why I added comments and configuring Remark42.&lt;/p&gt;</summary><content type="html">&lt;p&gt;I was thinking about adding a comments functionality to the site for some time already, but I wasn't really sure if it was even possible on a static website, and how to combine it with &lt;a href="https://getpelican.com/"&gt;Pelican&lt;/a&gt;. Well, it turns out, it's actually not that difficult at all!&lt;/p&gt;
&lt;p&gt;I found &lt;a href="https://remark42.com/"&gt;Remark42&lt;/a&gt;. A privacy-focused lightweight commenting engine. The recommended way is to spin up a docker container for the backend server. This works perfectly for my setup. On the "frontend" (in my case Jinja2 templates, which Pelican uses to generate its layout), you paste a small JS snippet to your base template and another HTML snippet to your articles' snippet where Remark42 will insert itself when the page loads.&lt;/p&gt;
&lt;p&gt;Now, to the part which wasn't so obvious - &lt;em&gt;theming the thing&lt;/em&gt;. By default, Remark42 has only two themes, light, and dark and to my knowledge no "easy/direct" way to define custom colors. The default colors are nice and I believe work great for simple dark/light websites, but if you have a custom theme or use different colors on your website, it just doesn't fit in...&lt;/p&gt;
&lt;p&gt;So how did I fix this? I have to admit, I vibe-coded this a bit, or at least let Gemini figure the colors for me. In the project's source tree there is the directory &lt;code&gt;/frontend/apps/remark42/app/styles/&lt;/code&gt; with two files: &lt;code&gt;custom-properties.css&lt;/code&gt; and &lt;code&gt;global.css&lt;/code&gt;. In the &lt;code&gt;custom-properties.css&lt;/code&gt; there are custom variables which (as I understand) influence colors of the various elements of the UI. The thing is, there aren't any comments which would say "--color8 is the background color of the form, and --color35 is for this etc." (Note: there are vars like --primary-color, --error-background, which are self-explanatory). Or maybe there are comments somewhere, I just haven't found them. Tell me if there are. &lt;/p&gt;
&lt;p&gt;What I did was, I took the &lt;code&gt;custom-properties.css&lt;/code&gt; file, gave the contents to Gemini and also gave it my site's css color variables and told it to modify the file so it fits with my colors.&lt;/p&gt;
&lt;p&gt;After that I cloned the repo, modified the &lt;code&gt;custom-properties.css&lt;/code&gt; file and built the "custom themed" docker image. And honestly, I think it did a pretty good job. So if anyone is trying to theme Remark, try this "vibe-coded remark colors" approach.&lt;/p&gt;
&lt;p&gt;Anyhow... Why did I add comments in the first place? Well, I thought that if someone found &lt;em&gt;something&lt;/em&gt; useful on this website, but had questions, or maybe wanted to say "Hi!" or "Thanks!" or "You &amp;lt;insert bad word&amp;gt;", then it would be nice to have that option.&lt;/p&gt;
&lt;p&gt;For any questions, you can ask them in the comments now. Yay! 😎&lt;/p&gt;
&lt;p&gt;(PS: I haven't set up notifications for the comments, so I apologize in advance if I don't answer)&lt;/p&gt;</content><category term="Meta"/><category term="self-hosting"/></entry><entry><title>Site update! Now using Pelican SSG</title><link href="https://kbcd.net/articles/updating-the-site-using-pelican-ssg" rel="alternate"/><published>2026-04-02T00:00:00+02:00</published><updated>2026-04-02T00:00:00+02:00</updated><author><name>Daniel Kubica</name></author><id>tag:kbcd.net,2026-04-02:/articles/updating-the-site-using-pelican-ssg</id><summary type="html">&lt;p&gt;How I created the site initially and now with Pelican.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Initially I created the site with python's &lt;a href="https://flask.palletsprojects.com/en/stable/"&gt;Flask&lt;/a&gt; framework, a package called &lt;a href="https://frozen-flask.readthedocs.io/en/stable/index.html"&gt;Frozen Flask&lt;/a&gt; and the &lt;a href="https://python-markdown.github.io/"&gt;python-markdown&lt;/a&gt; package. Python-markdown created the article html files, Flask created the routes and served the template pages, and Frozen Flask turned those server side generated pages into a set of static html files. I basically created a small static site generator of my own. This was a fun little thing, but for a more complex "blog" or "personal site" I decided I should switch to a more "battle tested" pre-made tool for this. &lt;/p&gt;
&lt;p&gt;I still wanted control over the website, like what the templates would look like, the styling and some functionality. And so, I found &lt;a href="https://getpelican.com/"&gt;Pelican&lt;/a&gt;, which is one of multiple popular python static site generators. It supports Markdown and ReStructuredText, Jija2 templates for the website layout/themes, generating RSS/Atom feeds and many more functionalities I haven't yet explored, like writing your own plugins.&lt;/p&gt;
&lt;p&gt;The documentation is pretty nice, and even I was able to make sense of it. It took me a few hours tinkering and I was able to port my existing site layout/Jinja2 templates to it. My theme definitely doesn't support all the options which a dedicated Pelican theme would need, but for my purposes and settings it works.&lt;/p&gt;
&lt;p&gt;So now, with this new site engine, the website has RSS/Atom feeds. I can add tags to each article, set the author(s) (if someone else wrote the article), generate new category on the fly (although in my theme, the categories have images and I have to add those manually), mark article as a draft, hide an article, set a language for the article and have it display other languages in which the article is written in, and many more options I am sure I am not even aware of right now.&lt;/p&gt;
&lt;p&gt;Finally, I'd like to say big thanks to all the contributors of Pelican for creating this awesome tool.&lt;/p&gt;</content><category term="Meta"/><category term="pelican"/><category term="webdev"/></entry><entry><title>First post! Let's see how this goes</title><link href="https://kbcd.net/articles/first-post" rel="alternate"/><published>2026-02-10T00:00:00+01:00</published><updated>2026-04-02T00:00:00+02:00</updated><author><name>Daniel Kubica</name></author><id>tag:kbcd.net,2026-02-10:/articles/first-post</id><summary type="html">&lt;p&gt;Some thoughts, and a welcome message.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hello people of the Internet! I don't really know what the first post on a personal website should be about but here we go. I have finally managed to put together some html and css to create this "first draft" of the website. As I write in the &lt;a href="https://kbcd.net/pages/about"&gt;about&lt;/a&gt; page I created the site because I find it really cool of people having their own little personal islands, where their own creativity can shine and the decentralization/independence of it. &lt;/p&gt;
&lt;p&gt;I also wanted to learn more about html, css, javascript (although this site doesn't contain any, yet) and the web as a whole. Another thing I wanted to learn about was the python Flask framework (at least the basics), &lt;s&gt;with which this website is created and then converted into a static set of html files&lt;/s&gt; (Now uses &lt;a href="https://getpelican.com/"&gt;Pelican&lt;/a&gt; SSG). I might write about this in more detail in a future post.  &lt;/p&gt;
&lt;p&gt;I think that's all for now. Don't want to make an essay out of this.&lt;/p&gt;
&lt;p&gt;See ya later.&lt;/p&gt;</content><category term="Meta"/></entry></feed>