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