When your partner clones this repo, they should:
# 1. Install dependencies
bun install
# 2. Apply database schema
bun run db:push
# 3. Run the development server
bun run devThat's it! No Docker needed with SQLite! 🎉
- URL: http://localhost:3001/himanshu
- File:
apps/web/src/app/himanshu/page.tsx - What to do: Build your features here without touching partner's files
- URL: http://localhost:3001/partner
- File:
apps/web/src/app/partner/page.tsx - What to do: Your partner builds their features here
✅ No Git Conflicts - You edit different files
✅ Independent Work - Build features without waiting
✅ Easy Testing - Each person tests their own page
✅ Clear Ownership - Everyone knows what they're responsible for
SQLite is simpler:
- ✅ No Docker installation needed
- ✅ No containers to start/stop
- ✅ Database is just a file in your project
- ✅ Perfect for development and small projects
Your database file is stored at:
packages/db/sqlite.db
This file is NOT pushed to Git (it's in .gitignore). Each team member has their own local database file.
# Apply schema changes to your local database
bun run db:push
# View database in browser UI
bun run db:studio
# Generate migration files
bun run db:generate
# Apply migrations
bun run db:migratebun run dev- Start development server- Open your page: http://localhost:3001/himanshu or /partner
- Code your features
- Test your changes
- Commit and push to git
# Format and lint your code
bun run check
# Add your changes
git add .
# Commit with a clear message
git commit -m "Add feature X to himanshu page"
# Push to GitHub
git push✅ Your code files (.tsx, .ts)
✅ Configuration files
✅ Database schema (structure)
❌ NOT pushed:
node_modules/(too big, everyone installs their own).envfiles (contains secrets)sqlite.db(database file - everyone has their own)- PDF/doc files (excluded in .gitignore)
# Development
bun run dev # Start all apps
bun run dev:web # Start only web app
# Database
bun run db:push # Apply schema changes
bun run db:studio # Open database UI
bun run db:generate # Generate migrations
bun run db:migrate # Apply migrations
# Code Quality
bun run check # Format and lint
bun run check-types # Check TypeScript errors
# Build
bun run build # Build for productionmy-better-t-app/
├── apps/
│ └── web/ # Your Next.js frontend
│ └── src/app/
│ ├── himanshu/ # 👈 Your page
│ ├── partner/ # 👈 Partner's page
│ └── ai/ # AI example page
├── packages/
│ ├── db/ # Database & Drizzle ORM
│ │ └── sqlite.db # ❌ NOT pushed (local only)
│ ├── env/ # Environment config
│ └── config/ # Shared configs
└── .gitignore # What NOT to push
| Feature | SQLite (Current) | PostgreSQL (Previous) |
|---|---|---|
| Setup | ✅ Zero setup | ❌ Docker needed |
| Installation | ✅ Built-in | ❌ Container required |
| Start Time | ✅ Instant | ❌ ~10 seconds |
| File | ✅ Single .db file | ❌ Container data |
| Perfect For | ✅ Development, small apps | ❌ Production, large apps |
For this hackathon, SQLite is perfect! 🎯
# Delete the database and recreate it
rm packages/db/sqlite.db
bun run db:pushSomeone else might be using port 3001. Stop other apps first.
If you both edited different files, there should be no conflicts!
If conflicts happen, ask for help merging.
- Communicate what you're working on - "I'm building the upload form on my page"
- Commit frequently - Small commits are easier to manage
- Pull before you start -
git pullto get latest changes - Test before pushing - Make sure your code works
- Write clear commit messages - "Fix button styling" not "updates"
- Next.js docs: https://nextjs.org/docs
- Drizzle docs: https://orm.drizzle.team/docs/overview
- SQLite docs: https://www.sqlite.org/docs.html
- Better-T-Stack: https://github.com/AmanVarshney01/create-better-t-stack
bun run db:start # Start Docker container
bun run db:push # Apply schema
bun run dev # Run serverbun run db:push # Apply schema (no Docker!)
bun run dev # Run serverOne less step! 🎉