A modern, open-source React code snippets platform powered by Firebase with beautiful UI/UX, dark mode support, and professional animations.
- Modern UI/UX: Built with Tailwind CSS and Framer Motion animations
- Dark Mode: Full dark mode support with system preference detection
- Authentication: Email/password, Google, and GitHub sign-in
- Code Editor: Syntax highlighting with CodeMirror
- Real-time: Firebase Firestore for real-time data
- Responsive: Mobile-first responsive design
- Professional: Clean, modern interface that doesn't look "vibe coded"
- Frontend: React 19.1.1, Tailwind CSS 3.4.17
- Backend: Firebase (Auth, Firestore, Storage, Hosting)
- State Management: TanStack Query
- Animations: Framer Motion
- Code Editor: CodeMirror
- Icons: React Icons
- Build Tool: Create React App 5.0.1
git clone <your-repo-url>
cd snippime
npm install
- Create a new Firebase project at Firebase Console
- Enable Authentication with Email/Password, Google, and GitHub providers
- Create a Firestore database
- Enable Storage
- Copy your Firebase config and update
src/config/firebase.js
:
const firebaseConfig = {
apiKey: "your-api-key",
authDomain: "your-project.firebaseapp.com",
projectId: "your-project-id",
storageBucket: "your-project.appspot.com",
messagingSenderId: "123456789",
appId: "your-app-id"
};
Add these security rules to your Firestore:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Users can read/write their own user document
match /users/{userId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
// Anyone can read public snippets
match /snippets/{snippetId} {
allow read: if resource.data.status == 'public';
allow create: if request.auth != null &&
request.auth.uid == request.resource.data.ownerId;
allow update, delete: if request.auth != null &&
request.auth.uid == resource.data.ownerId;
}
// Users can manage their own likes and bookmarks
match /likes/{likeId} {
allow read, write: if request.auth != null &&
request.auth.uid == resource.data.userId;
}
match /bookmarks/{bookmarkId} {
allow read, write: if request.auth != null &&
request.auth.uid == resource.data.userId;
}
}
}
npm start
Open http://localhost:3000 to view the app.
src/
βββ components/
β βββ auth/ # Authentication components
β βββ common/ # Reusable components
β βββ editor/ # Code editor components
β βββ layout/ # Layout components
β βββ snippets/ # Snippet-related components
βββ config/ # Configuration files
βββ hooks/ # Custom React hooks
βββ pages/ # Page components
βββ utils/ # Utility functions
βββ index.js # App entry point
- Colors: Tailwind default palette with blue-purple gradient accents
- Spacing: 8pt spacing scale
- Typography: Inter font family
- Shadows: Soft shadows for elevation
- Animations: Subtle, professional animations with reduced-motion support
- Install Firebase CLI:
npm install -g firebase-tools
- Login to Firebase:
firebase login
- Initialize Firebase in your project:
firebase init hosting
- Build and deploy:
npm run build
firebase deploy
- Hero section with call-to-action
- Live demo carousel
- Feature highlights
- Community stats
- Responsive design
- Email/password sign-up and sign-in
- Google and GitHub OAuth
- Password reset functionality
- Profile management
- Collapsible sidebar navigation
- Snippet feed with grid/list view
- Search and filtering
- Language and sort options
- Create new snippets
- Syntax highlighting
- Multiple language support
- Live preview
- Auto-save drafts
- Copy to clipboard
- Create, edit, delete snippets
- Version control
- Tags and categories
- Like and bookmark system
- Share functionality
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is open source and available under the MIT License.
- Built with Create React App
- UI components inspired by modern design systems
- Icons from React Icons
- Animations powered by Framer Motion
Snippime - Share Code, Build Together π
This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify