Skip to content

eggfriedrice24/create-efr-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

create-efr-app

Scaffold modern full-stack applications with best practices baked in.

Usage

# pnpm (recommended)
pnpm create efr-app my-app

# npm
npm create efr-app my-app

# yarn
yarn create efr-app my-app

# bun
bun create efr-app my-app

Features

  • 🚀 Multiple platforms: Desktop (Tauri) or Web
  • ⚛️ Modern frameworks: React + Vite or Next.js
  • 🎨 shadcn/ui: Beautiful, accessible components
  • 🔥 TypeScript: Full type safety
  • 🎯 Best practices: ESLint (antfu config), proper configs
  • 📦 Package managers: pnpm, npm, yarn, or bun
  • 🔄 CI/CD: Optional GitHub Actions workflows
  • 🎭 Addons: TanStack Query, Drizzle ORM, tRPC

Tech Stack

Base Templates

  • Tauri + React: Cross-platform desktop apps with Rust backend
  • Tauri + Next.js: Desktop apps with Next.js (coming soon)
  • Web + React: Fast web apps with Vite
  • Web + Next.js: Full-stack web apps (coming soon)

Optional Addons

  • shadcn/ui: Pre-configured UI component library
  • TanStack Query: Powerful async state management
  • Drizzle ORM: TypeScript-first database toolkit
  • tRPC: End-to-end typesafe APIs

Development

# Install dependencies
pnpm install

# Run in dev mode
pnpm dev

# Build
pnpm build

# Test the CLI
pnpm start my-test-app

Project Structure

create-efr-app/
├── src/
│   ├── index.ts           # CLI entry point
│   ├── cli.ts             # Main CLI logic
│   ├── prompts.ts         # Interactive prompts
│   ├── scaffold.ts        # Project scaffolding (fetches from GitHub)
│   ├── types.ts           # TypeScript types
│   ├── installers/        # Base and addon installers
│   │   ├── base.ts        # GitHub repo references for templates
│   │   └── addons.ts      # Addon configurations
│   └── utils/             # Helper utilities
│       ├── files.ts       # File operations & token replacement
│       └── package.ts     # Package.json updates
└── dist/                  # Build output

Note: Templates are fetched from GitHub repositories (using giget) rather than bundled locally. This keeps the CLI package size small and allows templates to be updated independently.

Contributing

Contributions welcome! Please read the contributing guidelines first.

License

MIT © eggfriedrice24

About

Scaffold modern full-stack applications with best practices baked in

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors