Sheeraz KhanLead Game Developer
Initializing Experience 0%
Settings
Theme
Motion
velnestgames.com on desktop and its store on a phone

Vel Nest GamesCo-Founder

Vel Nest Games Website and Store

Our studio site and game store, built from one codebase and one games file, with privacy terms written for each game on each platform.

ReactViteSEO
Role
Co-Founder
Built with
React, Vite, React Router
Codebase
One repo, one build, one deploy

By the numbers

2sites from one codebase, one build and one deploy command
1games file drives the cards, the store pages, the schema and the sitemaps
1cookie in total, the theme, named in the privacy policy

Two sites from one build

velnestgames.com is the front door of Vel Nest Games, the game studio I co-founded. It says what we make and what we believe, shows the games that are live on Google Play, and lets visitors leave an email to hear about the next one. store.velnestgames.com is the catalog, with a page for every game, its features, its art and its store link.

Both sites come from one repository with two Vite configs, one build command and one deploy command. The store reuses the main site's layout, navigation, footer and theme, and links lead back and forth between the two hosts. The theme a visitor picks is saved in a cookie that both sites share, so it follows them from one site to the other.

One games file behind every page

Each game is one entry in a single data file: its name, store listing, type, stage, pitch, features and art. The home page shows the featured games, and the store lists them all. The game count in the hero and the game links in the footer are computed from that file, so nothing is typed twice.

The same entry produces each store page's title, description, canonical link, share image and VideoGame schema. Adding a game to the file is enough: its page, its structured data and its sitemap entry follow on the next build.

What you'd notice

games.js Home cardsStore catalogGame pageJSON-LDSitemaps velnestgames.com store.velnestgames.com one build · one deploy Edition Ads Purchases Account Arrow Jam · Google Play
  • Add a game to one file and its store page, schema and sitemap entry follow.
  • Privacy terms written per game and per platform, so Quest never inherits Android ad terms.
  • The build stops if a page is missing its search markup.
  • A contact form that works end to end, honeypot included.

Every page prerendered

After both builds, a prerender step copies the built page for each route and swaps in that route's own title, description, canonical link, Open Graph and Twitter tags, and structured data. Each host gets its own sitemap and robots file. If the markers this step relies on are missing, the build stops instead of shipping a page without its search data.

Privacy terms for each game on each platform

The privacy policy and the terms are not hand-written pages. They are generated from a registry of short modules, and each module explains one thing a product can do with data. The registry also lists the payment models, the service providers, and one row for each exact product, platform and store. A row lists only what a technical audit found in that build.

Rows never inherit from each other. That is why the paid Meta Quest edition of Grid Patch never carries the Android edition's advertising or purchase terms. Its row covers an ownership check, saves on the headset, and passthrough that is off by default and uses no raw camera frames. A row that has not been audited is marked as unknown, never as "none", and the build throws an error if such a row claims anything. The legal pages are also written into the HTML at build time, so they read fine with JavaScript switched off.

One cookie, no tracking

The sites use no analytics and no advertising cookies. The only cookie is the theme, and the privacy policy names it. The policy code loads only when someone opens a legal page. The contact form sends straight to the studio inbox through Web3Forms, with a hidden honeypot field. Every email link also copies the address, because some browsers have no mail app to open.

What I built

As Co-Founder I built both sites: the React and Vite setup, the games data, the prerender step and the legal registry. I also wrote the one-command deploy. It copies the build to a production branch, checks the copy file by file and skips the commit when nothing changed. I also picked the brand, a folded "V" in Graphite and Sea Glass, from three finalists in a hidden brand lab inside the site.

The sites

velnestgames.com on desktop and on a phone

velnestgames.com

Vel Nest Games

The studio site of Vel Nest Games: what we make, what we believe and the games that are live. Its privacy policy and terms cover each game on each platform.

  • Every route prerendered with its own search data
  • Privacy terms generated per game and per platform
  • Legal pages read fine with JavaScript switched off
  • A contact form that works end to end, honeypot included
store.velnestgames.com on desktop and on a phone

store.velnestgames.com

Vel Nest Games Store

The game catalog, with a page for every game and its store link. It is built from the same codebase and games file as the studio site.

  • Add a game to one file and its page, schema and sitemap entry follow
  • Its own sitemap and robots file for the store host
  • Shares layout, navigation and theme with the studio site
  • Each live game links straight to its Google Play listing

End of the case studyThanks for reading.

Working on something like this?

I'd love to hear about it. If there is a game or a project where this kind of work would help, send me a message.