Hello world!


This is the first post on **johnch.ai**. The site is built with raw HTML, CSS, and JavaScript. A simple express backend supports a single-user login for a web markdown editor. The design choices that went into this site largely center around being simple to use as a writing experience, without cross-platform folder syncing being an issue. The site also features a graph visualization of related articles, which I thought was a cool feature from Obsidian.

Building a site generator


This site was kind of an exercise in vibecoding, with the entire framework being generated by Claude code. Despite initial thoughts about making a simple portfolio site, I thought it more apt to actually make a site template that in theory anyone could fork for their personal site. The process was actually surprisingly involved, with a lot of prompting required to avoid Claude generating redundant code snippets or importing unnecessary frameworks. I'm not a web developer and am far more comfortable using as stripped down of a structure as possible.

Site content as far as articles go live on a private git repo, which is directly updated whenever the site is rebuilt. The repo serves as a simple backup and changelog of the text content. Image content is directly stored on server pending a more permanent backup solution.

The template and docker container are available for anyone interested. The theme config file, site favicons, site homepage and more are all editable on the admin panel without direct code access, which makes the initial docker and git repo setup the only technical step required. You may find the repository here

Deployment


This site is self-hosted on a small physical server. This is my first time using Docker for deploying something that I made myself, and to be honest I still don't understand most of how it works. This is also my first time using Github Actions for any project.

What's next


I'll be taking the next few weeks to write up some of my past projects as a showcase as well as occasionally publishing my thoughts on any content that may come to mind. Possible directions include hardware, robotics, manufacturing and AI. The occasional random topic rambling may come up from time to time. Do [reach out](https://johnch.ai/about) if you've any thoughts on anything I've written or would like to connect!