- Cyberpunk-inspired dark theme with purple/cyan accents
- Smooth animations and transitions
- Fully responsive design
- Custom scrollbar styling
|
- Live contribution heatmap
- 14-day activity timeline with filtering
- Multi-account support (personal & work)
- Work activity anonymization
|
- Dynamic project cards with modals
- Markdown content support
- Firebase-powered CMS
- Admin dashboard for content management
|
- Firebase Authentication
- Protected admin routes
- Secure content management
|
| Category |
Technologies |
| Framework |
Next.js 16, React 19 |
| Language |
TypeScript 5 |
| Styling |
Tailwind CSS 4, Radix UI |
| Backend |
Firebase (Auth, Firestore) |
| Charts |
Recharts |
| Deployment |
Docker, Node.js |
eacaw.dev/
├── app/ # Next.js App Router
│ ├── admin/ # Admin dashboard
│ ├── api/ # API routes (GitHub integration)
│ ├── login/ # Authentication page
│ └── page.tsx # Main landing page
├── components/
│ ├── github/ # GitHub activity components
│ ├── layout/ # Navbar, Footer
│ ├── sections/ # Hero, About, Projects, Contact
│ └── ui/ # Reusable UI components
├── contexts/ # React Context providers
├── lib/ # Utilities and Firebase config
└── Dockerfile # Production Docker image
- Node.js 20+
- npm or yarn
- Firebase project (for authentication & data)
# Clone the repository
git clone https://github.com/Eacaw/eacaw.dev.git
cd eacaw.dev
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your Firebase config and GitHub PATs
# Run development server
npm run dev
Open http://localhost:3000 to view the site.
# Firebase Configuration
NEXT_PUBLIC_FIREBASE_API_KEY=
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
NEXT_PUBLIC_FIREBASE_PROJECT_ID=
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
NEXT_PUBLIC_FIREBASE_APP_ID=
# GitHub Personal Access Tokens
GITHUB_PAT= # Personal account
GITHUB_PAT_WORK= # Work account (optional)
# Build the Docker image
docker build -t eacaw-dev \
--build-arg NEXT_PUBLIC_FIREBASE_API_KEY=xxx \
--build-arg NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=xxx \
# ... other build args
.
# Run the container
docker run -p 3000:3000 eacaw-dev
| Command |
Description |
npm run dev |
Start development server |
npm run build |
Build for production |
npm run start |
Start production server |
npm run lint |
Run ESLint |
npx tsc --noEmit |
Type check without building |