<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Trevor Browning</title>
    <description>The latest articles on Forem by Trevor Browning (@trevorbrowning).</description>
    <link>https://forem.com/trevorbrowning</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2978882%2Fa59ab23b-de15-45c4-8e53-6415b021e0fc.jpeg</url>
      <title>Forem: Trevor Browning</title>
      <link>https://forem.com/trevorbrowning</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/trevorbrowning"/>
    <language>en</language>
    <item>
      <title>The Bug Was One Character Long: Lessons From My First Full Stack App</title>
      <dc:creator>Trevor Browning</dc:creator>
      <pubDate>Fri, 27 Jun 2025 20:47:26 +0000</pubDate>
      <link>https://forem.com/trevorbrowning/the-bug-was-one-character-long-lessons-from-my-first-full-stack-app-439b</link>
      <guid>https://forem.com/trevorbrowning/the-bug-was-one-character-long-lessons-from-my-first-full-stack-app-439b</guid>
      <description>&lt;h2&gt;
  
  
  The Initial Climb
&lt;/h2&gt;

&lt;p&gt;Recently, as part of the upcoming freeCodeCamp Hackathon, my assigned team decided on the stack it would use: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;Vue  &lt;br&gt;
Express  &lt;br&gt;
Typescript&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;At that point, I had only ever worked with basic HTML/CSS/JS. I had just recently learned how to set up Firebase, using it for a Discord group project for a kanban-style board. &lt;a href="https://www.github.com/trevorbrowning/dev-dashboard" rel="noopener noreferrer"&gt;Dev Dashboard&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At first, when looking up documentation and tutorials, I felt overwhelmed with how to properly handle Express, what went into securing an API, and how to properly run it. It took me a few hours of just going over everything from installation to usage. &lt;/p&gt;

&lt;p&gt;After a bit though, it started to click. Once I found out what goes into setting up a backend, it started to make a lot of sense. &lt;/p&gt;

&lt;p&gt;I worked on it for a few hours over the next few days, learning as I wrote new code — from hashing passwords to using &lt;code&gt;.env&lt;/code&gt; to store environment variables.&lt;/p&gt;

&lt;p&gt;Everything was going smoothly up to that point. I had the basic structure completed. I then had the new task of learning Vue. &lt;/p&gt;

&lt;p&gt;Like I previously mentioned, I had only had experience with HTML, so switching to a component-based language like Vue was a new challenge, but like with the backend, it started to click. I had a working login flow, a secure API, and a frontend that could talk to it. I had built a full-stack application, albeit very basic, from scratch. Flushed with success, I decided to add one last "simple" feature before calling it a night. It should have been just a quick change. Instead, it made me want to start over. &lt;/p&gt;




&lt;h2&gt;
  
  
  The Descent Into Config Hell
&lt;/h2&gt;

&lt;p&gt;At that moment, I was working on setting up the project routes and getting everything connected.&lt;br&gt;&lt;br&gt;
It should have worked perfectly fine, but something was wrong.&lt;br&gt;&lt;br&gt;
Error.&lt;br&gt;&lt;br&gt;
Only a simple error, the import was a bit off. No big deal, I fixed it. &lt;/p&gt;

&lt;p&gt;I tried testing the server and frontend. Errors everywhere.&lt;br&gt;&lt;br&gt;
It made no sense. Everything was working great. It had been live 10 minutes prior with no issues whatsoever. The error messages were no help. I was getting a wall of red text about things like &lt;code&gt;Cannot find module&lt;/code&gt; or &lt;code&gt;No overload matches this call...&lt;/code&gt;, pointing to lines of code that hadn't been touched since the last successful run. It felt like I was going insane. &lt;/p&gt;

&lt;p&gt;I tried using Google, no luck. I tried using ChatGPT to help me understand the error messages. All that did was run me in circles and suggest breaking 90% of my project by uninstalling dependencies and rebuilding the project with new imports. &lt;/p&gt;

&lt;p&gt;After about 3 hours, nothing worked.&lt;br&gt;&lt;br&gt;
I was at a standstill with this project I just wanted to complete — the project I had a soft deadline for before the Hackathon started at the beginning of next week. &lt;/p&gt;

&lt;p&gt;I decided to try one more fix. &lt;/p&gt;

&lt;p&gt;I recreated the entire project from the bottom.&lt;br&gt;&lt;br&gt;
Unfortunately, after another handful of hours, I received the exact same error message. &lt;/p&gt;

&lt;p&gt;I scanned every file, every folder. Everything looked correct (to me). &lt;/p&gt;

&lt;p&gt;On my last bit of patience before giving up, I decided to look at my previous Git commits, just to prove to myself that it had been working. &lt;/p&gt;

&lt;p&gt;I was scrolling through the file list, comparing it to my current project, not expecting to find anything. And then I saw it. A detail so small, so insignificant, that I had scanned past it a hundred (if not more) times. &lt;/p&gt;

&lt;p&gt;A single character that had brought my entire project to a grinding halt.&lt;/p&gt;

&lt;p&gt;In my project folder, the file was named &lt;code&gt;ts.config.json&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
I was exhausted, irritated, but making that one fix to correct it to &lt;code&gt;tsconfig.json&lt;/code&gt; changed all of that. I felt the stress leave immediately. I was more annoyed that I had missed it so many times. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm start | npm run dev&lt;/code&gt; — the server and frontend go live. No errors in sight. It was such a relieving moment.  &lt;/p&gt;




&lt;h2&gt;
  
  
  The Payoff
&lt;/h2&gt;

&lt;p&gt;I’m not an experienced developer. I’m still very much at the beginning stages, but it was such a satisfying moment once I fixed that simple mistake. I was so close to completely scrapping the project and working on something more my level. Thankfully, I kept persisting. I kept trying to find the root cause of why it was happening. &lt;/p&gt;

&lt;p&gt;It only took another 6 hours or so to completely finish the first version of the project. I’ve never felt so proud to complete a project of this scale to date. I felt… accomplished. It’s only a simple full-stack that isn’t going to change the world, but I created it, I fixed it — it’s mine. I have this newfound confidence which will only help me grow as a developer. &lt;/p&gt;

&lt;p&gt;Always stay persistent. Keep looking for that typo.&lt;br&gt;&lt;br&gt;
It &lt;em&gt;will&lt;/em&gt; be worth it.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.github.com/trevorbrowning/glas-suile-api" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://www.glas-suile.vercel.app" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>fullstack</category>
    </item>
    <item>
      <title>DevLog #2: When APIs Finally Clicked</title>
      <dc:creator>Trevor Browning</dc:creator>
      <pubDate>Sun, 30 Mar 2025 15:02:23 +0000</pubDate>
      <link>https://forem.com/trevorbrowning/devlog-2-when-apis-finally-clicked-443l</link>
      <guid>https://forem.com/trevorbrowning/devlog-2-when-apis-finally-clicked-443l</guid>
      <description>&lt;p&gt;A week ago, just hearing the word “API” made me nervous.&lt;/p&gt;

&lt;p&gt;I’d seen them everywhere—every tutorial, every tool—but I never fully understood how they worked. I tried learning about them a couple of years ago, and again at the start of this current 14-day Python challenge. Both times, I hit a wall. JSON? Endpoints? Headers? I’d get overwhelmed and move on.&lt;/p&gt;

&lt;p&gt;But then, halfway through this challenge, something finally clicked.&lt;/p&gt;




&lt;h3&gt;
  
  
  They’re Just Dictionaries.
&lt;/h3&gt;

&lt;p&gt;Seriously. That was the moment.&lt;/p&gt;

&lt;p&gt;Once I realized that most API responses are basically just dictionaries, it all made sense. Suddenly, I was able to break down the structure of a JSON response and start pulling data like I knew what I was doing. It wasn’t perfect—but it was progress.&lt;/p&gt;

&lt;p&gt;My first working API call was a simple "Quote of the Day" app. It returned this quote:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Success is about creating value." – Candice Carpenter&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That quote hit harder than I expected—both in life and in code.&lt;/p&gt;




&lt;h3&gt;
  
  
  From Confusion to Clarity
&lt;/h3&gt;

&lt;p&gt;Learning APIs wasn’t about brute-forcing documentation or memorizing syntax. It was about learning how to experiment. To try. To break things and fix them slowly.&lt;/p&gt;

&lt;p&gt;Before this journey, I’d quit projects as soon as they stopped working. A typo here, a misplaced line there, and I’d be off chasing a new idea. Now, I’ve learned to &lt;em&gt;breathe&lt;/em&gt;, read the error, and debug one step at a time.&lt;/p&gt;

&lt;p&gt;The key change? Committing to finish. Every single day. One project at a time.&lt;/p&gt;




&lt;h3&gt;
  
  
  Patterns, Not Snippets
&lt;/h3&gt;

&lt;p&gt;The repetition is starting to pay off.&lt;/p&gt;

&lt;p&gt;In Tkinter, I now understand how to structure a UI with frames, and how to mentally map layout changes to specific blocks of code. In Flask, I finally get what &lt;code&gt;@app.route("/")&lt;/code&gt; actually does—and it no longer scares me.&lt;/p&gt;

&lt;p&gt;I still reuse a few bits of setup code here and there, but I’m trying not to rely on snippets. The more I type it out myself, the more it sticks.&lt;/p&gt;




&lt;h3&gt;
  
  
  What’s Really Changed
&lt;/h3&gt;

&lt;p&gt;I don’t just &lt;em&gt;write&lt;/em&gt; code now—I &lt;em&gt;see&lt;/em&gt; it.&lt;/p&gt;

&lt;p&gt;I can scroll through my own files and understand what’s happening without getting lost. I can visualize how the app looks based on what part of the file I’m reading. That used to feel impossible.&lt;/p&gt;

&lt;p&gt;Most of all, I’ve stopped waiting to feel “ready.” I just build, break, fix, and repeat. I think about what I built yesterday, what I’m building today, and how I’ll tweak it tomorrow.&lt;/p&gt;

&lt;p&gt;And slowly, I’m starting to think like a builder.&lt;/p&gt;




&lt;h3&gt;
  
  
  What Comes Next
&lt;/h3&gt;

&lt;p&gt;There’s still a week left in this challenge, and I’ve got plenty more to learn. But already, this feels like a turning point—not just in skill, but in mindset.&lt;/p&gt;

&lt;p&gt;My goal isn’t to “finish the 14 days.”&lt;br&gt;&lt;br&gt;
My goal is to walk away with lasting skills and the confidence to build what I imagine.&lt;/p&gt;

&lt;p&gt;Thanks for reading. If you’re learning APIs, Python, or just trying to push through your own roadblocks—stick with it. You might be one small project away from your own breakthrough. If you’ve been down this path before and have any advice, I’d love to hear it. I’m always open to learning from others.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>learning</category>
      <category>api</category>
    </item>
    <item>
      <title>DevLog #1: Why I’m Building 14 Projects (and What Comes After)</title>
      <dc:creator>Trevor Browning</dc:creator>
      <pubDate>Fri, 28 Mar 2025 15:07:52 +0000</pubDate>
      <link>https://forem.com/trevorbrowning/devlog-1-why-im-building-14-projects-and-what-comes-after-3ngo</link>
      <guid>https://forem.com/trevorbrowning/devlog-1-why-im-building-14-projects-and-what-comes-after-3ngo</guid>
      <description>&lt;p&gt;Earlier this week, I gave myself a challenge: build 14 small Python projects in 14 days. The original plan was simple - stick to basic CLI apps, focus on core Python concepts, and keep the momentum going.&lt;/p&gt;

&lt;p&gt;But a few projects in, I decided to raise the bar.&lt;/p&gt;




&lt;p&gt;I’ve tried learning to code on and off for the past few years, using all kinds of resources — tutorials, videos, docs. But I kept getting stuck.&lt;/p&gt;

&lt;p&gt;Eventually, I realized the problem wasn’t knowledge...it was practice. So I decided to stop looping through the syntax and actually &lt;strong&gt;put it to use&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I created a spreadsheet and mapped out 14 days. Each day would be a new project. No filler. Just build something real in 3–4 hours and ship it. Simple tools. Simple structure. Complete focus.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why GUI?
&lt;/h2&gt;

&lt;p&gt;The original plan was all CLI. But once I got started, I realized that adding even simple GUIs made these projects feel more complete. More usable. More mine.&lt;/p&gt;

&lt;p&gt;So I leaned in.&lt;/p&gt;

&lt;p&gt;Even simple interface work forced me to learn things I hadn't touched before - layout systems, file handling, keyboard bindings, packaging apps as &lt;code&gt;.exe&lt;/code&gt; files, and how to keep code organized when projects grow.&lt;/p&gt;

&lt;p&gt;And I’ve learned &lt;strong&gt;way more in a few days&lt;/strong&gt; than I have in two years of just “learning to learn.”&lt;/p&gt;




&lt;h2&gt;
  
  
  What I’ve Built So Far
&lt;/h2&gt;

&lt;p&gt;Here are a few of the apps I’ve completed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; A file renamer with batch handling and live previews
&lt;/li&gt;
&lt;li&gt; A simple calculator with full keyboard support
&lt;/li&gt;
&lt;li&gt; A journaling app with autosave and focus mode
&lt;/li&gt;
&lt;li&gt; A time tracker for logging hours spent on this challenge
&lt;/li&gt;
&lt;li&gt; A password generator with strength options and CSV export
&lt;/li&gt;
&lt;li&gt; A to-do list app - my first ever GUI (TrevList)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each project taught me something new. They all started as small ideas, and now they're open-source, usable tools that I built from scratch.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I’m Doing This (Learning and DevLog)
&lt;/h2&gt;

&lt;p&gt;I've realized that posting your own work for the first time is kind of... anxiety-inducing. It’s easy to wonder if what you’re building is “good enough” or if anyone will take it seriously - especially when you're still figuring things out.&lt;/p&gt;

&lt;p&gt;But I’ve decided to share anyway. Because waiting until everything is polished usually means never sharing at all. And honestly, the rough edges are where the real learning happens.&lt;/p&gt;

&lt;p&gt;I'm not trying to build the next big thing. I’m not chasing perfection.&lt;/p&gt;

&lt;p&gt;I’m doing this to &lt;strong&gt;learn by finishing&lt;/strong&gt; - to take an idea, turn it into real code, and release it. Even when it’s messy. Especially when it’s messy.&lt;/p&gt;

&lt;p&gt;Before all this, I worked in film production for years. Now I'm starting to spend most of my time building tools and trying to learn to the best of my ability. This challenge has helped me think more like a developer - not just in syntax, but in structure, decision-making, and shipping work.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Comes Next
&lt;/h2&gt;

&lt;p&gt;I’ll be writing Dev Logs here every few days (or at least weekly), sharing what I’m building, what I’m learning, and where I’m stuck.&lt;/p&gt;

&lt;p&gt;No fluff. No polish. Just real notes from someone learning in public.&lt;/p&gt;

&lt;p&gt;If you’re learning Python too, or just trying to build more consistently...feel free to follow along or drop a comment. I’d love to connect.&lt;/p&gt;

&lt;p&gt;Thanks for reading. More soon.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>learning</category>
      <category>coding</category>
    </item>
  </channel>
</rss>
