Back to archive
IV. Client Builds & Logistics Platformssupportingsoloclient anonymised

Self-service Vendor — Corporate Site + CMS

Corporate site + headless CMS (admin) for "Self-service terminal vendor (UZ)" (Self-service terminal vendor (UZ)), built on the user's personal fullstack SaaS boilerplate (Next.js 16 + Elysia + Bun + Drizzle + Better Auth). Solo, AI-assisted development with visual iteration against Figma/Tilda.

Status
active
Period
2025-11-10 → 2026-05-21
AI sessions
4
Stack
Languages
TypeScript
Frameworks · Infra
Next.js 16Elysia.jsBunTurborepoDrizzle ORMBetter Authshadcn/ui
§01

Overview

  • What it is: marketing site for Self-service terminal vendor (UZ) (management consulting/training, Tashkent — appears in ai_club) with a landing page (10 sections per Figma) and an admin CMS for content management (categories, certificates, sections, site settings). Migrated from Tilda (no-code) to a full code-driven stack.
  • Type / status / role: web-app (corporate site + CMS) · active (last commit 2026-05-21) · solo (55 of 56 commits by the user; Bobur Juraev 1).
  • Activity period: 2025-11-10 → 2026-05-21 (~6 months), active.
§02

Stack

  • Languages: TypeScript.
  • Frameworks/libraries: personal SaaS boilerplate — Turborepo + Bun; apps: web (Next.js 16, App Router, SSR/SSG, next-intl ru/en/uz), api (Elysia.js, typed), admin (Next.js, RBAC, auth-gated); packages: auth (Better Auth, cross-subdomain), db (Drizzle ORM + Postgres), cache (ioredis), ui (shadcn/ui), email (React Email + Resend), entities, cli; Eden Treaty (type-safe API client); Polar.sh (payments in boilerplate).
  • Infra/deploy: Turborepo, .env.example, .claude/skills/ (AI guides for deploy/design), PORT-driven listen.
  • Data: PostgreSQL (Drizzle), Redis.
  • Notable tooling: .mcp.json, .tmp_screenshots/ (112 screenshots — chrome-devtools UI iterations), backup/ (Tilda site snapshot as reference).
§03

What was shipped

55 authored commits solo (per diffs/messages):

  • Self-service terminal vendor (UZ) landing (Apr 2026): 10 sections per Figma (a062472), header with contacts + language switcher (63f2cce), footer (77be717), SSR data fetch + types (09ea6c1), page assembly with SSR data and boilerplate removal (4afcb97).
  • Admin CMS (Apr 2026): CRUD for categories (aedffef), certificates (7c50a6f), sections (7691f83), site settings page (e284037), CMS sidebar navigation (2ff7f4a), Toaster/sonner (ac24d82).
  • Polish/types (May 2026): env-driven cross-subdomain auth (3b3745a), Better Auth permission body-key fix (6e95e1f), Eden Treaty/authClient annotations to work around non-portable type inference under strict builds (286c873, fa2508f, 14be13f), brand-logos/dc-pins modules + new sections (3eeb13c), UI alignment to Tilda reference (3b3051c, 6b7b831), Self-service terminal vendor (UZ) favicon.
  • Scope: 56 commits over 6 months; full cycle — from boilerplate to a production site with CMS.
§04

Technical challenges

Per diffs (solo authorship):

  • Headless CMS on Elysia + Drizzle + Next admin: dynamic landing sections render from DB via SSR fetch (09ea6c1, 4afcb97); content management (categories/certificates/sections/settings) via typed API. → Full content-site + CMS pairing, not static.
  • Cross-subdomain Better Auth (3b3745a): env-driven config to share sessions between web and admin subdomains. → Real multi-domain authentication.
  • Fighting TypeScript strict + Eden Treaty (286c873, fa2508f, 14be13f): client annotations to bypass non-portable type inference at build — typical-but-non-trivial edge case for Eden/Better Auth. → Depth of TS typing.
  • AI-driven visual iteration: 112 screenshots in .tmp_screenshots/ + Tilda backup as reference → the user iteratively fit UI to Figma/Tilda via chrome-devtools (visual diff with AI). Notable AI workflow.
§05

AI-assisted development

  • Sessions found: 4 .jsonl files in the Claude Code sessions directory for this project (verified via full-path normalization).
  • What was done with AI: landing/CMS build, type fixes, visual UI tuning (chrome-devtools screenshots), deploy (.claude/skills/ with guides).
  • AI workflow patterns: multi-assistant configuration (CLAUDE.md explicitly addresses Claude Code/Cursor/Copilot/Windsurf), .mcp.json, .claude/skills/ (AI-readable deployment & design guides), visual iteration through screenshots. Mature AI-native process on a modern stack.
§06

Achievements & metrics

  • Full solo cycle: corporate-site migration from Tilda → code-driven Next.js 16 stack with CMS, in ~6 months.
  • The boilerplate (per CLAUDE.md) is "used for 4+ live SaaS apps" — a reusable foundation.
§07

Contributors

git shortlog · all branches

  1. Dave9355
  2. Boburt1
2 contributors56 commits total
Currently

Open to Senior / Staff engineering roles and selective freelance — production AI, platform, and full-stack work.

Get in touch