YuvalGG

Game development

How I build this website

The actual stack behind YuvalGG, from the article files to the live Vercel deploy.

1 min readYuval Eizik

  • pc
Editorial cover mark for the Game development section

YuvalGG is built as a site of files, then hosted. Accounts, PayPal, and guest posts are live on top of that.

Articles are files

Each article is an MDX file in the repository, with a title, a date, a section, and a draft flag. The sections are guides, hardware, PvP, game development, and reviews. A draft is visible on the local dev server and omitted from the production build, the sitemap, and the RSS feed.

That is deliberate. An unfinished page should not be what Google indexes.

The build

The site is Astro with Tailwind. Search is Pagefind, generated after the build. The public site is the dist folder. Vercel runs npm run build on Node 22 and publishes that folder when the main branch changes.

The code sits in a private GitHub repository. A push is the publish button.

What is connected, and what is not

The public address is https://yuvalgg.com. The domain is registered at GoDaddy and pointed at Vercel.

Supabase holds accounts and guest posts. Sign-in is Google. A paid guest post, or a post from the owner’s Google account, goes live in General immediately and is added to the sitemap. Guest posts are not marked as sponsored.

PayPal takes the guest-post payment. Card checkout is not switched on.

Why it is built this way

The pages that need to rank are ordinary HTML at stable URLs. A file in the repo is a page you can diff, revert, and explain. Accounts and payments can arrive later without turning the guides into a logged-in app.

When this draft is updated, it should be updated because the stack changed, not because a nicer diagram sounded better.

Common questions

Is the site a database of articles?

Yuval's own articles are files in the repository. Guest posts are stored in Supabase and published at yuvalgg.com/general.

Does a draft go live when the site deploys?

No. A production build hides any file still marked draft. A guest post is not a draft. It is live as soon as it is submitted.

Keep reading