I build production-ready
web apps — from
database to deploy.

Next.js · Node · Postgres · Stripe. MVP in 2–4 weeks, fixed milestones, source code yours. One full-stack dev, end-to-end ownership.

● System Status — live
UPTIME
99.98%
P95 LATENCY
42ms
DEPLOYS / YR
1,247
COLD STARTS
0
~/xweb — zsh
~/xweb $ git pull origin main
Already up to date.
~/xweb $ pnpm build
▲ Next.js 15.0.0
✓ Compiled successfully in 1.2s
○ Generating static pages (12/12)
○ Creating optimized images
~/xweb $ vercel deploy --prod
🔍 Inspecting deployment…
✅ Production: https://xweb.top
⏱ Build time: 38s · Region: iad1
~/xweb $ curl -s https://xweb.top/api/health
{ "status": "healthy", "latency_ms": 42, "db": "connected" }
~/xweb $
5+ yrs full-stack
30+ shipped projects
UTC+8 · 3hr overlap w/ US/EU
Escrow-ready (Upwork · Contra)
Source code 100% yours
// why_xweb

What you actually get

No hand-off gaps, no agency overhead. One person owns the whole stack — and the outcome.

End-to-end ownership

UI, API, DB schema, auth, payments, CI/CD — all in one head. No "toss over the wall" between designer, frontend, and backend.

MVP speed

2-week first usable build for most SaaS or internal tools. Not 3-month agency timelines padded with meetings.

Clean handover

README + deploy script + 30-day warranty. You own everything. Run it yourself or hand it to any dev — no lock-in.

// featured_builds

Past builds

Real projects with real numbers. Click any card to see the live demo or source.

ShopSync — Inventory Dashboard

Next.js Supabase Tailwind Stripe
// schema.prisma
model Product {
  id String @id @default(cuid())
  sku String @unique
  name String
  stock Int @default(0)
  price Decimal
  store Store @relation(fields: [storeId], references: [id])
}
// API: GET /api/stock?store=2
200 OK · 42ms · 1.2kb
📦 ShopSync Dashboard
Total SKUs1,248
Low stock alerts3
Today's sales$3,420
Sync status● Live
✦ Cut manual stock-taking by 40% across 20 stores

LedgerLite — Stripe Billing Portal

Node.js PostgreSQL Stripe API Docker
// stripe-webhook.ts
export async function handleInvoicePaid(event) {
  const invoice = event.data.object;
  await db.subscription.update({
    where: { stripeId: invoice.subscription },
    data: { status: 'active', renewsAt: invoice.period_end }
  });
  return { received: true };
}
// Test: pnpm test stripe
webhook creates subscription
failed payment → dunning flow
💳 Billing Overview
MRR$12,480
Active subs87
Churn (30d)2.1%
Next payoutAug 15
✦ First paid customer in 18 days from kickoff

OpsBoard — Logistics Admin

Next.js Go (Gin) Redis RBAC
# docker-compose.yml
services:
  web:
    build: ./apps/web
    ports: ["3000:3000"]
    depends_on: [redis, db]
  api:
    build: ./apps/api-go
    environment:
      - REDIS_URL=redis://redis:6379
  redis:
    image: redis:7-alpine
  db:
    image: postgres:16
🚚 OpsBoard — Live Fleet
Active drivers23
Deliveries today156
Avg ETA accuracy94%
Alerts2 pending
✦ Replaced 3 spreadsheets, 5 users onboarded week 1
// tech_stack

What's under the hood

No jQuery. No WordPress. No nonsense. Here's the exact stack I deploy with.

// frontend — package.json (excerpt)
{
  "dependencies": {
    "next": "^15.0.0",
    "react": "^18.3.0",
    "tailwindcss": "^3.4.0",
    "@stripe/stripe-js": "^4.0.0",
    "zustand": "^4.5.0"
  },
  "engines": { "node": ">=20" }
}
// how_we_work

From idea to live in weeks

A transparent, milestone-driven pipeline. You see progress every week, not just at the end.

STEP 1
Scoping Call
30-min call · define MVP scope
📅 Calendly · Zoom
STEP 2
Proposal
Fixed price · 30/40/30 split
📝 Notion · Stripe invoice
STEP 3
Sprint 1
Auth · DB · Core UI
⚡ Next.js · Prisma · Tailwind
STEP 4
Weekly Demo
Git branch preview · your feedback
🔍 Vercel Preview · Loom
STEP 5
Deploy
Prod launch · monitoring · warranty
🚀 Vercel · Sentry · 30-day cover
// about_me

Who's behind xweb.top

xweb@dev-machine
────────────────────
OS: macOS / Ubuntu Server
Shell: zsh + starship
Editor: Neovim / Cursor
Languages: TypeScript, Go, SQL
Uptime: 5y 3mo 12d
Clients: 30+
Timezone: UTC+8 (CST)
Overlap: US mornings · EU afternoons
Status: ● Available
────────────────────
When not shipping, I'm trimming my Neovim config.

Hi, I'm X. I've spent 10+ years building web systems for startups and small businesses — from a café ordering PWA to a B2B logistics dashboard handling 10k daily events.

I work async, write in English, and treat your roadmap like my own. No agency bloat, no "we'll get back to you next week." Just fast, clean, production-grade code.

My sweet spot: SaaS MVPs, internal tools, and Stripe-powered billing portals. If you can describe it in a doc, I can ship it in weeks.

P.S. — This site itself is a demo. Built in 1 day on Next.js + Vercel. View source if you're curious.

// faq

Frequently asked

Do you work by hour or fixed price?
Both. Fixed price for clear scope (most MVPs), hourly if requirements change more than 10%. I'll recommend the right model after our scoping call.
Where are you located / what's your timezone?
China (UTC+8). I overlap 2–3 hours with US mornings (PST 5–8pm my time) and EU afternoons. Async-first with a daily standup summary.
Who owns the code?
You, 100%, after each milestone clears. Full repo access on GitHub, clean README, and deploy scripts included.
How do we pay?
Upwork escrow (recommended for first project), Wise invoice, or Contra — your call. 30% upfront, 40% on milestone, 30% on launch.
What's NOT in your scope?
Heavy ML training, WordPress theme jobs, and "$200 Amazon clone" requests. I do focused, production-grade web apps — not template hacks.