A modern, responsive portfolio website built with Next.js 15 and deployed on Cloudflare Pages.
- Production: maikona.com
- Staging: maikona.dev
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Deployment: Cloudflare Pages
- CI/CD: GitHub Actions
- β‘ Static site generation for optimal performance
- π¨ Responsive design with Tailwind CSS
- π± Mobile-first approach
- π Automatic HTTPS with Cloudflare
- π Global CDN distribution
- β Automated quality checks (ESLint, TypeScript)
- Node.js 20.x or later
- npm or yarn
# Clone the repository
git clone https://github.com/YOUR_USERNAME/maikona.git
cd maikona
# Install dependencies
npm install# Start development server
npm run devOpen http://localhost:3000 to view it in your browser.
# Create production build
npm run build
# Test production build locally
npm run startmaikona/
βββ app/ # Next.js app directory
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ page.tsx # Home page
βββ components/ # React components
β βββ Navigation.tsx # Site navigation
βββ lib/ # Utility functions
β βββ config.ts # Environment configuration
βββ public/ # Static assets
βββ .github/
β βββ workflows/ # GitHub Actions workflows
βββ next.config.ts # Next.js configuration
βββ tailwind.config.ts # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
Copy .env.example to .env.local and configure:
cp .env.example .env.localAvailable variables:
NEXT_PUBLIC_ENVIRONMENT- Environment name (development/staging/production)NEXT_PUBLIC_CONTACT_EMAIL- Contact email addressNEXT_PUBLIC_GA_ID- Google Analytics ID (optional)
This project uses Cloudflare Pages for deployment with automatic builds.
Push to main β GitHub Actions (quality checks) β Cloudflare Pages β Live
- Production: Commits to
mainbranch deploy to maikona.com - Preview: Feature branches get automatic preview URLs
You can also manually trigger deployments via the Cloudflare Pages dashboard.
npm run lintnpx tsc --noEmitGitHub Actions automatically runs quality checks on every push:
- ESLint validation
- TypeScript type checking
- Build verification
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Write code
- Test locally with
npm run dev - Ensure quality checks pass with
npm run lint
-
Push and create PR
git push origin feature/your-feature-name
- Open a Pull Request on GitHub
- Review changes and merge when ready
-
Deploy to production
- Merge PR to
mainbranch - Cloudflare automatically deploys to production
- Merge PR to
This is a personal project, but suggestions and bug reports are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
Note: While the code is open source, "Maikona" is a trademark. You may use the code, but please do not use the "Maikona" name or branding for your own projects.
- Built with Next.js
- Styled with Tailwind CSS
- Deployed on Cloudflare Pages
- Font: Hanken Grotesk
- Website: maikona.com
- Email: contact@maikona.com
Built with β€οΈ using Next.js and Cloudflare Pages
"Maikona"β’ is a trademark. The code is open source (MIT), but please use your own branding.