Thursday, June 26, 2025

Building Forward: Infrastructure, Identity, and Hard Lessons (Phase 2)

 

Date: June 26, 2025
Author: Ronald Zinn


In Phase 1 of building ZinnWorks, I laid the foundation — defining the vision, shaping the brand, and designing the logo with a lot of AI assistance and iteration. Phase 2 has been all about taking those ideas and putting them into motion: building infrastructure, establishing an online presence, and learning the hard way what I didn’t know I didn’t know.


🚧 The Build Begins

Once the core identity was in place, I focused on creating the ZinnWorks website. I started with a static HTML+CSS version to get a functional landing page up quickly. Hosting it on Netlify with continuous deployment from GitHub was smooth — a major win for getting a live presence fast.

But then came the desire to embed our freshly minted logo — which introduced the next leap: React and Next.js.


⚛️ Transitioning to React + Next.js (App Router)

I wanted to scale the site for future functionality, so we transitioned to a modern React-based framework using Next.js 15 with App Router. That turned out to be a bigger shift than expected.

At first, ChatGPT provided code for embedding the logo using React components, but I didn’t yet have a React setup — I was still working in static HTML. I spent time troubleshooting, trying to make sense of the React code until we stepped back and identified the gap.

Once the framework was upgraded and the app structured using /app routing, deployment issues cropped up — particularly 404 errors on Netlify. These were eventually resolved by correcting the netlify.toml configuration and making sure output folders matched Netlify’s expectations.


🧱 Infrastructure Snags & Learnings

There were a few other pain points along the way:

  1. GitHub Push Errors – I ran into file size issues pushing to GitHub. Turns out large binary files from node_modules were being tracked, exceeding GitHub’s limits. The problem? I didn’t have a .gitignore file set up. This was a perfect example of how easy it is to make big mistakes when you're not aware of the tooling conventions.

  2. Contact Form Fails – While the site looked great, I later discovered that the contact form wasn’t actually sending emails. This has now been logged for resolution in Phase 3.

  3. Tooling Setup – I registered zinnworks.com for the business and ronzinn.com for the blog. I also created a professional email (hello@zinnworks.com) through Zoho Mail, completing the minimum setup for client-facing communication.


📣 Going Public

With the foundation live, I started publishing updates:

  • Blog at ronzinn.com — where I’m documenting every step of the journey, including this post.

  • LinkedIn — including visual content like the logo evolution carousel and shorter updates for broader engagement.

These updates aren’t just about marketing — they’re about accountability and building in public.


💡 Lessons from the Field

  • Framework assumptions matter. Don’t copy/paste code without knowing the context it was built for.

  • Default setups (like .gitignore) exist for a reason. If you’re missing them, your life will be harder.

  • Public doesn’t mean perfect. Going live with some flaws is better than waiting indefinitely for perfection.


What’s Next (Phase 3 Preview)

Phase 3 will focus on:

  • Fixing the contact form and adding basic functionality to internal tools

  • Creating MVP demos for our first AI services

  • Adding internal pages and content for ZinnWorks’ core offerings


Thanks again for following along. If you’re building something too — or thinking about it — I’d love to connect. Let’s learn in the open and make AI work for real.

— Ronald Zinn
Founder, ZinnWorks

Building Forward: Infrastructure, Identity, and Hard Lessons (Phase 2)

  Date: June 26, 2025 Author: Ronald Zinn In Phase 1 of building ZinnWorks, I laid the foundation — defining the vision, shaping the br...