For a long time, our web presence felt like a patchwork of ideas—enough to point people somewhere, but not enough to feel like us. I wanted a single place that matched how we actually work: building games and tools, selling assets and experiences where it makes sense, and staying reachable when something breaks or a question comes up.

This post is the story of that rebuild—not a feature list for its own sake, but the experience I was aiming for, and what changed for you along the way.

Why redesign now

Fantasy Forge Studio sits at an awkward intersection. We are a creative studio, a small shop, and sometimes a storefront. Visitors might land looking for a game, a Blender file, a blog update, or a way to ask for help. The old setup did not always make those paths obvious.

I started from a simple question: if someone trusts us enough to sign in, pay, or report a bug, does the site earn that trust? That pushed the redesign toward clarity, account-based flows, and production discipline—not just a prettier homepage.

What the new site is built to do

One front door

The new site is organized around a few clear front doors:

  • Store — browse what we sell, understand what you are buying, and check out when you are ready.
  • Blog — studio updates like this one, written for humans rather than algorithms.
  • About and Contact — who we are, how to reach us, and where support lives.

I removed clutter where it duplicated those paths. Support used to sit in the main navigation and under Contact; now guided support is easy to find on Contact Us, with a footer shortcut for people who already know what they want.

Accounts that mean something

Sign-in is not decorative. An account ties together:

  • Your profile — the basics we need to recognize you across visits.
  • Your purchases — so paid products are not “lost in email” after checkout.
  • Legal acceptance — new sign-ups see our Terms and Privacy up front, because I would rather be explicit than surprising.

If you buy something that includes a downloadable deliverable, the site is built so access is gated to your account, not a public link anyone could pass around. That was a deliberate security and fairness choice.

A store that respects both sides

On the studio side, I needed to publish products, attach real files for paid listings, and keep drafts until everything is ready. On the customer side, I needed checkout to feel familiar and receipts to match the email on the account.

Stripe handles payments; our backend records entitlements in Firestore so “My purchases” and download flows can be enforced server-side. I am still in test mode on some environments while production finishes coming online—but the architecture is the same path I intend to run in production.

Support without pretending we are always online

I did not want a chat widget that implies a live team 24/7. Instead, guided support walks you through triage: what kind of issue, what to include, when to open a private ticket, when email is better for billing or account details.

Bug reports go to our team privately. Public GitHub is still there for collaboration-style feedback where that fits—but the default story is: Contact Us is the hub.

The experience I cared about most

For players and customers

  • Fewer dead ends. Login, checkout, profile, and downloads are connected—not five separate mini-sites.
  • Honest labeling. Free vs paid, drafts vs live listings, and support that says it is guided—not a live agent.
  • Mobile-friendly navigation with a menu that does not hide the basics.

For me running the studio

  • Admin tools behind authentication, including product and blog management.
  • Separate development and production Firebase projects so experiments do not touch live customer data.
  • Infrastructure I can reproduce: App Hosting from the repo, secrets in Secret Manager, Firestore and Storage rules deployed on purpose—not hope.

I am not claiming perfect security because no one gets that for free. I am claiming I thought about it: admin claims instead of “anyone signed in is admin,” private deliverable storage, server-side download URLs, and production keys kept out of the codebase.

Behind the curtain (lightly)

Technically, the site is a Next.js application on Firebase App Hosting, with Firestore for content and entitlements and Firebase Storage for product media and deliverables. That stack lets me ship from Git, run a real prod environment, and keep dev/test separate.

The unglamorous work—fixing config JSON in secrets, granting admin access on a fresh prod project, waiting on DNS—matters as much as the hero image. A redesign is not done when it looks good locally; it is done when prod sign-in, admin, and rules behave the same way every time.

What is next

While custom domain DNS finishes propagating, the production site is already reachable on its hosted URL. I will keep hardening: live Stripe when we are ready, more products in the store, and posts here when there is something worth saying.

If you are reading this on the new blog: welcome. If you helped test along the way—thank you. This house is meant to grow with the studio, not hold it back.

— FantasyForge Studio