Hey! You found the blog part of the website. This is where I'll be documenting my finds and interests in this tech-y part of my life.
This website is a work of love. Most personal sites today are mostly sterile templates (not saying this isn't one) but I really want to make this much more sentimental than just a landing page for people to get to know what I do. Why work of love you ask?
This website is powered by my favorite things: SvelteKit my comfort framework, TailwindCSS my crutch, and Cloudflare my dearly beloved.
Why SvelteKit?
The site is built with SvelteKit. I chose Svelte because it stays out of the way. It allows for that snappy, "app-like" navigation while keeping the bundle size tiny. Every transition between the blog and home is handled via client-side routing, making it feel seamless. The UI feels incredibly lightweight (at least on my end :P) Also, Svelte is my first framework!
(It's Laravel actually, but we don't talk about that. The lioness doesn't concern herself with the PHP language)
Every transition is "SPA-like" (Single Page Application). When you click a blog post, SvelteKit fetches only the data needed for that post, and the browser updates without a full page reload. Crazy stuff, huh :0
The CMS
Instead of using a generic CMS like WordPress or Sanity, I built a custom Admin Dashboard from the ground up. I know... I know I already have a Medium account. But I think it's best to differentiate personal and whatever realm this is. In here I want to talk about my passions, my findings, and my interests.
So... this is how I made my own CMS:
My Pride: Cloudflare D1
This is where things get interesting. Mainly because I love Cloudflare so much for being so helpful throughout my entire learning process. I kid you not... I've been heavily abusing Cloudflare for years and never have they ever billed me a single cent! Not even joking. I love Cloudflare!!!!!!!!
Okay. Most SvelteKit blogs use import.meta.glob to read files from a folder. That's what I used to do. However, on serverless platforms like Cloudflare, the filesystem is read-only.
My Joy: Cloudflare R2
Storing images in a database is a recipe for disaster, and storing them in the static/ folder requires a new git push every time I find a cool picture for my blog post's thumbnail. That's what I used to do for my old blog. Just manually pushing new .md file every time..... yup...
My Dearly Beloved: Cloudflare Pages
The entire site is deployed via Cloudflare Pages. Everything I've ever built myself is deployed via Cloudflare Pages (well... I used Vercel once or twice). I kid you not, I have successfully convinced my new workplace to migrate one of their projects to Cloudflare. I love it so much I can't even imagine using anything else.
So, with the three Cloudflare services, I bound them together with this thing called a Wrangler to make sure the code knows exactly which production resources to talk to.
And that's about it for the stack ❤️ Thank you!