This is my personal portfolio and technical journal. When building this, my main goal was to keep things as simple and straightforward as possible. I didn't want to pour excessive effort or over-engineer things just to create a portfolio site. I prefer cutting unnecessary abstractions and sticking to core web fundamentals.
Why Deno & Fresh?
I chose to build this on Deno and Fresh 2.0 for two simple reasons: it looked simple to use, and I wanted to try something new.
It matches my goal of keeping things straightforward. Fresh gives me a "Static-First" rendering strategy, meaning the majority of the HTML is rendered on the server, shipping zero JavaScript to the client by default. Interactive pieces (like the dark mode toggle) are isolated "Islands of Interactivity" that only load when needed.
Key Features
- Markdown-as-a-CMS: I write all my articles and projects in raw Markdown with YAML frontmatter. My custom rendering pipeline parses, sanitizes (against XSS), and injects SEO structured data automatically. No clunky databases or headless CMS setups.
- Strict Content Security Policy (CSP): I try to keep things secure. Inline scripts are banned in production, and all assets must originate from my own domain.
- Automated Validation: I wrote a custom Deno test suite that runs
recursively over all my markdown files to enforce accessibility (like
requiring
alttext on images) and SEO standards (preventing skipped heading levels). It catches my mistakes before they hit production. - Sub-100ms Performance: Deno's fast runtime plus no client-side hydration gives me good Lighthouse scores without doing anything special.

