
Why I Built QuickShip CLI: Automating My Own Boilerplate
If You Do It Twice, Automate It
As a student and freelancer, time is my scarcest resource. Every hour I spend configuring ESLint, Prettier, or setting up a Supabase client is an hour I'm not building features.
After my third client project this year, I audited my time. I realized I spent roughly 6-8 hours per project just on "setup." That's when I built QuickShip CLI.
The Philosophy: Convention over Configuration
Most boilerplates try to be everything to everyone. QuickShip is opinionated. It enforces the architecture I know scales, specifically curated for the 6 templates I use most (Next.js, T3 Stack, MERN, Expo, and NestJS).
It handles the heavy lifting automatically:
- Expo Router for navigation (standardized file-based routing).
- Supabase Auth pre-wrapped in a React Context.
- Tamagui or Tailwind CSS pre-configured for styling.
How It Works
You don't even need to install it globally. You can spin up a production-ready Next.js or Expo app with a single command:
# Create a production-ready project in 60 seconds
npx quickship-cli@latest build my-appBuilding a CLI in 2026
Building a CLI is a unique challenge. You don't have a UI to guide the user; you have flags and prompts. I focused heavily on Developer Experience (DX).
If a command fails, QuickShip CLI doesn't just crash; it suggests the fix. It uses inquirer for interactive prompts, making the setup feel like a conversation rather than a script.
This tool has reduced my "Idea to Hello World" time from 4 hours to 4 minutes. It's not just code; it's operational leverage.


