GitHub Portfolio
Giriş — Dijital CV'niz
Bir mağazanın vitrini ne kadar önemliyse, bir geliştiricinin GitHub profili de o kadar önemlidir. Recruiter'lar, teknik müdürler ve potansiyel iş arkadaşları sizi tanımak için ilk baktıkları yer çoğu zaman GitHub profilinizdir. Vitrine ne koyduğunuz, nasıl düzenlediğiniz ve nasıl sunduğunuz — bunların hepsi bir izlenim bırakır.
Bu derste, GitHub profilinizi "sadece kod deposu" olmaktan çıkarıp "profesyonel vitrin"e dönüştürmeyi öğreneceğiz.
GitHub Profil README — Kişisel Tanıtım
Nasıl Oluşturulur?
GitHub, kullanıcı adınızla aynı isimde bir repository oluşturduğunuzda, o repo'daki README.md dosyasını profilinizin üst kısmında gösterir. Bu, "gizli özellik" değildir ama çoğu geliştirici bilmez.
# 1. Kullanıcı adınızla aynı isimde repo oluşturun
# Kullanıcı adınız: ahmetyilmaz ise
gh repo create ahmetyilmaz --public
# 2. README.md oluşturun
cd ahmetyilmazEtkili Profil README Yapısı
<!-- README.md -->
# Merhaba, ben Ahmet 👋
Full-stack developer olarak 3 yıldır web uygulamaları geliştiriyorum.
Şu an [Şirket Adı]'nda çalışıyorum.
## 🔧 Teknolojiler
**Frontend:** React, Next.js, TypeScript, Tailwind CSS
**Backend:** Node.js, Express, PostgreSQL, Redis
**DevOps:** Docker, GitHub Actions, AWS, Vercel
**Araçlar:** Git, VS Code, Figma
## 🚀 Öne Çıkan Projeler
| Proje | Açıklama | Teknoloji |
|-------|----------|-----------|
| [TaskFlow](https://github.com/ahmet/taskflow) | Kanban proje yönetimi | React, Firebase |
| [WeatherApp](https://github.com/ahmet/weather) | Hava durumu uygulaması | Next.js, API |
| [BlogEngine](https://github.com/ahmet/blog) | Markdown blog motoru | Node.js, MDX |
## 📊 GitHub İstatistikleri

## 📫 İletişim
- 💼 [LinkedIn](https://linkedin.com/in/ahmetyilmaz)
- 🌐 [Website](https://ahmetyilmaz.dev)
- 📧 ahmet@email.comDinamik İçerik Ekleme
GitHub Actions ile profil README'nizi otomatik güncelleyebilirsiniz:
# .github/workflows/update-readme.yml
name: Update README
on:
schedule:
- cron: '0 0 * * *' # Her gün gece yarısı
workflow_dispatch:
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Son blog yazılarını çek
- uses: gautamkrishnar/blog-post-workflow@v1
with:
feed_list: "https://ahmetyilmaz.dev/rss.xml"
max_post_count: 5<!-- README.md'de blog bölümü -->
## 📝 Son Blog Yazıları
<!-- BLOG-POST-LIST:START -->
- [Git ile Verimli Çalışma İpuçları](https://ahmetyilmaz.dev/git-tips)
- [React Server Components Rehberi](https://ahmetyilmaz.dev/rsc)
- [TypeScript 5.0 Yenilikleri](https://ahmetyilmaz.dev/ts5)
<!-- BLOG-POST-LIST:END -->GitHub Readme Stats
Profil istatistiklerinizi görselleştiren popüler açık kaynak araç:
<!-- Genel istatistikler -->

<!-- En çok kullanılan diller -->

<!-- Streak istatistikleri -->

<!-- Proje kartı -->
💡 İpucu: İstatistik badge'leri güzel görünür ama recruiter'lar bunlara bakarak karar vermez. Önemli olan projelerinizin kalitesi ve README'lerin açıklayıcılığıdır. Badge'ler süslemedir, içerik esastır.
Pinned Repositories — Vitrinde Ne Olsun?
GitHub profilinizde 6 adet "pinned repo" seçebilirsiniz. Bu, profilinize gelen herkesin ilk gördüğü projelerdir.
Pin Stratejisi
Pining Stratejisi (6 slot):
Slot 1: 🏆 En iyi projeniz (canlı demo var)
Slot 2: 🛠️ Teknik beceriyi gösteren proje
Slot 3: 📦 Açık kaynak katkınız veya kütüphaneniz
Slot 4: 📚 Öğrenme projesi / kurs çalışması
Slot 5: 🤝 Ekip projesi (collaborator olarak)
Slot 6: 📝 Blog / portföy sitesi
❌ Pin'lemeyin:
- Fork edip hiç değişiklik yapmadığınız projeler
- Yarım kalmış projeler (README'si bile olmayan)
- Tutorial kopyaları (TodoMVC, calculator)
- Çok eski, bakımsız projelerPin Ayarlama
GitHub Profil sayfanız → "Customize your pins" →
6 repo seçin → SaveProje README'si — Her Proje İçin
Pinned repo'larınızın her birinin güçlü bir README'si olmalı:
<!-- Örnek proje README.md -->
# 🚀 TaskFlow — Kanban Proje Yönetimi
> Sürükle-bırak Kanban board ile görevlerinizi organize edin.

[](https://taskflow.vercel.app)
[](LICENSE)
[](https://github.com/ahmet/taskflow/actions)
## ✨ Özellikler
- 📋 Sürükle-bırak Kanban board
- 👥 Gerçek zamanlı çoklu kullanıcı
- 🏷️ Etiketler ve filtreler
- 📊 İlerleme dashboard'u
- 🌙 Dark mode
- 📱 Responsive tasarım
## 🛠️ Teknolojiler
| Kategori | Teknoloji |
|----------|-----------|
| Frontend | React 18, TypeScript, Tailwind CSS |
| Backend | Node.js, Express, Socket.io |
| Database | PostgreSQL, Prisma ORM |
| Auth | NextAuth.js, OAuth 2.0 |
| Deploy | Vercel (frontend), Railway (backend) |
| CI/CD | GitHub Actions |
## 🚀 Kurulum
```bash
# Repo'yu klonlayın
git clone https://github.com/ahmet/taskflow.git
cd taskflow
# Bağımlılıkları yükleyin
npm install
# Environment değişkenlerini ayarlayın
cp .env.example .env
# .env dosyasını düzenleyin
# Veritabanını hazırlayın
npx prisma migrate dev
# Geliştirme sunucusunu başlatın
npm run dev📁 Proje Yapısı
taskflow/
├── src/
│ ├── app/ # Next.js App Router
│ ├── components/ # React bileşenleri
│ ├── hooks/ # Custom hooks
│ ├── lib/ # Utility fonksiyonlar
│ ├── server/ # API routes
│ └── types/ # TypeScript tipleri
├── prisma/ # Database schema
├── public/ # Static assets
└── tests/ # Test dosyaları📸 Ekran Görüntüleri
| Board Görünümü | Dashboard |
|---|---|
|  |  |
🤝 Katkıda Bulunma
Katkılarınız memnuniyetle karşılanır! [CONTRIBUTING.md](CONTRIBUTING.md) dosyasını okuyun.
📄 Lisans
Bu proje [MIT Lisansı](LICENSE) altında lisanslanmıştır.
### README Olmazsa Olmazları
Her proje README'sinde olması gerekenler: ────────────────────────────────────────── ✅ Proje adı ve kısa açıklama (1-2 cümle) ✅ Demo linki veya ekran görüntüsü/GIF ✅ Teknoloji listesi ✅ Kurulum adımları (çalıştırılabilir talimatlar) ✅ Kullanım örnekleri ✅ Lisans
Bonus: ⭐ Badge'ler (CI durumu, lisans, demo) ⭐ Proje yapısı (klasör ağacı) ⭐ Katkı rehberi (CONTRIBUTING.md) ⭐ Ekran görüntüleri (özellikle UI projeleri) ⭐ Mimari kararlar (neden bu teknoloji?)
## Contribution Graph — Yeşil Kareler
### Contribution Graph Nasıl Çalışır?
GitHub profilinizdeki yeşil kareler, her gün ne kadar katkıda bulunduğunuzu gösterir:
Contribution sayılan aktiviteler: ✅ Commit (varsayılan branch'e veya gh-pages'e) ✅ Issue açma ✅ PR açma ✅ PR review ✅ Commit'in fork'ta değil, birleştirilmiş PR ile olması
Contribution SAYILMAYAN aktiviteler: ❌ Fork'ta yapılan commit (merge edilmediyse) ❌ Gist oluşturma ❌ Başkasının repo'sunda issue yorumlama ❌ Private repo (ayar ile açılabilir)
### Contribution Graph Ayarları
Profile → Settings → Public profile ☑ Include private contributions on my profile (Private repo'daki katkıları da göster — detay gizli kalır)
### Yanılgılar
❌ YANLIŞ: "Her gün commit atmalıyım ki yeşil kaleler olsun" ✅ DOĞRU: Kalite > Miktar. Her gün 1 anlamsız commit yerine, haftada 3-4 anlamlı commit çok daha değerli.
❌ YANLIŞ: "Boş bir dosya commit'leyerek streak tutabilirim" ✅ DOĞRU: Recruiter'lar bunu görür ve negatif izlenim bırakır. Otantik katkı > sahte streak.
❌ YANLIŞ: "Contribution graph yoğun olmalı" ✅ DOĞRU: Graph, tutarlılığı gösterir. Yoğunluk değil, düzenlilik önemlidir.
> ⚠️ **Dikkat:** Contribution graph'ı "oyun" olarak görmeyin. Gerçek anlamda faydalı şeyler yapın: proje geliştirin, dökümantasyon yazın, bug düzeltin, test ekleyin. Sahte commit'ler profilinizi zenginleştirmez, aksine güvenilirliğinizi düşürür.
## İyi GitHub Profili Checklist'i
```markdown
## 🎯 GitHub Profil Optimization Checklist
### Profil Bilgileri
- [ ] Profil fotoğrafı (profesyonel veya logo)
- [ ] Bio (1-2 cümle, ne yaptığınız)
- [ ] Lokasyon
- [ ] Website/portfolio linki
- [ ] LinkedIn linki (social accounts)
- [ ] Twitter/X linki (opsiyonel)
- [ ] Pronouns (opsiyonel, inklüzif)
### Profil README
- [ ] Kısa, etkili tanıtım
- [ ] Teknoloji/beceri listesi
- [ ] Öne çıkan projeler
- [ ] İletişim bilgileri
- [ ] Blog/makale linkleri (varsa)
### Pinned Repos (6 adet)
- [ ] Her biri güçlü README'ye sahip
- [ ] En az 1 projenin canlı demo'su var
- [ ] Farklı beceri alanlarını gösteriyor
- [ ] Son 1 yıl içinde güncellenmiş
- [ ] Star/fork varsa bonus
### Repo Kalitesi
- [ ] README.md (kurulum + kullanım + ekran görüntüsü)
- [ ] Anlamlı commit mesajları
- [ ] .gitignore düzgün
- [ ] LICENSE dosyası var
- [ ] CI/CD yapılandırılmış (badge var)
- [ ] Temiz kod, yorum satırları
- [ ] Test var
### Aktivite
- [ ] Düzenli commit'ler (haftada 3-5 gün)
- [ ] Open source katkıları
- [ ] Issue'lara yanıt verme
- [ ] PR review yapmaRecruiter'ların Baktığı Şeyler
Recruiter GitHub profili nasıl inceler?
1. İlk İzlenim (5 saniye)
→ Profil fotoğrafı, bio, pinned repos
2. Projeler (30 saniye)
→ README var mı? Demo var mı? Ne kadar karmaşık?
3. Kod Kalitesi (2 dakika)
→ En popüler projenin koduna göz atma
→ Temiz mi? Test var mı? Best practice'ler uygulanmış mı?
4. Aktivite (10 saniye)
→ Contribution graph tutarlı mı?
→ Son commit ne zaman?
5. Ekip Çalışması (30 saniye)
→ PR'lar açmış mı? Review yapmış mı?
→ Open source katkıları var mı?Ne İzlenim Bırakır?
✅ Güçlü profil sinyalleri:
- Canlı demolu projeler
- Temiz, anlamlı commit geçmişi
- Açık kaynak katkılar
- İyi dökümantasyon
- Tutarlı aktivite
❌ Zayıf profil sinyalleri:
- Boş profil (README yok, bio yok)
- Fork koleksiyonu (sadece fork etmiş, katkı yok)
- "Hello World" projeleri
- README'siz projeler
- Anlamsız commit mesajları ("fix", "update", "asdf")
- 1 yıldır inaktifPortföy Sitesi vs GitHub Profili
İdeal olarak ikisini de kullanın:
GitHub Profili: Portföy Sitesi:
┌────────────────────────┐ ┌────────────────────────┐
│ • Kod kalitesini gösterir│ │ • Hikaye anlatır │
│ • Teknik derinlik │ │ • Tasarım becerisi │
│ • Topluluk katılımı │ │ • Case study'ler │
│ • Gerçek commit geçmişi │ │ • Blog yazıları │
│ • Ekip çalışması kanıtı │ │ • Kişisel marka │
└────────────────────────┘ └────────────────────────┘
GitHub → Teknik yetkinliğin kanıtı (kod ile)
Portföy → Kişisel markanın vitrini (hikaye ile)GitHub Activity — Nasıl Daha Aktif Görünürsünüz?
Tutarlı Katkı Stratejisi
Recruiter'lar yoğunluk değil tutarlılık arar. Haftada 3-4 gün düzenli aktivite, ayda bir kez 50 commit'ten daha etkilidir:
Etkili aktivite planı:
────────────────────────
Pazartesi: Yan proje üzerinde çalış (1-2 commit)
Salı: Open source issue/PR incele
Çarşamba: Blog yazısı + repo'ya commit
Perşembe: Ana projede çalışma
Cuma: Haftanın review'u, README güncelleme
Hafta sonu: Opsiyonel — yeni teknoloji denemeleriKatkı Türleri
GitHub contribution graph'ı doldurmanın gerçek yolları:
# 1. Kendi projelerinde commit
git commit -m "feat: Add dark mode toggle"
# 2. Open source PR
gh pr create --repo popular-lib --title "fix: handle edge case"
# 3. Issue açma ve yorum
gh issue create --repo tool-repo --title "Bug: crash on empty input"
# 4. Dökümantasyon güncellemesi
# (En kolay ve en değerli katkılardan biri)
# 5. Code review
# PR'ları incele, yapıcı yorum bırak
# 6. GitHub Discussions'a katılım
# Soru sor, cevapla, tartışGitHub Profile Achievements
GitHub son dönemde profil başarımları (achievements) ekledi:
🏅 Arctic Code Vault Contributor
🦈 Pull Shark (PR merge ettiren)
🌟 Starstruck (repo'ya star alan)
🧠 Galaxy Brain (Discussions'da yardımcı)
👀 YOLO (review olmadan merge)
📦 Package Publisher (paket yayınlayan)Bu badge'ler profilinize ek görünürlük sağlar.
Proje Kalitesi — Vitrine Ne Koymalı?
Proje Olgunluk Seviyeleri
Pin'leyeceğiniz projeler belirli bir olgunluk seviyesinde olmalı:
Olgunluk Seviyeleri:
❌ Seviye 0: Yarım kalan, README'siz proje
→ Pin'lemeyin
⚠️ Seviye 1: Çalışan ama dökümantasyonsuz
→ README ekleyip seviye 2'ye çıkarın
✅ Seviye 2: README + çalışan kod + kurulum adımları
→ Pin'lenebilir
⭐ Seviye 3: + Test, CI/CD, demo linki
→ İdeal pin projesi
🏆 Seviye 4: + Contributing guide, issue template, badge'ler
→ Açık kaynak hazır, profesyonel seviyeProje Demo Stratejileri
Demo hosting seçenekleri:
─────────────────────────
Vercel → Next.js, React (ücretsiz)
Netlify → Static site, SPA (ücretsiz)
GitHub Pages → Jekyll, static HTML (ücretsiz)
Railway → Backend API (ücretsiz tier)
Render → Full-stack (ücretsiz tier)
Supabase → Database + auth (ücretsiz tier)
Demo her zaman aktif olsun!
Canlı demo linki, 1000 satır koddan daha etkili.Gerçek Dünya: Profil İyileştirme Öncesi/Sonrası
ÖNCESİ:
┌─────────────────────────────────────────┐
│ 👤 ahmetyilmaz │
│ (Bio yok) │
│ (README yok) │
│ │
│ Pinned: │
│ • hello-world (1 commit) │
│ • react-tutorial (fork) │
│ • test-project (3 commit) │
│ │
│ Contribution: ░░░░░░░░░░░░░░░░ (boş) │
└─────────────────────────────────────────┘
SONRASI:
┌─────────────────────────────────────────┐
│ 👤 Ahmet Yılmaz │
│ Full-Stack Developer | React & Node.js │
│ 📍 Istanbul | 🌐 ahmetyilmaz.dev │
│ │
│ README: │
│ "Merhaba! 3 yıldır web uygulamaları │
│ geliştiriyorum. React, TypeScript..." │
│ │
│ Pinned: │
│ ⭐ taskflow (React, Firebase) — Demo ✅ │
│ ⭐ weather-app (Next.js, API) — Demo ✅ │
│ ⭐ npm-package (Node.js) — npm'de ✅ │
│ ⭐ blog (MDX, Tailwind) — Live ✅ │
│ ⭐ open-source-contrib (fork + PR merged)│
│ ⭐ dotfiles (kişisel config) │
│ │
│ Contribution: ▓▓▓▓░▓▓▓▓░▓▓▓▓░▓▓▓ tutarlı│
└─────────────────────────────────────────┘Özet
Bu derste GitHub profilinizi profesyonel bir portföye dönüştürmeyi öğrendik:
📄 Profil README — kullanıcı adınızla aynı repo, kişisel tanıtım
📌 Pinned repos — 6 slot, en iyi projelerinizi vitrine koyun
📊 Contribution graph — tutarlılık > yoğunluk, sahte commit yapmayın
📝 Proje README — demo, kurulum, ekran görüntüsü, teknoloji listesi
🎯 Recruiter perspektifi — 5 saniye ilk izlenim, kod kalitesi, aktivite
🌐 Portföy sitesi — GitHub + kişisel site birlikte güçlü
✅ Checklist — profil bilgileri, README, pinned repos, aktivite
💡 Son İpucu: GitHub profilinizi bir kere düzenleyip unutmayın. Ayda bir gözden geçirin: yeni projeler pin'leyin, eski olanları çıkarın, README'yi güncelleyin. Canlı ve güncel bir profil, terk edilmiş bir profilden çok daha güçlü izlenim bırakır.
Bir sonraki derste farklı Git workflow'larını karşılaştıracağız: Git Flow, GitHub Flow ve Trunk-Based Development.
AI Asistan
Sorularını yanıtlamaya hazır