This is a ready-to-use template for competitions featuring a Next.js application with Firebase integration. Perfect for rapid prototyping and development contests.
- Node.js 18+
- Firebase account
- Git
git clone <your-repo-url>
cd your-project-name
npm install- Go to Firebase Console
- Create a new project
- Enable Firestore Database
- Go to Project Settings > General > Your apps
- Add a web app and copy the config
cp .env.example .env.localEdit .env.local with your Firebase config:
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key_here
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id_here
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project_id.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id_here
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id_herenpm run devVisit http://localhost:3000 to see your app.
✅ CREATE - Add new tasks
✅ READ - Fetch and display tasks
✅ UPDATE - Edit task text and toggle completion
✅ DELETE - Remove tasks
- Next.js 15 with App Router
- TypeScript for type safety
- Tailwind CSS for styling
- Firebase Firestore for database
- Firebase Auth ready for authentication
- Real-time updates between UI and database
- Responsive design
├── src/
│ ├── app/
│ │ ├── page.tsx # Main task manager component
│ │ ├── layout.tsx # Root layout
│ │ └── globals.css # Global styles
│ └── lib/
│ └── firebase.ts # Firebase configuration
├── .env.example # Environment variables template
└── package.json
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint- Change the data model in
src/app/page.tsx(Task interface) - Update Firestore collection name (currently "tasks")
- Modify the UI components for your specific needs
- Add more pages in
src/app/directory
- Add user authentication with Firebase Auth
- Implement real-time updates with onSnapshot
- Add file upload with Firebase Storage
- Create API routes in
src/app/api/ - Add more complex data relationships
For development, use these rules (update for production):
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}- The current setup is for development/competition use
- Update Firebase security rules for production
- Never commit
.env.localto version control - Use Firebase Auth for user-specific data in production
This template is specifically designed for:
- Hackathons
- Coding competitions
- Rapid prototyping
- Demo applications
- Learning projects
Built with ❤️ for developers who want to focus on building great features, not boilerplate setup.