Cloud-native portfolio platform powering bjornmelin.io. Demonstrates AWS solutions architecture through serverless APIs and infrastructure as code. Built with React 18, Next.js 14, AWS CDK, and modern DevOps practices.
- 🏗️ Cloud Native Architecture: Production-grade AWS infrastructure with CDK
- 🔐 Enterprise Security: Zero-trust architecture with AWS Cognito
- 🚀 CI/CD Pipeline: Automated deployments with GitHub Actions
- 📊 Observability: Comprehensive monitoring and logging
- 🔄 Multi-Environment: Development, staging, and production
- 🛡️ Infrastructure as Code: Complete AWS CDK implementation
- 📱 Modern Frontend: Next.js with Tailwind CSS
- 🌐 Global Delivery: CloudFront CDN integration
-
⚡ React 18 RC Integration
- Document Metadata API
- Asset Loading API
- Progressive Loading
- Optimization Compiler
-
🚀 Next.js 14 App Router
- Server Components
- Partial Prerendering
- Parallel Routes
- Edge Runtime
-
🔄 Full-Stack Type Safety
- End-to-end typesafe APIs with tRPC
- Runtime validation
- Strict TypeScript
- Comprehensive error handling
-
⚡ Performance First
- Edge deployment
- Streaming SSR
- Smart bundling
- Optimal caching
- 🏛️ Architecture
- 📁 Project Structure
- 🚀 Getting Started
- 🛠️ Tech Stack
- 🏗️ AWS Services Integration
- 💻 Development Scripts
- 👨💻 Author
- 📜 License
- 🌟 Star History
- 📚 How to Reference
- 🙏 Acknowledgments
graph TB
subgraph "Global Edge Network"
CF[CloudFront Distribution]
end
subgraph "Frontend"
S3[S3 Bucket]
CF --> S3
end
subgraph "API Layer"
LAMBDA[Contact Form Lambda]
SES[Amazon SES]
end
subgraph "DNS & SSL"
R53[Route 53]
ACM[ACM Certificate]
end
CF --> LAMBDA
LAMBDA --> SES
R53 --> CF
ACM --> CF
sequenceDiagram
participant User
participant Frontend
participant Lambda
participant SES
User->>Frontend: Submit Contact Form
Frontend->>Lambda: POST /api/contact
Lambda->>SES: Send Email
SES-->>Lambda: Email Sent
Lambda-->>Frontend: Success Response
Frontend-->>User: Show Success Message
graph LR
subgraph "DNS Management"
R53[Route 53]
ZONE[Hosted Zone]
end
subgraph "Content Delivery"
CF[CloudFront]
S3[S3 Origin]
ACM[SSL Certificate]
end
R53 --> CF
CF --> S3
ACM --> CF
bjornmelin-platform-io/
├── .github/ # GitHub Actions workflows
├── docs/ # Project documentation
│ ├── api/ # API documentation
│ ├── architecture/ # Architecture docs
│ ├── deployment/ # Deployment guides
│ ├── development/ # Development guides
│ └── security/ # Security docs
├── infrastructure/ # CDK infrastructure code
│ ├── bin/ # CDK app entry
│ └── lib/ # Infrastructure code
│ ├── functions/ # Lambda functions
│ ├── stacks/ # CDK stacks
│ └── types/ # Stack types
├── public/ # Static assets
│ ├── certifications/ # AWS certifications
│ ├── headshot/ # Profile images
│ └── projects/ # Project images
├── src/ # Application source
│ ├── app/ # Next.js 14 App Router
│ │ ├── api/ # API routes
│ │ └── fonts/ # Custom fonts
│ ├── components/ # React components
│ ├── data/ # Static data
│ ├── hooks/ # Custom hooks
│ ├── lib/ # Utilities
│ └── types/ # TypeScript types
- Frontend: Next.js 14 application with App Router
- Infrastructure: AWS CDK for cloud resource management
- CI/CD: GitHub Actions for automated deployments
- CDN: CloudFront with Route 53 DNS
- API: Serverless Lambda functions with SES integration
Node.js >= 18.0.0
yarn >= 4.0.0
AWS CLI configured
# Clone repository
git clone https://github.com/bjornmelin/bjornmelin-platform-io.git
cd bjornmelin-platform-io
# Install dependencies
yarn install
# Configure AWS credentials
aws configure
# Configure environment
cp .env.production .env.local
# Deploy infrastructure
cd infrastructure
yarn install
yarn cdk deploy
# Start development server
yarn dev
Frontend:
Core:
- React 18
- Next.js 14
- TypeScript
UI:
- Tailwind CSS
- shadcn/ui
- Framer Motion
- GeistVF Font
Infrastructure:
Core:
- AWS CDK
- CloudFront
- S3
- Route 53
- ACM
- Lambda
- SES
Development:
Tools:
- yarn 4.0
- ESLint
- Prettier
- TypeScript
- PostCSS
- CloudFront: Global content delivery network
- Route53: DNS management and domain routing
- ACM: SSL/TLS certificate management
- S3: Static website hosting and assets
- Lambda: Serverless contact form handling
- SES: Email delivery for contact form
- CDK: Infrastructure as code
- GitHub Actions: CI/CD automation
- CloudWatch: Basic monitoring and logging
- IAM: Role-based access control
- WAF: Basic security rules (optional)
# Development
yarn dev # Start development server
yarn build # Build production application
yarn start # Start production server
yarn lint # Run ESLint
yarn serve # Serve production build locally
# Infrastructure (in /infrastructure directory)
yarn cdk deploy # Deploy AWS infrastructure
AWS-certified Solutions Architect, Developer, SysOps Administrator, and Machine Learning Engineer with expertise in cloud architecture and modern development practices. Connect with me on:
This project is licensed under the MIT License - see the LICENSE file for details.
If you use this project in your research or work, please cite it as:
@misc{melin2024portfolio,
author = {Melin, Bjorn},
title = {bjornmelin-platform-io: Cloud-Native Portfolio Platform},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/bjornmelin/bjornmelin-platform-io}},
commit = {main}
}
Standard Citation:
Melin, B. (2024). bjornmelin-platform-io: Cloud-Native Portfolio Platform [Computer software]. GitHub. https://github.com/bjornmelin/bjornmelin-platform-io
- AWS Documentation and Best Practices
- AWS CDK Patterns Community
- Next.js Documentation
Built with React 18 + Next.js 14 by Bjorn Melin