Mythical Odyssey is an idle-battler mobile game developed by a company that I worked at in 2025.
At the time, the game had just been released, and the company wanted to bypass in-app purchase fees. As the web frontend engineer, I was tasked to build a web store for players to purchase in-game items.
Defining requirements
To start off, I asked, “What is the happy path of the web store?” I then mapped it out as a flowchart to visualize the primary use case.
From the happy path, I identified two core flows: the login flow and the purchase flow. With these key features, I drilled deeper into the web store’s functional requirements.
Functional requirements
- Player can view all products
- Player can view product information
- Player can view terms of purchase
- Player can switch between 17 different locales, covering
- 12 regions
- 4 languages
- Player can sign in to their in-game character, involving
- Email or third-party account login
- In-game character selection
- Player can switch to another character after account login
- Player can sign out of their account
- Player can order a product for a character
- Player can view the status of an order
- Player can pay for an order through the PayerMax portal
- Player can view past orders for a character
- Player can filter past orders by date range
- Admin can configure store content easily
Next, I asked, “What are some nice-to-haves?” and “What other aspects should we consider?” These questions helped steer the conversation toward the web store’s non-functional requirements.
Non-functional requirements
- Strong SEO and web performance
- Responsive and mobile-first interface
- Smooth and user-friendly payment flow
- Privacy and security, including
- Not leaking player credentials
- Not exposing the backend URL
After defining the requirements of the web store, I began thinking about how to design a user interface to support these goals.
Shaping the UI
To get a better understanding of existing products in this space, I conducted some market research, and found inspiration from the web stores of Journey Renewed and AFK Journey.
I sketched a quick low-fidelity prototype to test ideas and gather feedback from the creative designer and product manager. After several rounds of iteration, we settled on a design that met all requirements.
As we progressed, I partnered with the creative designer to develop a component library for the design system. This strengthened our collaboration and ensured the user interface remained consistent and cohesive.
As the user interface began to take shape, I shifted gears to the engineering side of the web store, working through the data and planning the high-level architecture.
Modeling the data
todo
Tech stack
- Next.js
- React
- Tailwind CSS
- Payload CMS
- NextAuth
- next-intl
- nuqs
Showcase














More information will be added in the near future. Stay tuned!