A modern, full-featured web development platform inspired by CodePen, enabling developers to create, share, and collaborate on web projects in real-time.
CodeCraft is a comprehensive web development platform that empowers developers to create, experiment, and share their code seamlessly. Built with modern technologies and best practices, it offers a CodePen-like experience with enhanced features for project management and social collaboration.
- Real-time Code Execution: Instant preview and compilation of HTML, CSS, and JavaScript
- Social Platform: Follow creators, bookmark projects, and build a developer community
- Authentication System: Secure user management with Firebase Authentication
- Project Management: Create, save, and organize development projects
- Responsive Design: Optimized for all devices and screen sizes
- Performance Optimized: Built with Vite for lightning-fast development and production builds
Experience CodeCraft in action: codecraft-2f10d.web.app
- Live Code Editor: Multi-pane editor with syntax highlighting for HTML, CSS, and JavaScript
- Real-time Preview: Instant rendering of code changes with hot reload
- Project Persistence: Save and manage multiple projects with cloud storage
- User Profiles: Customizable developer profiles with project showcases
- Follow System: Connect with other developers and stay updated with their work
- Bookmarking: Save interesting projects for later reference
- Firebase Authentication: Secure login with multiple providers (Google, GitHub, Email)
- Protected Routes: Role-based access control for user-specific features
- Responsive Design: Seamless experience across desktop, tablet, and mobile devices
- Dark Theme: Customizable interface themes for better user comfort
- React - Component-based UI library with hooks and context
- Vite - Next-generation frontend tooling for faster builds
- JavaScript - Modern JavaScript with async/await and modules
- TailwindCSS - Utility-first CSS framework for rapid styling
- Shadcn/ui - Reusable component library built on Radix UI
- Framer Motion - Production-ready motion library for React
- Firebase Hosting - Global CDN with automatic SSL and custom domains
- Firebase Authentication - Secure user authentication and management
- Firebase Firestore - NoSQL document database for real-time data
- ESLint - Code linting for consistent code quality
- Prettier - Code formatting for maintainable codebase
- Git - Version control with feature branch workflow
- Node.js (v18 or higher)
- pnpm (recommended) or npm
- Git for version control
-
Clone the repository
git clone https://github.com/Himanshu0518/CodeCraft.git cd CodeCraft -
Install dependencies
pnpm install
-
Environment Configuration
VITE_FIREBASE_API_KEY=your_api_key VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com VITE_FIREBASE_PROJECT_ID=your_project_id VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id
-
Start development server
pnpm run dev
-
Open your browser Navigate to
http://localhost:5173to see the application running.
| Command | Description |
|---|---|
pnpm run dev |
Start development server with hot reload |
pnpm run build |
Build production-ready application |
pnpm run preview |
Preview production build locally |
pnpm run lint |
Run ESLint for code quality checks |
pnpm run format |
Format code with Prettier |
CodeCraft/
βββ public/ # Static assets and PWA configuration
β βββ vite.svg # Application favicon and branding
βββ node_modules/ # Dependencies
βββ src/
β βββ animations/
β βββ assets/ # Static assets (images, icons, fonts)
β βββ components/ # Reusable React components
β β βββ ui/ # Shadcn/ui design system components
β β βββ Alert.jsx # Alert notifications
β β βββ AppSideBar.jsx # Application sidebar navigation
β β βββ AuthWatcher.jsx # Authentication state monitor
β β βββ Footer.jsx # Application footer
β β βββ Header.jsx # Main header component
β β βββ ProjectCard.jsx # Project display cards
β β βββ Protected.jsx # Route protection wrapper
β βββ config/ # Configuration files
β βββ features/ # Feature-based component organization
β β βββ authSlice.js # Redux slice for authentication
β β βββ projectSlice.js # Redux slice for project management
β β βββ searchSlice.js # Redux slice for search functionality
β βββ hooks/ # Custom React hooks
β βββ layouts/ # Layout components
β β βββ AuthLayout.jsx # Authentication page layouts
β β βββ RootLayout.jsx # Main application layout
β βββ lib/ # Utility libraries and helpers
β βββ pages/ # Route components (page-level)
β β βββ Bookmarks.jsx # User bookmarks page
β β βββ Following.jsx # Following users page
β β βββ Home.jsx # Landing/home page
β β βββ LoginPage.jsx # User authentication page
β β βββ NewProject.jsx # Project creation page
β β βββ Profile.jsx # User profile page
β β βββ Project.jsx # Individual project view
β β βββ SignupPage.jsx # User registration page
β β βββ YourWork.jsx # User's projects dashboard
β βββ services/ # External service integrations
β β βββ auth.js # Firebase authentication service
β β βββ bookmarks.js # Bookmark management service
β β βββ subscriptions.js # User follow/following service
β βββ stores/ # State management (Redux store)
β β βββ store.js # Main Redux store configuration
β β βββ index.css # Global styles and CSS variables
β βββ main.jsx # Application entry point
β βββ routes.jsx # React Router configuration
βββ .env # Environment variables
βββ .gitignore # Git ignore rules
βββ components.json # Shadcn/ui component registry
βββ eslint.config.js # ESLint configuration
βββ firebase.json # Firebase project configuration
βββ index.html # Main HTML template
βββ package.json # Dependencies and scripts
βββ vite.config.js # Vite build configurationWe welcome contributions from the developer community! Here's how you can help:
-
Fork the repository and create your feature branch
git checkout -b feature/amazing-feature
-
Make your changes following our coding standards
- Write clean, documented code
- Follow existing code patterns
-
Commit your changes with conventional commit messages
git commit -m "feat: add amazing new feature" -
Push to your branch and create a Pull Request
git push origin feature/amazing-feature
- Issues: Report bugs or request features through GitHub Issues
- Pull Requests: Submit PRs with clear descriptions and test coverage
- Code Review: All PRs require review before merging
Himanshu Singh
Full Stack AI/ML Developer | IIIT Una
- π§ Email: himanshu.iiitu2027@gmail.com
- πΌ LinkedIn: Connect with me
- π GitHub: @Himanshu0518
Built with β€οΈ using React and Firebase
If you found this project helpful, please consider giving it a β on GitHub!