Skip to content

Arfazrll/PersonalBlog

Repository files navigation

Logo

✦ Syahril Arfian Almazril — Personal Portfolio

AI Engineer · Full Stack Developer · Blockchain Enthusiast

Bridging Technical Innovation with Strategic Execution

Next.js React TypeScript Tailwind CSS Three.js Vercel

Live Demo GitHub LinkedIn


GitHub last commit GitHub repo size GitHub stars License PRs Welcome


📖 Table of Contents


✨ Overview

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           │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

🌟 Features

🎮 Immersive 3D Experience

  • Physics-simulated 3D Lanyard — Interactive ID card powered by Rapier physics engine that reacts to mouse movement in real-time
  • WebGL Hyperspeed Effect — Custom GLSL shader-based warp/space background
  • Particle Systems — Configurable density particle fields with TSParticles
  • Globe Visualization — Interactive 3D world globe in the About section

📊 Real-Time Data

  • GitHub API (GraphQL) — Live contribution heatmap, repo stats, language breakdown
  • WakaTime API — Live coding activity: top languages, hours, and streaks
  • 1-hour cache revalidation — Fresh data without hammering APIs
  • Graceful error fallbacks — Never shows broken states to the user

🎨 Advanced Animations

  • Framer Motion — Fluid page transitions and micro-interactions
  • GSAP ScrollTrigger — Complex, scroll-driven timeline animations
  • React Spring — Physics-based spring animations for natural feel
  • Custom HooksuseTextScramble, useTypewriter, useCountUp, useScrollAnimation

🌍 Multilingual & Accessible

  • Bilingual EN/ID — Full internationalization via next-intl
  • Auto language detection — Uses Accept-Language browser header
  • Welcome in 12 languages — Animated cycling greetings on hero
  • Dark / Light mode — System-preferred with smooth toggle & CSS variables

⚡ Performance-First

  • Dynamic imports — 3D components SSR-disabled and lazy-loaded
  • Low-power detectionusePerformance() hook reduces animations on battery-saving mode
  • Image optimization — AVIF/WebP formats via Next.js Image
  • Smooth scrolling — Lenis-based premium scroll experience

🤖 AI Portfolio Chatbot

  • Groq + Gemini dual-provider — Auto-fallback if one limit is hit
  • Portfolio-aware context — Reads all data from portfolio.ts as knowledge base
  • Markdown rendering — Bold, italic, lists, code, links rendered in chat
  • Smart UX — Typing indicator, retry on error, suggested questions

🗺️ Pages & Routes

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

⚙️ Tech Stack

Core Framework

Next.js 16.1.6  ·  React 19.2.4  ·  TypeScript 5.3  ·  Node.js 18+

3D Graphics & WebGL

Three.js React Three Fiber Drei Rapier Postprocessing OGL Spline Three Globe

Animation

Framer Motion GSAP React Spring Lenis AOS

Styling & UI

Tailwind CSS shadcn/ui CVA Lucide React Icons Headless UI

Internationalization & Theming

next-intl next-themes

AI & External APIs

Groq Gemini GitHub GraphQL WakaTime

Particles & Effects

TSParticles Meshline


🏗️ Project Structure

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)

🚀 Getting Started

Prerequisites

Node.js >= 18.0.0
npm >= 9.0.0

1. Clone the repository

git clone https://github.com/Arfazrll/PersonalBlog.git
cd PersonalBlog

2. Install dependencies

npm install

3. Configure environment variables

Create 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_key

How to get each API key:

Key Where to get it Required scopes
GITHUB_TOKEN github.com/settings/tokens read:user, repo
WAKATIME_API_KEY wakatime.com/settings/api-key
GROQ_API_KEY console.groq.com
GEMINI_API_KEY aistudio.google.com/app/apikey

4. Run the development server

npm run dev

Open http://localhost:3000 in your browser.

5. Build for production

npm run build
npm start

Available Scripts

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

💼 Projects Showcase

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

🧠 Skills & Expertise

Hard Skills Proficiency

  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

Tech Stack Badges

CategoryTechnologies
Languages

Python TypeScript JavaScript Java Solidity

Frameworks

Next.js React FastAPI Flask Node.js Laravel Spring Boot

AI / ML

TensorFlow PyTorch Scikit-learn LangChain Hugging Face OpenCV Pandas NumPy

Databases

PostgreSQL MySQL Firebase Redis Supabase

DevOps & Cloud

Docker Kubernetes GCP AWS Vercel GitHub Actions

Tools

VS Code Jupyter Figma Postman Git Linux Docker

Soft Skills

Leadership · Critical Thinking · Public Speaking · Teamwork · Communication · Problem Solving · Adaptability · Public Relations · Entrepreneurship · Event Management · Research Skills · Mentorship


👔 Professional Experience

🔬 Technical & Research Roles

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

🏛️ Leadership & Organizational Roles

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

🤝 Volunteer Experience

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

🎓 Education & Certifications

🎓 Education

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

🏅 Featured Training Programs

★  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

📜 Certifications (30+)

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)

🏆 Achievements

🥇 Top 15 out of 90 Teams

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.

🥈 4th Place Nationally

Business Case Competition

GENBI · January 2025

Developed innovative solutions for real-world business problems, placing 4th among strong national competitors.


🌐 Internationalization

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)

🎨 Design System

Color System (CSS Variables)

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

Custom Tailwind Animations

fade-in · fade-up · slide-in-left · slide-in-right · scale-in
glow-pulse · float · rotate-slow · gradient-shift
marquee · marquee-reverse · scan · meteor

Typography Stack

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

📡 API Integrations

GitHub Statistics

// GET /api/github-stats
// Auth:     GITHUB_TOKEN (GraphQL API v4)
// Cache:    revalidate every 3600 seconds
// Returns:  total contributions, public repos,
//           stars, followers, top languages

WakaTime Coding Activity

// GET /api/wakatime
// Auth:     WAKATIME_API_KEY
// Cache:    revalidate every 3600 seconds
// Returns:  top languages (7-day), daily average,
//           total hours, editor breakdown

GitHub Languages

// GET /api/github-languages
// Auth:     GITHUB_TOKEN
// Cache:    revalidate every 3600 seconds
// Returns:  language percentage breakdown
//           across all public repositories

🤖 AI Chatbot

The portfolio includes a built-in AI assistant — click the chat icon at the bottom of the sidebar.

Provider Fallback Architecture

┌──────────────────────────────────────────────────┐
│            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               │
└──────────────────────────────────────────────────┘

Chatbot Features

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

📬 Contact

Platform Link
📧 Email azril4974@gmail.com
💼 LinkedIn syahril-arfian-almazril
🐙 GitHub @Arfazrll
🐦 Twitter / X @arfazrll
📸 Instagram @arfazrll
🎵 Spotify arfazrll
🎮 Discord arfazrll

⭐ If you find this portfolio inspiring, consider giving it a star!

Star this repo Fork Follow


Built with ❤️ by Syahril Arfian Almazril

Powered by Next.js · Three.js · React · Framer Motion · GSAP · Groq · Gemini

© 2025 Syahril Arfian Almazril · All rights reserved.

About

Professional portfolio built with Next.js 15, TypeScript, and Tailwind CSS. Features 3D physics (R3F), GSAP animations, and real-time coding stats via WakaTime and GitHub APIs. Support EN/ID.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages