I’ve been amateur programming since I was in middle school, but it wasn’t until college when I finally started learning programming languages instead of regurgitating documentation. I truly believed that I couldn’t write programs or learn programming until I reached college, and I was encouraged by my peers to wait. I just couldn’t understand it why it was so hard to make what I wanted, and why what I made never looked as good as what I saw online. learning programming languages instead of regurgitating documentation. I truly believed that I couldn’t write programs or learn programming until I reached college, and I was encouraged by my peers to wait. I just couldn’t understand it why it was so hard to make what I wanted, and why what I made never looked as good as what I saw online.
Intro to Programming
I started building websites on the Nintendo DSi. Yes, the handheld game console. See, my first exposure to online forums and social media was not on Facebook, or Myspace, or Reddit—it was on a forum site catered to users of the DSi called DSiAdventure, which ran on the wapka.mobi site builder before it went defunct.
There were many evolutions of these sites which allowed you to create a profile and edit that profile with JavaScript, HTML, and CSS. I learned programming just to customize my profile with custom elements and colors, and eventually went on to make my own version of one of those sites for a small group of friends.
In later years, I moved on to hosting Minecraft servers and learned how to configure server plugins that used JSON, YAML, and TOML files.
Finally, in college I was exposed to programming classes that included Python, Java, C++, and more. In labs where I configured servers, I learned more about Batch, PowerShell, and Bash. I began to understand object-oriented programming, and in 2020 I wrote a Discord bot using discord.py for my Python final project. I was extremely excited to learn and do more.
Early Struggles
In 2021, I set out to make a website. A portfolio site, with a home page, about page, contact form, and a blog. However, I didn’t know what Node.js was or what React or a React framework meant. I couldn’t understand JavaScript, much less TypeScript. I couldn’t tell you the difference between Next.js or Nuxt.js, or Vue or Angular. If I chose one over the other, I couldn’t tell you why. Maybe their landing page just looked better that day.
So I started building prototypes, paying for lessons, and constantly second-guessed myself. What looks good? What looks professional? Is this too much color? Sometimes I’d work on a prototype for a week, spending hours making the home page look great before implementing any logic and moving onto the next page, then scrapping the project from being burnt out. Once, I spent a couple of weeks trying to build a carousel, only to realize I had no idea how to populate the carousel with real data. But, I learned more every iteration.
Today
It’s the evening of February 9th, 2026, and I just deployed the first version of this website a few hours ago. Is it perfect? No, absolutely not, but it took me five days to build. Only five days, and I think that it has good bones. It’s certainly more than I thought I could achieve five years ago.
“I couldn’t tell you the difference between Next.js or Nuxt.js, or Vue or Angular. If I chose one over the other, I couldn’t tell you why. Maybe their landing page just looked better that day.”
I chose Next.js because it uses React, which has a wide variety of packages that have been maintained for a long time. It’s also natively supported by Vercel, so I can stick with one ecosystem with generous free tiers.
I am using TypeScript for strong type validation over JavaScript, lessening my chance of creating problems during development or future additions.
I’m using TailwindCSS because I enjoy their design system, and don’t want to create individual CSS classes for small things.
In my contact form, I’m using Resend because of their generous free tier, and Cloudflare Turnstile to reduce the occurrence of bots misusing the form.
I'm using TipTap and Supabase for making these posts; TipTap provides advanced editing capabilities, and Supabase works adequately for storing and retrieving media and posts.
Conclusion
For so long I didn’t believe that I could produce a project like this, but here it is. This is a victory for me, and I hope it inspires you to pick up any projects you left on the backburner. I hope you enjoyed reading this post, and I hope you enjoy browsing the rest of my site. If you have any suggestions, questions, or if you need to report a problem, please feel free to contact me.