moxibit
Apps▼
Byte CardsAndroidQuick SSHAndroidView all apps →
Games▼
Plane RunAndroidSnowman, run!Windows · WebView all games →
ServicesDevlogGalleryAbout
AppsGamesServicesDevlogGalleryAbout
← all posts
Studio2026.08.15 · 3 min read

New site, and why I stopped writing HTML by hand

moxi-bit.com is live in its new form. Same domain, everything else different.

What was wrong with the old one

It worked. That was about the extent of it.

The real problem wasn't how it looked — it was that publishing anything meant editing a file, committing, and deploying. Which sounds fine until you notice the consequence: I stopped publishing things. A privacy policy for a new app was a deploy. A screenshot swap was a deploy. Six projects had shipped and the site knew about maybe half of them.

A site you have to deploy to update is a site you don't update.

What it is now

Nuxt 3 — Vue 3 with SSR and file-based routing. SSR because a catalog page that renders on the server is a catalog page Google can read, and project pages are the whole point of the site existing.

Tailwind for styling. No opinion to defend here; I just wanted to stop naming things.

PostgreSQL behind Nuxt's server API routes, so the backend and frontend are one project and one deploy instead of two.

JWT auth on /admin.

nginx in front, handling TLS and reverse proxy, on my own server.

Routes are dynamic where they need to be — /apps/[slug] and /apps/[slug]/privacy-policy come out of the database, so a new app is a form submission rather than two new files. Clean URLs throughout; nothing ends in .html any more.

The admin panel

This is the part that justified the rebuild.

/admin manages posts, projects (games and apps), privacy policies, and gallery items. It's not a general-purpose CMS and it's deliberately not trying to be — it's four content types with the exact fields those types need, because I'm the only person who will ever log into it.

Building your own CMS is usually a mistake. The reason it wasn't here is that the alternatives all wanted me to model my content in their shape, and my content has an unusual shape: projects with per-project privacy policies, a mix of Play listings and itch pages, statuses that range from "released" to "playtest build I left up for bug reports".

What's next

The devlog is the reason for all of this. Now that publishing is a form, I want to actually use it: build notes while things are in progress, not just release announcements after the fact.

There's a services side to the site too — the kiosk apps, admin dashboards and full-stack work I do for clients — which shares a catalog with the games.

last edited 2026.08.15
← previousByteCards is here
moxibit

Independent software studio

Catalog
GamesAppsGalleryAbout
Services
Web developmentApp developmentGame developmentApp publishing
Elsewhere
itch.ioInstagramGitHubEmail
© 2026 moxi-bitPrivacyTerms