Hello World
Authored 2024-08-24T00:00:00.000Z (modified 2024-09-11T00:00:00.000Z)
Est. time to read: 5.5 min
14746 views
Tags: [ "Blog" ]
An introduction to my blog site.
Welcome to my blog site!
Hey there, I'm Tanner Morgan. This site is a bit of a playground for me, so you'll probably notice some changes here and there as I experiment and try new things. I'll keep you in the loop through these posts, so stay tuned.
If you want to know more about me—what I do, my hobbies, etc.—you can check out my about page.
Why Start a Blog?
To be honest, I’m pretty new to this. But I started this blog for a few reasons:
- Sharing Knowledge: I want to dive into niche topics like PTC Creo automation using Python or Rust, deploying apps with NuxtHub on Cloudflare with a Supabase backend, and more. I’ve found a lot of value in blogs that solve unexpected problems or introduce new tech, so I figured, why not contribute?
- Helping Others: Sometimes I hit roadblocks with little to no resources online. My goal is to create guides that help others facing the same challenges.
- Fueling Creativity: I love building things—tools for my self-hosted setup, scripts for work, web apps—you name it. Having this blog lets me flex my creativity on a broader stage, get feedback, and keep leveling up.
My Tech Journey
Like I mentioned earlier, if you're curious about more details, check out my about page. For now, here's a bit about my path: I’m a full-time mechanical engineer working in the construction equipment rental industry, where I focus primarily on hardware. But in my spare time, I enjoy diving into software development. While I do some coding at work, it’s mostly for automating tasks and creating tools for my team. I'll talk more about that in future posts.
So why software? As a mechanical engineer, I embrace the "Jack of all trades, master of few" mentality. In my field, understanding how systems work—both mechanical and software-based—is crucial, especially in areas like factory automation. My first foray into this world came while I was working as a process engineer at ABB (now Hitachi Energy). I helped automate a system that converted CAD data into machine-readable formats for a laser/punch combo machine. Most of the automation was done in C# with help from a third-party integrator, and that project was my first exposure to desktop GUIs, SQLServer, and GCode. Though I wasn’t doing most of the programming, I had to understand enough of the code to debug issues and keep things running smoothly.
Later, I took things a step further and built a Python GUI app called "SigCobra" (because naming things is hard, and I love a good play on words). It used PyQt for the interface and read SQL tables asynchronously to give live updates. The name came from SigmaNEST, the software I was working with, and COBOL, the language of the legacy system we were replacing. This little project sparked a deep interest in software development that would lead me down all kinds of rabbit holes.
After that, at my next job, I kept finding ways to automate tasks, and that’s when I really started thinking about the drawbacks of shipping desktop apps. Between installation hassles, updates, and cross-compiling headaches, I began exploring web development as a solution. I started with Flask since I already had Python experience and built my first web app—a Wordle clone. Learning by doing has always been my style, and that project was a lot of fun.
As I kept exploring, I stumbled upon Django and immediately got hooked. I loved how powerful it was for larger projects (which I’ll cover in future posts). But as I got deeper into Django, I realized I wanted a more modern feel. I tried Bootstrap for styling, and while it worked, something was still missing. That’s when I found HTMX, which let me add interactivity to my pages without going full JavaScript-heavy.
During this time, my daily commute—about an hour and a half—gave me plenty of opportunities to listen to web development podcasts. I started learning about reactive frameworks and single-page applications. That’s when I found Vue.js. It had a modern feature set and a shallow learning curve, making it a great fit for the next stage of my journey.
Experimenting with Modern Tech Stacks
I started using Vue to build apps. Initially, I kept things simple with vanilla Vue3 and basic CSS styling. Then, I discovered Quasar, a cross-platform framework and component library for building web apps. Quasar’s components follow Material Design principles, which gave my apps a polished look. The development experience was great, and the CLI was super handy.
However, I found the Material design styling a bit too opinionated for my taste. Customizing certain elements—like setting a standard border radius on all buttons—was more challenging than I expected. I had to either dig through the browser's devtools to find the right CSS class or go directly to Quasar’s GitHub repo to figure it out and override it in my own CSS (or SCSS, which I was experimenting with at the time).
Eventually, I went back on the hunt for a new library. I stuck with Vue because I had become comfortable with it and didn’t see the need to switch to something else, like React (though I did consider it, especially since it’s widely used, including by my own company). Instead, I focused on finding a component library that offered more flexibility.
That’s when I found PrimeVue. It’s an open-source component library for Vue with multiple themes out of the box. The big win for me, though, was how customizable it is using Tailwind CSS and a design token system (which allows you to define reusable design properties like colors and spacing). I’ve been using PrimeVue in many of my projects, and in future posts, I’ll dive deeper into how I’ve tailored it to fit my needs.
Finally, there’s Nuxt. What drew me to Nuxt is its top-tier developer experience. Features like auto-routing and auto-imports make writing new pages and components a breeze. Its vast module system also makes it an excellent choice for integrating with services like Supabase. Plus, Nuxt’s offerings like NuxtHub and NuxtContent are what I’ve used to build and host this very site. I’ll cover more about my experience with Nuxt in future posts.
Upcoming Posts
In my next post, I’ll break down how this site is built, how it’s deployed, and my future plans for it. After that, I have a few other ideas lined up:
- A deep dive into the tech stack I use at work
- Building a landing page for the store my wife and I run.
- Automating PTC Creo with Python—yes, you can!
- Dev tips for Windows users.
- My self-hosting setup and the tools I rely on.
- And much more!
Reach Out
In the future, I plan to have a proper contact form, post comments, and more. But for now, if you want to reach out or have questions/concerns, come find me on my GitHub, or at Linkedin. I'm always happy to chat, or collaborate on interesting projects!
More Coming Soon™!
That's it for now! Happy coding!
