- ✨ Overview
- 🌟 Features
- 🗺️ Pages & Routes
- ⚙️ Tech Stack
- 🏗️ Project Structure
- 🚀 Getting Started
- 💼 Projects Showcase
- 🧠 Skills & Expertise
- 👔 Professional Experience
- 🎓 Education & Certifications
- 🏆 Achievements
- 🌐 Internationalization
- 🎨 Design System
- 📡 API Integrations
- 🤖 AI Chatbot
- 📬 Contact
A production-grade creative portfolio engineered to showcase expertise in Artificial Intelligence, Blockchain, and Modern Web Architecture. This platform transcends traditional static websites by delivering a high-performance interactive experience powered by advanced WebGL shaders, physics-based simulations, real-time data integration, and an AI-powered chatbot assistant.
┌─────────────────────────────────────────────────────────────────────┐
│ │
│ 👤 Syahril Arfian Almazril (@Arfazrll) │
│ 🎓 Information Technology · Telkom University · GPA 3.8/4.0 │
│ 📍 DKI Jakarta, Indonesia │
│ 🔬 AI Researcher @ Cyber Physical System Lab │
│ 🌐 Currently Exploring: AI Agents · Blockchain · Web3 │
│ │
└─────────────────────────────────────────────────────────────────────┘
|
|
|
|
|
|
| Route | Page | Description |
|---|---|---|
/ |
Home / Hero | 3D Lanyard, particle background, animated intro, stats |
/projects |
Projects | Filterable showcase of 19 projects across 6 categories |
/projects/[slug] |
Project Detail | Tech stack, features, installation guide, challenges & solutions |
/experience |
Experience | Career timeline, education, journey tabs |
/skills |
Skills | Hard skills, soft skills, tools & tech radar |
/achievements |
Achievements | 30+ certifications, awards, programs |
/blog |
Blog | 9 articles on AI, Web3, and engineering |
/blog/[slug] |
Blog Detail | Full-length article view with syntax highlighting |
/gallery |
Gallery | Multi-layout image gallery (Stack, Dome, Circular) |
/contact |
Contact | Contact form + social links |
/resume |
Resume | Interactive CV/resume page |
/api/chat |
Chat API | AI chatbot backend (Groq → Gemini fallback) |
/api/github-stats |
GitHub API | GraphQL-based GitHub statistics |
/api/github-languages |
Languages API | Top language breakdown |
/api/wakatime |
WakaTime API | Coding activity from WakaTime |
Next.js 16.1.6 · React 19.2.4 · TypeScript 5.3 · Node.js 18+
PersonalBlog/
│
├── src/
│ ├── app/ # Next.js 16 App Router
│ │ ├── page.tsx # 🏠 Home — Hero, 3D, Stats
│ │ ├── layout.tsx # Root layout with all providers
│ │ ├── loading.tsx # Global loading UI
│ │ ├── projects/ # Projects list & [slug] detail
│ │ ├── experience/ # Career & education timeline
│ │ ├── skills/ # Skills showcase
│ │ ├── achievements/ # Certifications & awards
│ │ ├── blog/ # Blog list & [slug] detail
│ │ ├── gallery/ # Image gallery
│ │ ├── contact/ # Contact form
│ │ ├── resume/ # CV/Resume page
│ │ └── api/
│ │ ├── chat/route.ts # 🤖 AI Chatbot (Groq + Gemini fallback)
│ │ ├── github-stats/ # GitHub GraphQL stats
│ │ ├── github-languages/ # Language breakdown
│ │ └── wakatime/ # Coding activity
│ │
│ ├── components/
│ │ ├── layout/ # Nav, Footer, SocialCorner, ChatBot
│ │ ├── sections/ # About, Expertise, Stats, CTA
│ │ ├── three/ # Lanyard (R3F + Rapier), Scene3D
│ │ ├── stats/ # GitHubStats, WakaTimeStats
│ │ ├── projects/ # Project detail components
│ │ ├── effects/ # FallingText, visual effects
│ │ ├── animate-ui/ # Custom animated primitives
│ │ └── ui/ # 54+ reusable UI components
│ │ ├── Hyperspeed.tsx # WebGL warp background (GLSL shaders)
│ │ ├── Particles.tsx # TSParticles wrapper
│ │ ├── Globe.tsx # 3D world globe
│ │ ├── SkillRadar.tsx # Skills radar chart
│ │ ├── TechConstellation.tsx # Connected tech node graph
│ │ ├── Marquee.tsx # Infinite scroll marquee
│ │ ├── Terminal.tsx # Terminal UI component
│ │ ├── ScrollVelocity.tsx # Velocity-based scroll text
│ │ ├── KineticTechGrid.tsx # Dynamic tech logo grid
│ │ ├── OrbitalWorkbench.tsx # Orbital animation system
│ │ └── ...44+ more #
│ │
│ ├── data/
│ │ └── portfolio.ts # 📊 Central data source (ALL content)
│ │
│ ├── hooks/ # Custom React hooks
│ │ ├── useIsMobile.ts # Responsive breakpoint detection
│ │ ├── useTextScramble.ts # Scramble animation effect
│ │ ├── useTypewriter.ts # Typewriter text animation
│ │ ├── useCountUp.ts # Animated number counter
│ │ ├── useScrollAnimation.ts # Scroll-based triggers
│ │ └── usePerformance.ts # Low-power mode detection
│ │
│ ├── i18n/ # next-intl config (EN/ID routing)
│ ├── providers/ # Theme, I18n, SmoothScroll providers
│ ├── lib/ # utils.ts (cn, formatDate helpers)
│ ├── types/ # TypeScript interfaces & declarations
│ └── styles/
│ └── globals.css # Tailwind layers + CSS variables
│
├── messages/
│ ├── en.json # English translations
│ └── id.json # Indonesian translations
│
├── public/ # Static assets (images, SVGs, PDFs)
├── next.config.ts # Next.js + next-intl plugin config
├── tailwind.config.ts # Custom theme, animations, keyframes
├── tsconfig.json # Strict TypeScript config
├── components.json # shadcn/ui configuration
└── .env.local # API keys (never committed)
Node.js >= 18.0.0
npm >= 9.0.0git clone https://github.com/Arfazrll/PersonalBlog.git
cd PersonalBlognpm installCreate a .env.local file in the root directory:
# ─── GitHub Integration (for stats section) ───────────────────────────────
NEXT_PUBLIC_GITHUB_USERNAME=your_github_username
GITHUB_TOKEN=github_pat_your_personal_access_token
# ─── WakaTime Integration (for coding stats) ──────────────────────────────
WAKATIME_API_KEY=waka_your_wakatime_api_key
# ─── AI Chatbot — Groq (primary LLM provider) ─────────────────────────────
GROQ_API_KEY=gsk_your_groq_api_key
# ─── AI Chatbot — Gemini (automatic fallback) ─────────────────────────────
GEMINI_API_KEY=your_gemini_api_keyHow to get each API key:
Key Where to get it Required scopes GITHUB_TOKENgithub.com/settings/tokens read:user,repoWAKATIME_API_KEYwakatime.com/settings/api-key — GROQ_API_KEYconsole.groq.com — GEMINI_API_KEYaistudio.google.com/app/apikey —
npm run devOpen http://localhost:3000 in your browser.
npm run build
npm start| Command | Description |
|---|---|
npm run dev |
Start development server with Turbopack |
npm run build |
Build optimized production bundle |
npm start |
Serve the production build locally |
npm run lint |
Run ESLint checks |
19 projects across 6 categories — from AI research to Blockchain DApps to IoT systems.
| # | Project | Category | Stack | Status |
|---|---|---|---|---|
| 1 | Creative Portfolio Website | Creative Tech | Next.js, Three.js, GSAP, R3F | ✅ Live |
| 2 | SNBTIn Platform | EdTech | Next.js, TypeScript, Tailwind | ✅ Live |
| 3 | TerraFlow Platform | IoT & Embedded | Next.js, Go/Gin, Firebase, ESP32 | ✅ Live |
| 4 | DocsInsight Engine | AI & ML | Python, Flask, LangChain, ChromaDB, Ollama | ✅ Done |
| 5 | Donasiaku | Software Eng | Laravel 12, React 19, MySQL, Sanctum | ✅ Live |
| 6 | Security Automation GenAI | AI & ML | Python, TensorFlow, Transformers, Adaptive Attention | ✅ Done |
| 7 | Web3 Guestbook DApp | Blockchain | Solidity, Hardhat, Next.js, Ethers.js, MetaMask | ✅ Live |
| 8 | Digilibzx | Software Eng | Java, Spring Boot 3, Next.js 14, Google Gemini | ✅ Done |
| 9 | POLABDC Dental SaaS | Software Eng | Next.js, Express, Prisma, Supabase, Python AI | ✅ Live |
| 10 | Deep Learning Image Classifier | AI & ML | Python, TensorFlow, MobileNetV2, Streamlit | ✅ Live |
| 11 | AI Book Discovery Platform | AI & ML | Python, Ollama, LangChain, Nomic Embed, Streamlit | ✅ Done |
| 12 | MyTelkomsel Sentiment Analysis | Data Science | Python, BiLSTM, SVM, Word2Vec, Gensim | ✅ Done |
| 13 | NeuroVision (Real-time Detection) | AI & ML | Python, YOLOv3, Darknet-53, OpenCV, CUDA | ✅ Done |
| 14 | Voices Unheard | Software Eng | Node.js, Express, PostgreSQL, NLP, AES-256 | ✅ Done |
| 15 | Smart Motion Detection System | IoT & Embedded | Python, YOLO11-Pose, MQTT, Raspberry Pi 5 | ✅ Done |
| 16 | Solar Energy PINN Prediction | AI & ML | Python, TensorFlow, PINN, NSRDB API | ✅ Done |
| 17 | Credit Risk Analysis LSTM | Data Science | Python, Stacked LSTM, SMOTE, TensorFlow | ✅ Live |
| 18 | Hand Gesture Recognition | AI & ML | Python, MediaPipe, OpenCV, 21-Landmark | ✅ Done |
| 19 | Data Analyst Dashboard | Data Science | Python, Streamlit, Pandas, Plotly | ✅ Done |
Data Science ████████████████████ Expert
Full Stack Development ████████████████████ Expert
Data Visualization ████████████████████ Expert
SQL & DBMS ████████████████████ Expert
Socket Programming ████████████████████ Expert
─────────────────────────────────────────────
Deep Learning (CV/NLP) ██████████████████░░ Advanced
Machine Learning Ops ██████████████████░░ Advanced
Data Analytics ██████████████████░░ Advanced
Software Design ██████████████████░░ Advanced
System Analysis ██████████████████░░ Advanced
DevOps ██████████████████░░ Advanced
─────────────────────────────────────────────
Computer Vision ████████████████░░░░ Intermediate
LLMs / GenAI ████████████████░░░░ Intermediate
System Architecture ████████████████░░░░ Intermediate
Docker & Kubernetes ████████████████░░░░ Intermediate
─────────────────────────────────────────────
Blockchain / Web3 ████████░░░░░░░░░░░░ Beginner/Learning
AI Agents & Autonomy ████████░░░░░░░░░░░░ Beginner/Learning
Solidity / DApps ████████░░░░░░░░░░░░ Beginner/Learning
GCP / Cloud ████████░░░░░░░░░░░░ Beginner/Learning
| Category | Technologies |
|---|---|
| Languages | |
| Frameworks | |
| AI / ML | |
| Databases | |
| DevOps & Cloud | |
| Tools |
Leadership·Critical Thinking·Public Speaking·Teamwork·Communication·Problem Solving·Adaptability·Public Relations·Entrepreneurship·Event Management·Research Skills·Mentorship
| Period | Role | Organization | Type |
|---|---|---|---|
| Aug 2025 – Present | Research Assistant | Cyber Physical System Laboratory | Contract |
| Jul – Sep 2025 | CV Researcher Intern | CPS Laboratory, Telkom University | Internship |
| Sep – Dec 2025 | AI Developer Intern | HUMIC Engineering Research Center | Internship |
| Jul – Oct 2025 | System Analyst Intern | Advanced Software Engineering Lab | Internship |
| Sep 2025 – Jan 2026 | Computer Network Practicum Assistant | Informatics Lab, Telkom University | Contract |
| Oct 2025 – Jan 2026 | Digital Learning Experience Auditor | Dicoding Indonesia | Freelance |
| Jan 2025 | Machine Learning Code Reviewer | Dicoding Academy | Freelance |
| Jun – Aug 2024 | Data Entry Assistant | Dinas Pangan & Pertanian Kota Bandung | Internship |
| Period | Role | Organization |
|---|---|---|
| Jul 2025 – Present | HR Staff | Cyber Physical System Laboratory |
| Mar – Sep 2025 | Chief Committee | Digistar Club by Telkom Indonesia |
| Mar 2025 – Present | Ranger, Digital Application Club | Digistar Club by Telkom Indonesia |
| Sep 2024 – Jan 2025 | Academic Affairs Division | HMIT Telkom University |
| Jul 2024 – Jan 2025 | Public Relations | Youth Ranger Indonesia |
| Period | Role | Organization |
|---|---|---|
| Feb – Mar 2025 | Fundraising Assistant | Galeri Investasi BEI, Telkom University |
| Nov – Dec 2024 | Event Planner & Organizer (MAKRAB 2024) | HMIT Telkom University |
| Feb 2024 | Environmental Hygiene Team | Young On Top Bandung |
| Jan 2024 | Logistics Operator (Campus Expo) | SMAN 88 Jakarta |
| Degree | Institution | Period | GPA |
|---|---|---|---|
| B.Tech — Information Technology | Telkom University, Bandung | Aug 2023 – Present | 3.8 / 4.0 |
| High School Diploma (Science/IPA) | SMAN 88 Jakarta | 2020 – 2023 | — |
★ Coding Camp by DBS Foundation AI Engineer Scholarship Apr – Oct 2025 (6 months)
★ Indosat Ooredoo IDCamp ML Engineer Path Jun – Dec 2024 (6 months)
★ AIESEC Future Leaders 2024 Leadership Development Oct 2024 – Jan 2025
★ CA Study Group — CPS Lab IoT · Web · ML Research Nov 2024 – Jan 2025
★ GDSC Telkom University Machine Learning Path Nov 2023 – Present
Click to expand full certifications list
🤖 AI & Machine Learning
- Generative AI (Dicoding, May 2025)
- Practical AI for Productivity (Dicoding, May 2025)
- Supervised ML: Regression & Classification (DeepLearning.AI, Jan 2025)
- Machine Learning Modeling Beginner (Dicoding, Oct 2024)
- Machine Learning Foundations (AWS, Dec 2024)
- Introduction to Generative AI (AWS, Jan 2025)
- Deep Learning Beginner (Udemy, Jan 2025)
- Dasar Artificial Intelligence (Dicoding, Jul 2024)
- elevAIte with Dicoding 2025 (Dicoding, Jan 2025)
- AI Innovation Challenge (COMPFEST, Nov 2024)
☁️ Cloud & DevOps
- Data Analytics on Google Cloud (Google Cloud Skills Boost, Jan 2025)
- Cloud Practitioner Essentials (Dicoding, Dec 2024)
- AWS Academy Graduate — Cloud Foundations (AWS, Oct 2024)
- Getting Started with Databases (AWS, Feb 2025)
- Docker, Kubernetes dan DevOps (Udemy, Aug 2024)
💻 Programming Languages
- Back-End dengan JavaScript (Dicoding, Feb 2025)
- Pemrograman dengan Java (Dicoding, Feb 2025)
- Dasar Pemrograman JavaScript (Dicoding, Jan 2025)
- Pemrograman dengan Python (Dicoding, Jul 2024)
- Pemrograman dengan Dart (Dicoding, Oct 2024)
- Python Lanjutan (Skilvul, Aug 2024)
- Algorithm & Data Structures with Python (Skilvul, Aug 2024)
📊 Data Science & Analytics
- Dasar SQL (Dicoding, Jul 2024)
- Fundamental SQL Using SELECT Statement (DQLab, Jan 2024)
- Visualisasi Data (Dicoding, Jul 2024)
🌐 Web & Blockchain
- Mastering Smart Contract (ICP HUB Indonesia, Oct 2024)
- React Dasar Gold (Skilvul, Sep 2024)
- Fullstack Programming for Beginners (Udemy, Jul 2024)
- Google Play Store Listing Certificate (Google, Jul 2024)
- Financial Literacy (Dicoding, May 2025)
|
Data Mining Competition — ADIKARA 2024 Telkom University · October 2024 Applied advanced ML models to complex datasets, placing in the top 15 in a 90-team national data mining competition. |
Business Case Competition GENBI · January 2025 Developed innovative solutions for real-world business problems, placing 4th among strong national competitors. |
This portfolio fully supports 2 languages with automatic browser detection:
| Language | Code | Coverage |
|---|---|---|
| 🇺🇸 English | en |
100% |
| 🇮🇩 Indonesian | id |
100% |
The hero section cycles welcome greetings in 12 languages with Framer Motion transitions:
Halo · Hello · Hola · Bonjour · こんにちは · 안녕하세요
مرحباً · Hallo · Olá · Ciao · 你好 · Привет
Detection Flow:
Browser Request
│
▼
Accept-Language Header
│
▼
next-intl Middleware → Route to /en or /id
│
▼
Cookie-based Persistence (remembers preference)
| Token | Usage | Dark | Light |
|---|---|---|---|
--background |
Page background | #09090b |
#ffffff |
--foreground |
Primary text | #fafafa |
#09090b |
--primary |
Accent, CTAs | Indigo/Purple | Indigo/Purple |
--muted |
Subtle text | #71717a |
#71717a |
--glow-cyan |
3D glow effects | #00FFFF |
— |
--glow-purple |
Accent glows | #A855F7 |
— |
--glow-pink |
Highlight glows | #EC4899 |
— |
fade-in · fade-up · slide-in-left · slide-in-right · scale-in
glow-pulse · float · rotate-slow · gradient-shift
marquee · marquee-reverse · scan · meteor
| Font | Usage | Source |
|---|---|---|
| Inter | Body text, UI elements | Google Fonts |
| JetBrains Mono | Code blocks, terminals | Google Fonts |
| Playfair Display | Display headings | Google Fonts |
| Alex Brush | Signature / decorative | Google Fonts |
// GET /api/github-stats
// Auth: GITHUB_TOKEN (GraphQL API v4)
// Cache: revalidate every 3600 seconds
// Returns: total contributions, public repos,
// stars, followers, top languages// GET /api/wakatime
// Auth: WAKATIME_API_KEY
// Cache: revalidate every 3600 seconds
// Returns: top languages (7-day), daily average,
// total hours, editor breakdown// GET /api/github-languages
// Auth: GITHUB_TOKEN
// Cache: revalidate every 3600 seconds
// Returns: language percentage breakdown
// across all public repositoriesThe portfolio includes a built-in AI assistant — click the chat icon at the bottom of the sidebar.
┌──────────────────────────────────────────────────┐
│ POST /api/chat │
│ │
│ messages[] ──► Build System Prompt │
│ (from portfolio.ts data) │
│ │ │
│ ▼ │
│ ┌─────────────────────────┐ │
│ │ Try: Groq API │ │
│ │ Model: llama-3.1-8b │ ──► ✅ OK │
│ └─────────────────────────┘ │
│ │ (rate limit / error) │
│ ▼ │
│ ┌─────────────────────────┐ │
│ │ Fallback: Gemini API │ │
│ │ Model: gemini-1.5-flash│ ──► ✅ OK │
│ └─────────────────────────┘ │
│ │ (both fail) │
│ ▼ │
│ 503 with error details │
└──────────────────────────────────────────────────┘
| Feature | Detail |
|---|---|
| 🧠 Portfolio-aware | System prompt auto-built from all portfolio.ts data |
| 🌐 Bilingual | Responds in EN or ID matching user's language |
| 📝 Markdown | Renders bold, italic, lists, inline code, and links |
| 🔁 Retry | One-click retry button when a response fails |
| 💬 Suggested questions | Quick-start prompts shown on first open |
| ⌨️ Keyboard shortcuts | Enter send · Shift+Enter newline · Escape close |
| 📜 Context window | Last 20 messages kept for multi-turn conversations |
| Platform | Link |
|---|---|
| azril4974@gmail.com | |
| syahril-arfian-almazril | |
| 🐙 GitHub | @Arfazrll |
| 🐦 Twitter / X | @arfazrll |
| @arfazrll | |
| 🎵 Spotify | arfazrll |
| 🎮 Discord | arfazrll |