jason chee
what I use for my personal website
Last updated 05/28/2026
I host my websites and web applications on my own server. Doing this has helped me better understand deployment, servers, databases, caching, and how the web works beyond just writing application code. This website uses the following technologies:
- postgresql - stores content, templates, and render functions
- sinatra - a small Ruby DSL for handling web routes
- ruby - scripts, imports, and application glue
- activerecord - database migrations and Ruby object mapping
- mustache - simple template placeholders
- redcarpet - converts markdown into HTML
- kamal 2 - deploys the app as containers
- hetzner - VPS hosting
- bunny - CDN and media storage
The publishing workflow:
I create file and write in markdown.
⇣
I preview it locally on the site.
⇣
I run a ruby script that reads the file, parses the frontmatter, converts the markdown to HTML, and saves it to postgresql.
⇣
The page points to a template key, such as page, article, or now.
⇣
When someone visits a URL, sinatra calls a postgresql function.
⇣
Postgresql combines the saved content with the matching template and returns the HTML response.
⇣
Sinatra sends that HTML to the browser.
Questions? Opinions? Feel free to contact me to discuss.