Redesign for vpn.mt-glitch.tech
Better landing, dashboards, user experience

Shipped a full redesign of vpn.mt-glitch.tech — new landing, new client dashboard, new admin surface. Below is what changed and why.
Why redesign at all
The old UI was a stack of utilitarian Tailwind defaults bolted on top of an MVP. It worked, but every screen made the same demand of the user: read the labels, figure out where to click, accept a small jolt of friction. With paid users now on the platform, "works" stopped being enough. The bar moved to "feels obvious."
The redesign is built around three goals:
- Landing that earns the click — explain what the service is in five seconds, show that it's real, get out of the way.
- Client dashboard that respects attention — one screen tells you what you have, what's expiring, and what to do next. No tab-hunting.
- Admin surface that scales with the platform — multi-node orchestration, payment events, and user actions all visible from one place.
Landing
- Hero rebuilt around a single value claim and a single primary CTA. Removed the "feature wall" that nobody read.
- New logo and brand wordmark — small thing, big difference in trust.
- Banner illustration replacing the generic gradient.
- Pricing block reworked so the lifetime tier is the obvious default, with secondary options clearly labelled.
- Real social proof block instead of fake testimonial cards.
- Performance budget: first paint stays under a second on a cold connection — no marketing JS bloat.
Client dashboard
- Single overview page: active configs, days remaining, current node, quick "rotate config" action.
- New config-issuance flow — protocol picker (OpenVPN / Hysteria / VLESS planned) is one click, not three.
- Top-up dialog rebuilt around Platega + Enot, with clean state for pending / paid / failed payments.
- Telegram notifications for payment events surface in the dashboard timeline too, so users don't have to context-switch to confirm a top-up landed.
Admin
- Multi-node OpenVPN orchestration view: every node, its health, its active configs, and a one-click revoke.
- User table with proper filtering on role, subscription state, and last seen.
- Payment events stream with a working "reconcile" action for the inevitable provider-side weirdness.
- Cron jobs and reports are now first-class — visible, schedulable, and inspectable from the admin UI instead of buried in logs.
Tech notes
- Next.js 16 App Router, Tailwind v4, shadcn/ui. The shadcn primitives carry most of the new visual weight — clean defaults, easy to theme, no fight with the design system later.