Files
create-better-t-stack/apps/web/content/docs/faq.mdx
2025-07-20 22:38:59 +05:30

335 lines
11 KiB
Plaintext

---
title: Frequently Asked Questions
description: Common questions and answers about Better-T-Stack CLI
---
## General Questions
### What is Better-T-Stack?
Better-T-Stack is a modern CLI tool that helps you scaffold end-to-end type-safe TypeScript projects. It provides opinionated, production-ready configurations for full-stack applications with support for multiple frontend frameworks, backend frameworks, databases, and deployment options.
### How is Better-T-Stack different from other scaffolding tools?
- **End-to-End Type Safety**: TypeScript across your entire stack with proper type sharing
- **Modern Stack Focus**: Latest versions of popular frameworks and tools
- **Production Ready**: Configurations used in real production applications
- **Highly Customizable**: Mix and match technologies based on your needs
- **Monorepo Structure**: Organized project structure with shared packages
- **Database Integration**: Built-in database setup and ORM configuration
- **Authentication**: Integrated auth with Better-Auth
- **Multi-Platform**: Web, mobile, and desktop app support in one project
### Is Better-T-Stack free to use?
Yes, Better-T-Stack is completely free and open-source under the MIT license. You can use it for personal and commercial projects without any restrictions.
### Do I need to know all these technologies to use Better-T-Stack?
No! Better-T-Stack is designed to help you learn modern full-stack development. Each generated project includes:
- Comprehensive README with setup instructions
- Example code and patterns
- TypeScript for better developer experience
- Best practices and folder structure
---
## Installation & Setup
### Which package manager should I use?
You can use any of the major package managers:
- **npm**: Most widely supported, comes with Node.js
- **pnpm**: Faster installs, better disk space efficiency
- **bun**: All-in-one runtime, extremely fast
For monorepo projects, we recommend **pnpm** for its excellent workspace support.
### Do I need to install the CLI globally?
No, you can use npx to run the latest version without installation:
```bash
npx create-better-t-stack@latest my-project
```
This ensures you always use the latest version with the newest features and bug fixes.
### What Node.js version do I need?
Better-T-Stack requires **Node.js 18 or higher**. We recommend using the latest LTS version for the best experience.
### Can I use Better-T-Stack with existing projects?
Better-T-Stack is designed for new projects. For existing projects, you can:
1. Create a new Better-T-Stack project
2. Gradually migrate your code
3. Use the `add` command to add specific features to existing Better-T-Stack projects
---
## Configuration & Stack Choices
### Can I change my stack choices after creating a project?
Some changes are possible:
- **Easy**: Add addons, examples, or deployment configurations using the `add` command
- **Medium**: Switch between compatible ORMs or databases (requires manual migration)
- **Hard**: Change frontend/backend frameworks (requires significant refactoring)
It's best to plan your stack carefully during initial setup.
### What's the difference between tRPC and oRPC?
- **tRPC**: End-to-end type safety with TypeScript inference, great for TypeScript-only projects
- **oRPC**: OpenAPI-compatible type-safe APIs, better for teams using multiple languages or requiring OpenAPI specs
Both provide excellent type safety, choose based on your team's needs.
### Should I use Drizzle or Prisma?
- **Drizzle**: TypeScript-first, lightweight, great for edge deployments, SQL-like syntax
- **Prisma**: Feature-rich, mature ecosystem, great tooling, GraphQL-like schema
Choose Drizzle for modern TypeScript projects and Prisma for feature-rich applications.
### What's the recommended stack for beginners?
For beginners, we recommend:
```bash
npx create-better-t-stack@latest my-first-project \
--frontend tanstack-router \
--backend hono \
--database sqlite \
--orm drizzle \
--auth \
--addons turborepo biome
```
This provides a simple but powerful full-stack setup that's easy to understand and deploy.
---
## Compatibility Questions
### Can I use MongoDB with Drizzle?
No, Drizzle doesn't support MongoDB. For MongoDB, use:
- **Prisma ORM**: Full ORM support for MongoDB
- **Mongoose**: Traditional MongoDB object modeling
### Why can't I use tRPC with Nuxt/SvelteKit/SolidJS?
tRPC is primarily designed for React ecosystems. For these frameworks, use:
- **oRPC**: Provides similar type safety with broader framework support
- **None**: Use the framework's built-in API capabilities
### Can I use Cloudflare Workers with any backend?
Cloudflare Workers runtime only supports:
- **Backend**: Hono only
- **Database**: SQLite with Cloudflare D1
- **ORM**: Drizzle only
This is due to the serverless nature and limitations of the Workers environment.
### Which addons work with which frontends?
| Addon | Compatible Frontends |
|-------|---------------------|
| PWA | TanStack Router, React Router, SolidJS, Next.js |
| Tauri | TanStack Router, React Router, Nuxt, SvelteKit, SolidJS, Next.js |
| Turborepo | All frontends |
| Biome | All frontends |
| Husky | All frontends |
| Starlight | All frontends |
---
## Database & Hosting
### What database should I choose for production?
**For small to medium applications:**
- **SQLite + Turso**: Excellent performance, easy scaling
- **PostgreSQL + Neon**: Serverless PostgreSQL, great for startups
**For large applications:**
- **PostgreSQL + Supabase**: Full backend-as-a-service
- **MongoDB + Atlas**: NoSQL flexibility with managed hosting
### Do I need Docker for development?
Docker is optional and only required for:
- **Database Setup**: If you choose `--db-setup docker`
- **Local Development**: Some setups like Supabase local development
Many database options (Turso, Neon, MongoDB Atlas) don't require Docker.
### How do I deploy my Better-T-Stack application?
Better-T-Stack projects are configured for easy deployment:
**Frontend:**
- **Vercel**: Zero-config deployment for Next.js, React apps
- **Netlify**: Static site deployment
- **Cloudflare Workers**: Edge deployment with `--web-deploy workers`
**Backend:**
- **Railway**: Easy backend deployment
- **Fly.io**: Global application deployment
- **Cloudflare Workers**: Serverless edge deployment
---
## Development & Troubleshooting
### My project won't start after creation. What should I do?
1. **Check Node.js version**: Ensure you're using Node.js 18+
2. **Install dependencies**: Run `npm install` in the project directory
3. **Check environment variables**: Copy `.env.example` to `.env` and fill in values
4. **Database setup**: Run database migrations if using a database
5. **Check the README**: Each project includes detailed setup instructions
### I'm getting TypeScript errors. How do I fix them?
1. **Install dependencies**: Ensure all packages are installed
2. **Restart TypeScript server**: In VS Code, use Ctrl/Cmd + Shift + P → "TypeScript: Restart TS Server"
3. **Check imports**: Ensure all imports are correct and packages are installed
4. **Update types**: Run `npm run check-types` to see detailed errors
### How do I update dependencies in my project?
```bash
# Check for updates
npx taze -r
# Update all dependencies
npm update
# Or with other package managers
pnpm update
bun update
```
### Can I use Better-T-Stack with VS Code?
Yes! Better-T-Stack projects work excellently with VS Code. We recommend these extensions:
- TypeScript and JavaScript Language Features (built-in)
- Tailwind CSS IntelliSense
- Prisma or Drizzle Kit extensions
- ESLint (if using Biome addon)
### My mobile app won't connect to the backend. What's wrong?
This is a common issue with Expo and local development:
1. **Check environment variables**: Update `EXPO_PUBLIC_SERVER_URL` in `apps/native/.env`
2. **Use your local IP**: Replace `localhost` with your computer's IP address
3. **Check firewall**: Ensure your firewall allows connections on port 3000
4. **Use tunnel**: Consider using `npx expo start --tunnel`
---
## Advanced Usage
### Can I customize the generated templates?
Currently, Better-T-Stack doesn't support custom templates, but you can:
1. Fork the repository and modify templates
2. Create a feature request for specific customizations
3. Modify the generated project after creation
### How do I contribute to Better-T-Stack?
We welcome contributions! Here's how to get started:
1. **Fork the repository** on GitHub
2. **Clone your fork** locally
3. **Install dependencies**: `pnpm install`
4. **Make your changes** and test them
5. **Submit a pull request** with a clear description
### Can I use Better-T-Stack in my company/team?
Absolutely! Better-T-Stack is perfect for:
- **Standardizing project structure** across teams
- **Onboarding new developers** with consistent setup
- **Rapid prototyping** and MVP development
- **Client projects** with proven, production-ready configurations
### How do I disable telemetry?
Better-T-Stack collects anonymous usage data to improve the tool. To disable:
```bash
# Disable for single run
BTS_TELEMETRY_DISABLED=1 npx create-better-t-stack@latest my-app
# Disable globally
export BTS_TELEMETRY_DISABLED=1
```
Add the export to your shell profile (`.bashrc`, `.zshrc`, etc.) to make it permanent.
---
## Getting Help
### Where can I get help?
- **Documentation**: Comprehensive guides at [better-t-stack.dev/docs](https://better-t-stack.dev/docs)
- **GitHub Issues**: Report bugs or request features
- **GitHub Discussions**: Community support and questions
- **Discord/Twitter**: Follow for updates and community discussion
### How do I report a bug?
1. **Search existing issues** to avoid duplicates
2. **Create a new issue** with:
- Clear description of the problem
- Steps to reproduce
- Your system information (OS, Node.js version, etc.)
- Generated project configuration
- Error messages or screenshots
### How do I request a new feature?
1. **Check existing feature requests** in GitHub Issues
2. **Create a new issue** with the "feature request" label
3. **Describe the feature** and its use case
4. **Explain why** it would benefit the community
### Is there a community?
Yes! You can connect with other Better-T-Stack users:
- **GitHub Discussions**: Ask questions and share projects
- **Twitter**: Follow [@AmanVarshney01](https://twitter.com/AmanVarshney01) for updates
- **Show your projects**: Tag us when you build something with Better-T-Stack!
---
## Sponsorship & Support
### How can I support Better-T-Stack?
- **⭐ Star the repository** on GitHub
- **🐛 Report bugs** and suggest improvements
- **💰 Sponsor the project** on GitHub Sponsors
- **📢 Share with others** who might find it useful
- **🤝 Contribute code** or documentation
### Who sponsors Better-T-Stack?
View current sponsors by running:
```bash
npx create-better-t-stack@latest sponsors
```
Or visit: [github.com/sponsors/AmanVarshney01](https://github.com/sponsors/AmanVarshney01)
---
*Still have questions? Feel free to ask in [GitHub Discussions](https://github.com/AmanVarshney01/create-better-t-stack/discussions) or check our [documentation](https://better-t-stack.dev/docs).*