Skip to content

A CLI tool for scaffolding type-safe, full-stack TypeScript applications with best practices and customizable.

License

Notifications You must be signed in to change notification settings

tiesen243/create-yuki-stack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

create-yuki-stack

Total Downloads Latest Stable Version License

A modern CLI tool for scaffolding fully-typed, full-stack TypeScript applications with best practices and customizable technology choices.

Features

  • 🚀 Multiple Frontend Options: Next.js, React Router or TanStack Start
  • 🔄 API Layer Options: tRPC or oRPC for end-to-end type safety
  • 🗄️ Database Choices: Prisma, Drizzle, or Mongoose
  • 🔒 Authentication: Multiple auth solutions including NextAuth.js and Better Auth
  • 🎨 UI Components: Optional shadcn/ui integration
  • Turborepo: Optimized monorepo structure for better developer experience
  • 📦 Shared Packages: Common code in packages for better code reuse
  • 🔧 Pre-configured Tooling: ESLint, Prettier, TypeScript

Getting Started

To scaffold a new application using create-yuki-stack, run any of the following commands and follow the interactive prompts:

npm

npm create yuki-stack

yarn

yarn create yuki-stack

pnpm

pnpm create yuki-stack

bun

bun create yuki-stack

CLI Options

Option Description
-y, --yes Skip all prompts and use default settings
--no-yes Negate --yes option
--frontend [values...] Frontend frameworks (choices: nextjs, react-router, tanstack-start)
--database [string] Database option (choices: none, drizzle, prisma, mongoose)
--adapter [string] Database adapter (choices: none, neon)
--backend [string] Backend framework (choices: none, express, elysia, hono, spring-boot
--api [string] API type (choices: none, eden, trpc, orpc)
--auth [string] Authentication (choices: none, basic-auth, better-auth, next-auth)
--extras [values...] Add extra packages and tooling (choices: gh-actions, email)
--package-manager [string] Package manager (choices: npm, yarn, pnpm, bun)
--install Install dependencies after setup
--no-install Negate --install option
--git Initialize git repository
--no-git Negate --git option
-h, --help Display help information
-V, --version Display version number

Default Options (with -y flag)

  • Name: my-yuki-app
  • Frontend: [Next.js]
  • Database: none
  • Adapter: none
  • Backend: none
  • API: none
  • Auth: none
  • Extras: []
  • Package Manager: Auto-detected from environment
  • Install Dependencies: true
  • Initialize Git: true

Tech Stack Options

Frontend Frameworks
  • Next.js: The React Framework for the Web
  • React Router: A user‑obsessed, standards‑focused, multi‑strategy router you can deploy anywhere
  • TanStack Start: Full-stack React and Solid framework powered by TanStack Router
Backend Frameworks
  • Elysia: Ergonomic Framework for Humans & Fox Girls
  • Express: Fast, unopinionated, minimalist web framework for Node.js
  • Hono: Fast, lightweight, built on Web Standards. Support for any JavaScript runtime
API Layers
  • eden: End-to-end type-safe APIs with Elysia
  • tRPC: Move Fast and Break Nothing. End-to-end typesafe APIs made easy
  • oRPC: Easy to build APIs that are end-to-end type-safe and adhere to OpenAPI standards
Database Options
  • Drizzle: A lightweight and performant TypeScript ORM with developer experience in mind
  • Prisma: Ship at lightning speed, and scale to a global audience effortlessly with our next-gen serverless Postgres database
  • Mongoose: Elegant MongoDB object modeling for Node.js
Authentication
  • Basic Auth: Basic authentication built from scratch based on Lucia
  • Better Auth: The most comprehensive authentication framework for TypeScript
  • Next Auth: Authentication for Next.js applications
Extras
  • Github Actions: Automated CI/CD workflows for: format, lint, typecheck with reusable setup actions supporting multiple package managers (npm, yarn, pnpm, bun)
  • Email: Send transactional emails using Resend API with customizable React Email templates

Generated Project Structure

The generated project follows a monorepo structure using Turborepo with:

apps/
  ├─ api/         # API server
  └─ nextjs/      # Next.js application
packages/
  ├─ auth/        # Authentication utilities
  ├─ db/          # Database client and schema
  ├─ ui/          # Shared UI components
  └─ validators/  # Shared validation schemas

Notes

  • If your packages or apps use env from packages/validators, you need to add DOM to your tsconfig.json file because the validators package uses browser APIs:

    {
      "compilerOptions": {
        "lib": ["DOM", "ES2022"]
      }
    }
  • Elysia.js Node Adapter Issue (2025-07-31): The @elysiajs/node adapter is missing the stop method which can cause graceful shutdown issues. To fix this, add a custom stop method to your adapter configuration:

    new Elysia({
      aot: true,
      prefix: '/api',
      adapter: {
        ...node(),
        async stop(app) {
          await app.stop(true)
        },
      },
    })

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Contributors 3

  •  
  •  
  •