From Zero to Live Next.js App on Vercel (Debian Edition)

Today I finally got a clean, production-ready Next.js application running on Vercel from my Debian machine. Here’s the full journey — what I did, why I did it, and every step that actually mattered.

Why I did this

I’ve been building local AI tools and Linux experiments for a while, but I wanted a proper modern web frontend that I could deploy publicly with almost zero friction. Next.js + Vercel is currently the fastest path from “I have an idea” to “it’s live on the internet with automatic deployments.”

The goal was simple:

  • Create a fresh Next.js project
  • Push it to GitHub
  • Deploy it to Vercel so every future git push automatically updates the live site

What I actually achieved

  1. Verified Git Confirmed Git 2.47.3 was already installed and working.
  2. Installed Wispr Flow (Linux) Installed the unofficial but solid community Linux port of Wispr Flow (AI voice dictation). Fixed the classic /dev/uinput permission issue by adding my user to the input group and reloading udev rules. After a re-login, wispr-flow –doctor showed all green checks.
  3. Created a brand-new Next.js app Ran:Bashnpx create-next-app@latestChose the recommended defaults (TypeScript, Tailwind CSS, App Router, ESLint). Project landed in ~/my-app.
  4. Pushed to GitHub
    • Created an empty public repository: ny2honolulu/nextjs-vercel
    • Generated a classic Personal Access Token with repo scope
    • Connected the local repo and pushed:Bashgit remote add origin https://github.com/ny2honolulu/nextjs-vercel.git git push -u origin main
  5. Deployed to Vercel
    • Connected the GitHub account to Vercel
    • Installed the Vercel GitHub App (All repositories)
    • Imported nextjs-vercel
    • Hit Deploy

Result: Live production site at https://nextjs-vercel-lac-iota.vercel.app

Status: Ready. Automatic deployments from the main branch are now active.

Key takeaways

  • Next.js 16 + Node 22 works perfectly on Debian.
  • The unofficial Wispr Flow Linux package is usable once you fix the uinput permissions.
  • GitHub no longer accepts account passwords for HTTPS — you must use a Personal Access Token.
  • Vercel’s “Import Git Repository” flow is still the smoothest way to go from local code to a public URL.

This is now the clean base I’ll use for future web experiments (dashboards, AI frontends, personal tools, etc.).

From terminal to live URL in one focused session. Feels good.