{"id":33751,"date":"2025-11-06T16:01:08","date_gmt":"2025-11-06T13:01:08","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/"},"modified":"2025-11-06T16:01:08","modified_gmt":"2025-11-06T13:01:08","slug":"harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/","title":{"rendered":"Harika React Portfolyo Sitesi Nas\u0131l Olu\u015fturulur? (Kodlama Kamp\u0131 Rehberi)"},"content":{"rendered":"<p><body><\/p>\n<p>Kodlama kamp\u0131ndan sonra kariyerine h\u0131zla ba\u015flamak isteyen yaz\u0131l\u0131mc\u0131lar i\u00e7in React portfolyo sitesi hayati \u00f6nem ta\u015f\u0131r. Yeteneklerini sergile, i\u015fverenleri etkile. Bu rehberle ad\u0131m ad\u0131m ilerle!<\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i yaz\u0131l\u0131m d\u00fcnyas\u0131nda, bir kodlama kamp\u0131n\u0131 bitirmek veya kendi ba\u015f\u0131n\u0131za React \u00f6\u011frenmek sadece ba\u015flang\u0131\u00e7t\u0131r. As\u0131l m\u00fccadele, kazand\u0131\u011f\u0131n\u0131z bu de\u011ferli becerileri potansiyel i\u015fverenlere etkili bir \u015fekilde sergileyebilmektir. \u0130\u015fte tam da bu noktada, iyi tasarlanm\u0131\u015f, i\u015flevsel ve modern bir React portfolyo sitesi devreye giriyor. Peki, neden s\u0131radan bir HTML\/CSS sitesi yerine \u00f6zellikle React tabanl\u0131 bir portfolyoya y\u00f6nelmelisiniz?<\/p>\n<p>\u00d6ncelikle, bir React portfolyo sitesi, sadece bitirdi\u011finiz projelerin bir listesini sunmaktan \u00e7ok daha fazlas\u0131n\u0131 ifade eder. Bu, sizin JavaScript, komponent tabanl\u0131 mimari, modern \u00f6n y\u00fcz geli\u015ftirme ara\u00e7lar\u0131 ve state y\u00f6netimi gibi temel React kavramlar\u0131na ne kadar hakim oldu\u011funuzun canl\u0131 bir kan\u0131t\u0131d\u0131r. \u0130\u015fverenler, sadece projelerinizin nihai \u00e7\u0131kt\u0131s\u0131na de\u011fil, ayn\u0131 zamanda o \u00e7\u0131kt\u0131y\u0131 nas\u0131l olu\u015fturdu\u011funuza da dikkat ederler. React kullanarak bir site geli\u015ftirmek, teknik becerilerinizi dinamik bir ortamda sergilemenize olanak tan\u0131r. \u00d6rne\u011fin, sitenizdeki interaktif elementler, animasyonlar veya sorunsuz gezinme deneyimi, React\u2019in g\u00fcc\u00fcn\u00fc ve sizin yetkinli\u011finizi do\u011frudan yans\u0131t\u0131r.<\/p>\n<p>\u0130kinci olarak, React bir end\u00fcstri standard\u0131d\u0131r. B\u00fcy\u00fck \u015firketlerden startup&#8217;lara kadar pek \u00e7ok kurulu\u015f, \u00f6n y\u00fcz geli\u015ftirme s\u00fcre\u00e7lerinde React&#8217;i tercih etmektedir. Dolay\u0131s\u0131yla, bir React portfolyo sitesine sahip olmak, i\u015fverenlere &#8220;Ben sekt\u00f6r\u00fcn en g\u00fcncel teknolojilerini biliyor ve uygulayabiliyorum&#8221; mesaj\u0131n\u0131 verir. Bu, sizi di\u011fer adaylar aras\u0131ndan s\u0131y\u0131rarak m\u00fclakat davetleri alma \u015fans\u0131n\u0131z\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir. Ayr\u0131ca, kendi portfolyo sitenizi React ile geli\u015ftirmek, ger\u00e7ek d\u00fcnya projelerinde kar\u015f\u0131la\u015faca\u011f\u0131n\u0131z zorluklara benzer deneyimler ya\u015faman\u0131z\u0131 sa\u011flar. Bir komponentin ya\u015fam d\u00f6ng\u00fcs\u00fcyle ba\u015fa \u00e7\u0131kmak, veri ak\u0131\u015f\u0131n\u0131 y\u00f6netmek veya performans\u0131 optimize etmek gibi pratik becerileri kazan\u0131rken ayn\u0131 zamanda kendi projenizi de hayata ge\u00e7irmi\u015f olursunuz.<\/p>\n<p>Bir ba\u015fka \u00f6nemli avantaj ise, React&#8217;in esnekli\u011fidir. Portfolyo siteniz sadece bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. Gelecekte yeni projeler eklemek, mevcut b\u00f6l\u00fcmleri g\u00fcncellemek veya tamamen yeni \u00f6zellikler entegre etmek istedi\u011finizde, React&#8217;in mod\u00fcler yap\u0131s\u0131 sayesinde bu s\u00fcre\u00e7 olduk\u00e7a kolayla\u015f\u0131r. Her bir b\u00f6l\u00fcm\u00fc (hakk\u0131mda, projeler, ileti\u015fim vb.) ayr\u0131 bir komponent olarak d\u00fc\u015f\u00fcnmek, sitenizin \u00f6l\u00e7eklenebilirli\u011fini ve bak\u0131m\u0131n\u0131 art\u0131r\u0131r. Bu durum, gelecekteki kariyer geli\u015fiminiz i\u00e7in de bir yat\u0131r\u0131m niteli\u011findedir. Son olarak, bir React portfolyo sitesi olu\u015fturmak, sadece teknik bir g\u00f6rev de\u011fildir; ayn\u0131 zamanda kendinizi bir marka olarak konumland\u0131rma s\u00fcrecidir. Sitenizin tasar\u0131m\u0131, kullan\u0131c\u0131 deneyimi ve i\u00e7eri\u011fi, sizin profesyonel kimli\u011finizi ve estetik anlay\u0131\u015f\u0131n\u0131z\u0131 yans\u0131t\u0131r. \u0130yi d\u00fc\u015f\u00fcn\u00fclm\u00fc\u015f bir tasar\u0131m ve ak\u0131c\u0131 bir kullan\u0131c\u0131 deneyimi (UX), i\u015fverenlere sadece iyi bir kod yazmad\u0131\u011f\u0131n\u0131z\u0131, ayn\u0131 zamanda kullan\u0131c\u0131 odakl\u0131 d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcn\u00fcz\u00fc de g\u00f6sterir. \u00d6zetle, React portfolyo sitesi, sadece bir CV de\u011fil, ayn\u0131 zamanda teknik bir kartvizit, bir yetenek vitrini ve profesyonel kimli\u011finizin dijital bir uzant\u0131s\u0131d\u0131r.<\/p>\n<p><code><br \/>\n  Uzman \u0130pucu: \u0130\u015f ba\u015fvurular\u0131nda, portfolyo sitenizin URL'sini CV'nizin en \u00fcst k\u0131sm\u0131na ekleyerek potansiyel i\u015fverenlerin dikkatini hemen \u00e7ekin. Bu, ilk izlenimin olu\u015fmas\u0131nda kritik rol oynar!<br \/>\n<\/code><\/p>\n<h2>React Portfolyo Sitesi Olu\u015fturman\u0131n Temel Ad\u0131mlar\u0131 Nelerdir? (S\u0131f\u0131rdan Ba\u015flang\u0131\u00e7)<\/h2>\n<p>Bir React portfolyo sitesi olu\u015fturma yolculu\u011funa \u00e7\u0131kmak, heyecan verici ve \u00f6\u011fretici bir s\u00fcre\u00e7tir. Bu b\u00f6l\u00fcmde, s\u0131f\u0131rdan ba\u015flayarak ad\u0131m ad\u0131m kendi sitenizi nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, hangi ara\u00e7lara ihtiyac\u0131n\u0131z olaca\u011f\u0131n\u0131 ve temel yap\u0131 ta\u015flar\u0131n\u0131 nas\u0131l in\u015fa edece\u011finizi detayland\u0131raca\u011f\u0131z. Amac\u0131m\u0131z, hem yeni ba\u015flayanlar i\u00e7in anla\u015f\u0131l\u0131r bir rehber sunmak hem de deneyimli geli\u015ftiricilere hat\u0131rlat\u0131c\u0131 bilgiler vermek.<\/p>\n<p>\u0130lk olarak, React projesi geli\u015ftirmeye ba\u015flamadan \u00f6nce sisteminizde belirli \u00f6nko\u015fullar\u0131n kurulu olmas\u0131 gerekir. Bunlar\u0131n ba\u015f\u0131nda Node.js ve bir paket y\u00f6neticisi olan npm (Node Package Manager) veya Yarn gelir. Node.js&#8217;i <a href=\"https:\/\/nodejs.org\/\" target=\"_blank\">resmi web sitesinden<\/a> indirebilirsiniz. Kurulum tamamland\u0131\u011f\u0131nda, terminalinizde a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131rarak do\u011fru \u015fekilde y\u00fcklendi\u011finden emin olabilirsiniz:<\/p>\n<pre><code>\nnode -v\nnpm -v\n<\/pre>\n<p><\/code><\/p>\n<p>Bu komutlar, kurulu Node.js ve npm versiyonlar\u0131n\u0131 g\u00f6sterecektir. E\u011fer Yarn kullanmay\u0131 tercih ediyorsan\u0131z, npm arac\u0131l\u0131\u011f\u0131yla \u015fu \u015fekilde kurabilirsiniz:<\/p>\n<pre><code>\nnpm install -g yarn\nyarn -v\n<\/pre>\n<p><\/code><\/p>\n<p>Node.js ve paket y\u00f6neticiniz haz\u0131r oldu\u011funda, bir React projesi olu\u015fturman\u0131n en kolay yolu <code>create-react-app<\/code> arac\u0131n\u0131 kullanmakt\u0131r. Bu ara\u00e7, React uygulamalar\u0131 i\u00e7in standart bir geli\u015ftirme ortam\u0131 kurarak, yap\u0131land\u0131rma i\u015flemleriyle u\u011fra\u015fmadan hemen kod yazmaya ba\u015flaman\u0131za olanak tan\u0131r. Yeni bir portfolyo projesi olu\u015fturmak i\u00e7in terminalinizde a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>\nnpx create-react-app benim-portfolyom\n<\/pre>\n<p><\/code><\/p>\n<p><code>benim-portfolyom<\/code> yerine istedi\u011finiz bir proje ad\u0131n\u0131 yazabilirsiniz. Bu komut, gerekli t\u00fcm dosyalar\u0131 ve ba\u011f\u0131ml\u0131l\u0131klar\u0131 i\u00e7eren yeni bir dizin olu\u015fturacakt\u0131r. Kurulum tamamland\u0131\u011f\u0131nda, proje dizininize gidin ve geli\u015ftirme sunucusunu ba\u015flat\u0131n:<\/p>\n<pre><code>\ncd benim-portfolyom\nnpm start\n# veya yarn start\n<\/pre>\n<p><\/code><\/p>\n<p>Taray\u0131c\u0131n\u0131z otomatik olarak <code>http:\/\/localhost:3000<\/code> adresinde basit bir React uygulamas\u0131n\u0131 a\u00e7acakt\u0131r. \u0130\u015fte bu, portfolyo sitenizin temelidir!<\/p>\n<h3>Portfolyonuzu Tasarlarken Hangi Bile\u015fenleri Kullanmal\u0131s\u0131n\u0131z? (Kod \u00d6rnekleriyle)<\/h3>\n<p>React'in en g\u00fc\u00e7l\u00fc yanlar\u0131ndan biri, uygulaman\u0131z\u0131 k\u00fc\u00e7\u00fck, y\u00f6netilebilir ve tekrar kullan\u0131labilir bile\u015fenlere (componentlere) ay\u0131rma yetene\u011fidir. Bir portfolyo sitesi i\u00e7in genellikle a\u015fa\u011f\u0131daki ana bile\u015fenler kullan\u0131l\u0131r:<\/p>\n<ul>\n<li><strong>Navbar (Navigasyon \u00c7ubu\u011fu):<\/strong> Sitenin \u00fcst k\u0131sm\u0131nda yer alan, farkl\u0131 b\u00f6l\u00fcmler aras\u0131nda gezinmeyi sa\u011flayan sabit bir bile\u015fen.<\/li>\n<li><strong>Hero (Giri\u015f B\u00f6l\u00fcm\u00fc):<\/strong> Sitenin en \u00fcst\u00fcnde, genellikle ad\u0131n\u0131z\u0131, ba\u015fl\u0131\u011f\u0131n\u0131z\u0131 ve k\u0131sa bir tan\u0131t\u0131m metninizi i\u00e7eren ilk g\u00f6rd\u00fc\u011f\u00fcn\u00fcz b\u00f6l\u00fcm.<\/li>\n<li><strong>About (Hakk\u0131mda):<\/strong> Kendinizi, deneyimlerinizi, e\u011fitim bilgilerinizi ve ilgi alanlar\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde anlatt\u0131\u011f\u0131n\u0131z b\u00f6l\u00fcm.<\/li>\n<li><strong>Skills (Yetenekler):<\/strong> Teknik becerilerinizi (React, JavaScript, HTML, CSS, Node.js vb.) g\u00f6rsel olarak sergiledi\u011finiz k\u0131s\u0131m.<\/li>\n<li><strong>Projects (Projeler):<\/strong> Bitirdi\u011finiz veya \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z projeleri a\u00e7\u0131klay\u0131c\u0131 bilgiler, canl\u0131 demo ve GitHub ba\u011flant\u0131lar\u0131yla sundu\u011funuz en kritik b\u00f6l\u00fcm.<\/li>\n<li><strong>Contact (\u0130leti\u015fim):<\/strong> Ziyaret\u00e7ilerin sizinle ileti\u015fime ge\u00e7ebilece\u011fi bir form veya ileti\u015fim bilgilerinizi i\u00e7eren b\u00f6l\u00fcm.<\/li>\n<\/ul>\n<p>Bu bile\u015fenleri <code>src\/components<\/code> gibi bir dizin alt\u0131nda organize etmek, projenizin yap\u0131s\u0131n\u0131 d\u00fczenli tutman\u0131za yard\u0131mc\u0131 olur. \u00d6rne\u011fin, basit bir <code>Hero<\/code> bile\u015feni \u015fu \u015fekilde g\u00f6r\u00fcnebilir:<\/p>\n<pre><code>\n\/\/ src\/components\/Hero.js\nimport React from 'react';\nimport '.\/Hero.css'; \/\/ Stil dosyas\u0131n\u0131 dahil edin\n\nconst Hero = () => {\n  return (\n    <section className=\"hero\">\n      <div className=\"hero-content\">\n        <h1>Merhaba, Ben [Ad\u0131n\u0131z Soyad\u0131n\u0131z]<\/h1>\n        <p>Yaz\u0131l\u0131m Geli\u015ftirici | Frontend Uzman\u0131<\/p>\n        <a href=\"#contact\" className=\"btn-primary\">Benimle \u0130leti\u015fime Ge\u00e7in<\/a>\n      <\/div>\n    <\/section>\n  );\n};\n\nexport default Hero;\n<\/pre>\n<p><\/code><\/p>\n<p>Bu bile\u015feni <code>App.js<\/code> dosyan\u0131zda i\u00e7e aktararak ve render ederek ana sayfan\u0131za ekleyebilirsiniz:<\/p>\n<pre><code>\n\/\/ src\/App.js\nimport React from 'react';\nimport Hero from '.\/components\/Hero';\nimport Navbar from '.\/components\/Navbar'; \/\/ Di\u011fer bile\u015fenleri de ekleyin\nimport About from '.\/components\/About';\nimport Skills from '.\/components\/Skills';\nimport Projects from '.\/components\/Projects';\nimport Contact from '.\/components\/Contact';\nimport '.\/App.css';\n\nfunction App() {\n  return (\n    <div className=\"App\">\n      <Navbar \/>\n      <Hero \/>\n      <About \/>\n      <Skills \/>\n      <Projects \/>\n      <Contact \/>\n    <\/div>\n  );\n}\n\nexport default App;\n<\/pre>\n<p><\/code><\/p>\n<p><strong>Mobil Uyumluluk \u0130\u00e7in Ne Yapmal\u0131s\u0131n\u0131z?<\/strong><\/p>\n<p>G\u00fcn\u00fcm\u00fczde mobil cihazlardan internete eri\u015fim oran\u0131 masa\u00fcst\u00fc cihazlar\u0131 geride b\u0131rakm\u0131\u015ft\u0131r. Bu nedenle, portfolyo sitenizin mobil uyumlu (responsive) olmas\u0131 hayati \u00f6neme sahiptir. CSS Media Query'ler, sitenizin farkl\u0131 ekran boyutlar\u0131na ve cihaz tiplerine g\u00f6re nas\u0131l g\u00f6r\u00fcnece\u011fini ayarlaman\u0131za olanak tan\u0131r. \u00d6rne\u011fin, <code>Hero<\/code> bile\u015feniniz i\u00e7in basit bir mobil uyumluluk ayar\u0131 \u015f\u00f6yle olabilir:<\/p>\n<pre><code>\n\/* src\/components\/Hero.css *\/\n.hero {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  min-height: 100vh;\n  background-color: #f0f2f5;\n  text-align: center;\n  padding: 20px;\n}\n\n.hero-content h1 {\n  font-size: 3em;\n  margin-bottom: 10px;\n}\n\n.hero-content p {\n  font-size: 1.5em;\n  color: #555;\n  margin-bottom: 30px;\n}\n\n.btn-primary {\n  background-color: #007bff;\n  color: white;\n  padding: 12px 25px;\n  border-radius: 5px;\n  text-decoration: none;\n  font-size: 1.1em;\n  transition: background-color 0.3s ease;\n}\n\n.btn-primary:hover {\n  background-color: #0056b3;\n}\n\n\/* Mobil cihazlar i\u00e7in stil (768px'den k\u00fc\u00e7\u00fck ekranlar) *\/\n@media (max-width: 768px) {\n  .hero-content h1 {\n    font-size: 2em; \/* Daha k\u00fc\u00e7\u00fck ba\u015fl\u0131k boyutu *\/\n  }\n  .hero-content p {\n    font-size: 1.2em; \/* Daha k\u00fc\u00e7\u00fck paragraf boyutu *\/\n  }\n  .btn-primary {\n    padding: 10px 20px; \/* Daha k\u00fc\u00e7\u00fck buton boyutu *\/\n  }\n}\n\n\/* \u00c7ok k\u00fc\u00e7\u00fck ekranlar i\u00e7in stil (480px'den k\u00fc\u00e7\u00fck ekranlar) *\/\n@media (max-width: 480px) {\n  .hero-content h1 {\n    font-size: 1.5em;\n  }\n  .hero-content p {\n    font-size: 1em;\n  }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu media query \u00f6rnekleri, sitenizin farkl\u0131 ekran boyutlar\u0131nda daha iyi g\u00f6r\u00fcnmesini sa\u011flayarak kullan\u0131c\u0131 deneyimini iyile\u015ftirecektir. CSS mod\u00fclleri, Styled Components veya Tailwind CSS gibi modern stil yakla\u015f\u0131mlar\u0131n\u0131 da de\u011ferlendirerek daha \u00f6l\u00e7eklenebilir ve bak\u0131m\u0131 kolay stil y\u00f6netimi sa\u011flayabilirsiniz. Her bir bile\u015feni ayr\u0131 ayr\u0131 ele almak ve her birinin mobil uyumlulu\u011funu test etmek, genel olarak daha ba\u015far\u0131l\u0131 bir portfolyo olu\u015fturman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<p><code><br \/>\n  Uzman \u0130pucu: Portfolyo sitenizin geli\u015ftirme a\u015famas\u0131nda taray\u0131c\u0131n\u0131z\u0131n geli\u015ftirici ara\u00e7lar\u0131ndaki \"Responsive Design Mode\" \u00f6zelli\u011fini kullanarak farkl\u0131 cihaz boyutlar\u0131nda sitenizi kolayca test edebilirsiniz.<br \/>\n<\/code><\/p>\n<h2>Projelerinizi Etkili Bir \u015eekilde Nas\u0131l Sergilersiniz? (Vaka Analizi: Mehmet'in Ba\u015far\u0131s\u0131)<\/h2>\n<p>Bir portfolyo sitesinin kalbi, ku\u015fkusuz, \"Projeler\" b\u00f6l\u00fcm\u00fcd\u00fcr. Buras\u0131, teorik bilgilerinizi pratik uygulamalara nas\u0131l d\u00f6n\u00fc\u015ft\u00fcrd\u00fc\u011f\u00fcn\u00fcz\u00fc g\u00f6sterdi\u011finiz sahnedir. Ancak sadece projelerinizi listelemek yeterli de\u011fildir; onlar\u0131 etkileyici ve anla\u015f\u0131l\u0131r bir \u015fekilde sunmak, potansiyel i\u015fverenlerin dikkatini \u00e7ekmenin anahtar\u0131d\u0131r. Peki, projelerinizi en verimli \u015fekilde nas\u0131l sergileyebilirsiniz?<\/p>\n<p>\u00d6ncelikle, her proje i\u00e7in ayr\u0131nt\u0131l\u0131 bir \"proje kart\u0131\" veya \"proje sayfas\u0131\" olu\u015fturmal\u0131s\u0131n\u0131z. Bu kartlar, projenin k\u0131sa bir tan\u0131t\u0131m\u0131n\u0131, kullan\u0131lan teknolojileri, canl\u0131 demoya veya GitHub deposuna ba\u011flant\u0131lar\u0131 ve e\u011fer varsa, ekran g\u00f6r\u00fcnt\u00fclerini veya k\u0131sa bir tan\u0131t\u0131m videosunu i\u00e7ermelidir. Her projenin ne t\u00fcr bir problemi \u00e7\u00f6zd\u00fc\u011f\u00fcn\u00fc ve sizin bu problemde hangi rol\u00fc \u00fcstlendi\u011finizi net bir \u015fekilde belirtin. Projelerinizi sergilerken, sadece \"bitmi\u015f\" olmalar\u0131na de\u011fil, ayn\u0131 zamanda size en \u00e7ok ne \u00f6\u011frettiklerine veya hangi becerilerinizi en iyi yans\u0131tt\u0131klar\u0131na odaklan\u0131n.<\/p>\n<p><strong>Vaka Analizi: Mehmet'in Ba\u015far\u0131s\u0131<\/strong><\/p>\n<p>Mehmet, kodlama kamp\u0131ndan yeni mezun olmu\u015f hevesli bir geli\u015ftiriciydi. \u0130lk ba\u015fta portfolyosuna sadece projelerinin isimlerini ve GitHub linklerini eklemi\u015fti. Birka\u00e7 i\u015f ba\u015fvurusundan sonra bekledi\u011fi geri d\u00f6n\u00fc\u015fleri alamay\u0131nca, portfolyo stratejisini de\u011fi\u015ftirmeye karar verdi. Her projesi i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 uygulad\u0131:<\/p>\n<ol>\n<li><strong>Kapsaml\u0131 A\u00e7\u0131klamalar:<\/strong> Her projenin \"problem beyan\u0131n\u0131\" ve \"\u00e7\u00f6z\u00fcm\u00fcn\u00fc\" a\u00e7\u0131k\u00e7a anlatt\u0131. \u00d6rne\u011fin, \"E-ticaret Sitesi\" yerine, \"Kullan\u0131c\u0131lar\u0131n kolayca \u00fcr\u00fcn aramas\u0131n\u0131 ve al\u0131\u015fveri\u015f yapmas\u0131n\u0131 sa\u011flayan, React ve Redux ile geli\u015ftirilmi\u015f dinamik bir e-ticaret platformu\" gibi daha detayl\u0131 bir a\u00e7\u0131klama ekledi.<\/li>\n<li><strong>Ana \u00d6zellikler Listesi:<\/strong> Projenin en \u00f6nemli 3-5 \u00f6zelli\u011fini madde madde s\u0131ralad\u0131. Bu, i\u015fverenlerin h\u0131zl\u0131ca projenin yeteneklerini anlamas\u0131na yard\u0131mc\u0131 oldu.<\/li>\n<li><strong>Teknoloji Y\u0131\u011f\u0131n\u0131:<\/strong> Projede kulland\u0131\u011f\u0131 her bir teknolojiyi (\u00f6rne\u011fin, React, TypeScript, Node.js, Express, MongoDB, Tailwind CSS) a\u00e7\u0131k\u00e7a belirtti ve bunlar\u0131n projeye ne katt\u0131\u011f\u0131n\u0131 k\u0131saca \u00f6zetledi.<\/li>\n<li><strong>Canl\u0131 Demo Ba\u011flant\u0131s\u0131:<\/strong> Her projesi i\u00e7in bir canl\u0131 demo ba\u011flant\u0131s\u0131 (Netlify veya Vercel \u00fczerinden) ekledi. Bu, i\u015fverenlerin kodu indirmeden veya \u00e7al\u0131\u015ft\u0131rmadan projeyi do\u011frudan deneyimlemesini sa\u011flad\u0131.<\/li>\n<li><strong>GitHub Deposuna Link:<\/strong> Kod kalitesini ve versiyon kontrol\u00fc becerilerini g\u00f6stermek i\u00e7in temiz ve iyi belgelenmi\u015f GitHub reposu linkleri sa\u011flad\u0131.<\/li>\n<li><strong>G\u00f6rsel Malzemeler:<\/strong> Projelerinden y\u00fcksek kaliteli ekran g\u00f6r\u00fcnt\u00fcleri ekledi. Baz\u0131 projeler i\u00e7in, uygulaman\u0131n temel ak\u0131\u015f\u0131n\u0131 g\u00f6steren k\u0131sa bir GIF veya video da kulland\u0131.<\/li>\n<li><strong>\u00d6\u011frenilen Dersler ve Gelecek Planlar\u0131:<\/strong> Her projenin sonunda, bu projeden ne \u00f6\u011frendi\u011fini, hangi zorluklar\u0131n \u00fcstesinden geldi\u011fini ve gelecekte projeyi nas\u0131l geli\u015ftirmeyi planlad\u0131\u011f\u0131n\u0131 anlatan k\u0131sa bir paragraf ekledi. Bu, Mehmet'in \u00f6z ele\u015ftiri yapabilme ve s\u00fcrekli \u00f6\u011frenme arzusunu g\u00f6sterdi.<\/li>\n<\/ol>\n<p>Bu de\u011fi\u015fikliklerden sonra Mehmet, i\u015f ba\u015fvurular\u0131na g\u00f6nderdi\u011fi portfolyosundan \u00e7ok daha fazla geri d\u00f6n\u00fc\u015f almaya ba\u015flad\u0131. \u0130\u015fverenler, onun sadece kod yazmakla kalmay\u0131p, ayn\u0131 zamanda projeyi sahiplenen, problem \u00e7\u00f6zmeye odaklanan ve kendisini s\u00fcrekli geli\u015ftiren bir aday oldu\u011funu g\u00f6rd\u00fcler. Mehmet'in bu yakla\u015f\u0131m\u0131, nihayetinde hayalindeki Frontend Geli\u015ftirici pozisyonunu almas\u0131n\u0131 sa\u011flad\u0131.<\/p>\n<p>Kendi projeniz i\u00e7in bir proje kart\u0131 bile\u015feni olu\u015ftururken, dinamik verileri kullanmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz. Projelerinizi bir JavaScript dizisi (array) i\u00e7inde tan\u0131mlayarak, her bir proje i\u00e7in ayn\u0131 bile\u015feni tekrar tekrar render edebilirsiniz. Bu, kod tekrar\u0131n\u0131 \u00f6nler ve yeni projeler eklemeyi kolayla\u015ft\u0131r\u0131r:<\/p>\n<pre><code>\n\/\/ src\/data\/projects.js (\u00d6rnek Proje Verileri)\nconst projects = [\n  {\n    id: 1,\n    title: \"E-Ticaret Uygulamas\u0131\",\n    description: \"Kullan\u0131c\u0131lar\u0131n \u00fcr\u00fcnleri gezinebilece\u011fi, sepete ekleyebilece\u011fi ve sat\u0131n alabilece\u011fi tam \u00f6zellikli bir e-ticaret platformu.\",\n    technologies: [\"React\", \"Redux\", \"Node.js\", \"Express\", \"MongoDB\", \"Stripe API\"],\n    liveUrl: \"https:\/\/my-ecommerce-demo.netlify.app\",\n    githubUrl: \"https:\/\/github.com\/yourusername\/ecommerce-app\",\n    imageUrl: \"\/images\/ecommerce-screenshot.png\",\n  },\n  {\n    id: 2,\n    title: \"G\u00f6rev Y\u00f6netim Paneli\",\n    description: \"Kullan\u0131c\u0131lar\u0131n g\u00f6revlerini olu\u015fturmas\u0131na, d\u00fczenlemesine ve silmesine olanak tan\u0131yan bir g\u00f6rev y\u00f6netim arac\u0131.\",\n    technologies: [\"React\", \"Context API\", \"CSS Modules\"],\n    liveUrl: \"https:\/\/task-manager-demo.netlify.app\",\n    githubUrl: \"https:\/\/github.com\/yourusername\/task-manager\",\n    imageUrl: \"\/images\/task-manager-screenshot.png\",\n  },\n  \/\/ Daha fazla proje ekleyebilirsiniz\n];\n\nexport default projects;\n<\/pre>\n<p><\/code><\/p>\n<pre><code>\n\/\/ src\/components\/ProjectCard.js\nimport React from 'react';\nimport '.\/ProjectCard.css';\n\nconst ProjectCard = ({ project }) => {\n  return (\n    <div className=\"project-card\">\n      <img src={project.imageUrl} alt={project.title} className=\"project-image\" \/>\n      <h3>{project.title}<\/h3>\n      <p>{project.description}<\/p>\n      <div className=\"project-techs\">\n        {project.technologies.map((tech, index) => (\n          <span key={index} className=\"tech-badge\">{tech}<\/span>\n        ))}\n      <\/div>\n      <div className=\"project-links\">\n        <a href={project.liveUrl} target=\"_blank\" rel=\"noopener noreferrer\" className=\"btn-secondary\">Canl\u0131 Demo<\/a>\n        <a href={project.githubUrl} target=\"_blank\" rel=\"noopener noreferrer\" className=\"btn-secondary\">GitHub<\/a>\n      <\/div>\n    <\/div>\n  );\n};\n\nexport default ProjectCard;\n<\/pre>\n<p><\/code><\/p>\n<pre><code>\n\/\/ src\/components\/Projects.js\nimport React from 'react';\nimport ProjectCard from '.\/ProjectCard';\nimport projects from '..\/data\/projects'; \/\/ Proje verilerini i\u00e7e aktar\u0131n\nimport '.\/Projects.css';\n\nconst Projects = () => {\n  return (\n    <section id=\"projects\" className=\"projects-section\">\n      <h2>Projelerim<\/h2>\n      <div className=\"projects-grid\">\n        {projects.map((project) => (\n          <ProjectCard key={project.id} project={project} \/>\n        ))}\n      <\/div>\n    <\/section>\n  );\n};\n\nexport default Projects;\n<\/pre>\n<p><\/code><\/p>\n<p>Bu yap\u0131land\u0131rma, portfolyonuzu hem dinamik hem de s\u00fcrd\u00fcr\u00fclebilir hale getirir. Her projeye \u00f6zel olarak olu\u015fturulmu\u015f bir kart ile i\u015fverenlerin projenizin detaylar\u0131na h\u0131zla eri\u015fmesini sa\u011flarken, ayn\u0131 zamanda sizin kodlama yetkinli\u011finizi ve d\u00fczenli \u00e7al\u0131\u015fma prensiplerinizi de ortaya koyar.<\/p>\n<p><code><br \/>\n  Uzman \u0130pucu: Projelerinizin a\u00e7\u0131klama k\u0131sm\u0131nda, \"\u015eu teknolojiyi kullanarak X problemini \u00e7\u00f6zd\u00fcm\" gibi c\u00fcmleler kurmak yerine, \"Bu proje ile X becerimi geli\u015ftirdim ve Y sorununa Z \u00e7\u00f6z\u00fcm\u00fc getirdim\" \u015feklinde, ki\u015fisel katk\u0131n\u0131z\u0131 ve \u00f6\u011frenimlerinizi vurgulay\u0131n.<br \/>\n<\/code><\/p>\n<h2>\u0130leri D\u00fczey Optimizasyonlar ve En \u0130yi Uygulamalar Nelerdir? (Performans ve SEO \u0130pu\u00e7lar\u0131)<\/h2>\n<p>React portfolyo sitenizi temel seviyede kurduktan sonra, onu daha profesyonel ve etkili hale getirmek i\u00e7in ileri d\u00fczey optimizasyonlara ve en iyi uygulamalara y\u00f6nelmek olduk\u00e7a \u00f6nemlidir. Bu ad\u0131mlar, sitenizin sadece g\u00fczel g\u00f6r\u00fcnmesini sa\u011flamakla kalmaz, ayn\u0131 zamanda h\u0131zl\u0131, eri\u015filebilir ve arama motorlar\u0131 taraf\u0131ndan kolayca bulunabilir olmas\u0131n\u0131 da garanti eder. Performans, SEO (Arama Motoru Optimizasyonu) ve kullan\u0131c\u0131 deneyimi (UX) gibi fakt\u00f6rler, sizi rakiplerinizden ay\u0131racak kritik detaylard\u0131r.<\/p>\n<h3>Performans Optimizasyonu Nas\u0131l Yap\u0131l\u0131r?<\/h3>\n<p>H\u0131zl\u0131 y\u00fcklenen bir web sitesi, kullan\u0131c\u0131 deneyimi a\u00e7\u0131s\u0131ndan vazge\u00e7ilmezdir. React uygulamalar\u0131nda performans\u0131 art\u0131rmak i\u00e7in \u00e7e\u015fitli teknikler mevcuttur:<\/p>\n<ol>\n<li><strong>Kod B\u00f6lme (Code Splitting) ve Tembel Y\u00fckleme (Lazy Loading):<\/strong> B\u00fcy\u00fck React uygulamalar\u0131nda, t\u00fcm kodun tek seferde y\u00fcklenmesi performans\u0131 d\u00fc\u015f\u00fcrebilir. Kod b\u00f6lme ile uygulaman\u0131z\u0131n farkl\u0131 b\u00f6l\u00fcmlerini ayr\u0131 JS paketlerine ay\u0131rabilirsiniz. <code>React.lazy()<\/code> ve <code>Suspense<\/code> kullanarak bile\u015fenleri yaln\u0131zca ihtiya\u00e7 duyuldu\u011funda y\u00fckleyebilirsiniz. \u00d6rne\u011fin, ileti\u015fim formu veya ileri d\u00fczey projeler b\u00f6l\u00fcm\u00fc gibi nadiren ziyaret edilen k\u0131s\u0131mlar\u0131 tembel y\u00fckleyebilirsiniz.<\/li>\n<pre><code>\n\/\/ src\/App.js\nimport React, { Suspense, lazy } from 'react';\nconst About = lazy(() => import('.\/components\/About'));\nconst Projects = lazy(() => import('.\/components\/Projects'));\n\nfunction App() {\n  return (\n    <div>\n      {\/* ... Di\u011fer bile\u015fenler ... *\/}\n      <Suspense fallback={<div>Y\u00fckleniyor...<\/div>}>\n        <About \/>\n        <Projects \/>\n      <\/Suspense>\n      {\/* ... *\/}\n    <\/div>\n  );\n}\nexport default App;\n    <\/pre>\n<p><\/code><\/p>\n<li><strong>Gereksiz Yeniden Render Etmeyi Engelleme:<\/strong> React'in <code>React.memo()<\/code> (fonksiyonel bile\u015fenler i\u00e7in) veya <code>shouldComponentUpdate<\/code> (s\u0131n\u0131f bile\u015fenleri i\u00e7in) kullan\u0131m\u0131yla, bir bile\u015fen yaln\u0131zca prop'lar\u0131 veya state'i de\u011fi\u015fti\u011finde yeniden render edilmesini sa\u011flayabilirsiniz. Bu, \u00f6zellikle veri yo\u011fun bile\u015fenlerde performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/li>\n<li><strong>Resim Optimizasyonu:<\/strong> Portfolyo sitenizde y\u00fcksek \u00e7\u00f6z\u00fcn\u00fcrl\u00fckl\u00fc g\u00f6rseller kullanmak cazip gelse de, bu sitenizin y\u00fcklenme s\u00fcresini yava\u015flatabilir. G\u00f6rselleri optimize etmek i\u00e7in \u015funlar\u0131 yap\u0131n:\n<ul>\n<li>G\u00f6rsel boyutlar\u0131n\u0131 web i\u00e7in uygun hale getirin (\u00f6rne\u011fin, <code>max-width: 100%<\/code>).<\/li>\n<li><code>.webp<\/code> gibi modern formatlar kullan\u0131n.<\/li>\n<li>G\u00f6rselleri s\u0131k\u0131\u015ft\u0131rmak i\u00e7in online ara\u00e7lar (TinyPNG, Squoosh) veya otomasyon ara\u00e7lar\u0131 kullan\u0131n.<\/li>\n<li>Tembel y\u00fckleme (<code>loading=\"lazy\"<\/code>) \u00f6zelli\u011fini resimlerde kullan\u0131n.<\/li>\n<\/ul>\n<\/li>\n<li><strong>CDN Kullan\u0131m\u0131:<\/strong> Statik dosyalar\u0131n\u0131z\u0131 (resimler, CSS, JS) bir \u0130\u00e7erik Da\u011f\u0131t\u0131m A\u011f\u0131 (CDN) \u00fczerinden sunmak, kullan\u0131c\u0131lar\u0131n\u0131za co\u011frafi olarak en yak\u0131n sunucudan i\u00e7erik g\u00f6nderilmesini sa\u011flayarak y\u00fckleme s\u00fcrelerini h\u0131zland\u0131r\u0131r. Netlify veya Vercel gibi platformlar bunu otomatik olarak yapar.<\/li>\n<\/ol>\n<h3>React Uygulamalar\u0131 \u0130\u00e7in SEO Optimizasyonu Nas\u0131l Yap\u0131l\u0131r?<\/h3>\n<p>Tek sayfa uygulamalar\u0131 (SPA'lar) olarak React uygulamalar\u0131, geleneksel sunucu tarafl\u0131 render edilen sitelere k\u0131yasla SEO konusunda baz\u0131 zorluklar \u00e7\u0131karabilir. Ancak bu zorluklar\u0131n \u00fcstesinden gelmek m\u00fcmk\u00fcnd\u00fcr:<\/p>\n<ol>\n<li><strong>Sunucu Tarafl\u0131 Render (SSR) veya Statik Site \u00dcretimi (SSG):<\/strong> Arama motoru taray\u0131c\u0131lar\u0131 JavaScript'i yorumlayabilir, ancak bazen ilk y\u00fcklemede tam i\u00e7eri\u011fi g\u00f6remeyebilirler. Next.js veya Gatsby gibi \u00e7er\u00e7eveler kullanarak uygulaman\u0131z\u0131 sunucu taraf\u0131nda render edebilir (SSR) veya statik HTML dosyalar\u0131 olarak derleyebilir (SSG) ve b\u00f6ylece arama motorlar\u0131n\u0131n sitenizi daha iyi indekslemesini sa\u011flayabilirsiniz. Bu, \u00f6zellikle portfolyo sitenizdeki proje detay sayfalar\u0131 gibi dinamik i\u00e7erikler i\u00e7in faydal\u0131d\u0131r.<\/li>\n<li><strong>Meta Etiket Y\u00f6netimi (<code>react-helmet<\/code>):<\/strong> Her sayfan\u0131n veya bile\u015fenin kendi \u00f6zel ba\u015fl\u0131k (<code><title><\/code>) ve meta a\u00e7\u0131klamas\u0131na (<code><meta name=\"description\"><\/code>) sahip olmas\u0131 SEO i\u00e7in kritiktir. <code>react-helmet<\/code> k\u00fct\u00fcphanesi, React bile\u015fenleriniz i\u00e7inden belge ba\u015fl\u0131\u011f\u0131n\u0131 ve meta etiketlerini y\u00f6netmenize olanak tan\u0131r.<\/li>\n<pre><code>\n\/\/ src\/components\/Seo.js\nimport React from 'react';\nimport { Helmet } from 'react-helmet';\n\nconst Seo = ({ title, description, url, imageUrl }) => {\n  return (\n    <Helmet>\n      <title>{title} | Benim Portfolyom<\/title>\n      <meta name=\"description\" content={description} \/>\n      <link rel=\"canonical\" href={url} \/>\n      {\/* Open Graph \/ Facebook *\/}\n      <meta property=\"og:type\" content=\"website\" \/>\n      <meta property=\"og:url\" content={url} \/>\n      <meta property=\"og:title\" content={title} \/>\n      <meta property=\"og:description\" content={description} \/>\n      <meta property=\"og:image\" content={imageUrl} \/>\n      {\/* Twitter *\/}\n      <meta property=\"twitter:card\" content=\"summary_large_image\" \/>\n      <meta property=\"twitter:url\" content={url} \/>\n      <meta property=\"twitter:title\" content={title} \/>\n      <meta property=\"twitter:description\" content={description} \/>\n      <meta property=\"twitter:image\" content={imageUrl} \/>\n    <\/Helmet>\n  );\n};\n\nexport default Seo;\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu bile\u015feni her sayfan\u0131zda kullanarak sayfa bazl\u0131 SEO ayarlamalar\u0131 yapabilirsiniz.<\/p>\n<li><strong>Anlaml\u0131 URL'ler:<\/strong> Sayfalar\u0131n\u0131z i\u00e7in a\u00e7\u0131klay\u0131c\u0131 ve anahtar kelime i\u00e7eren URL'ler kullan\u0131n (\u00f6rne\u011fin, <code>\/projeler\/e-ticaret-uygulamasi<\/code> yerine <code>\/project-1<\/code>).<\/li>\n<li><strong>Site Haritas\u0131 (Sitemap) ve Robots.txt:<\/strong> Arama motorlar\u0131n\u0131n sitenizi kolayca taramas\u0131n\u0131 sa\u011flamak i\u00e7in bir <code>sitemap.xml<\/code> dosyas\u0131 olu\u015fturun ve <code>robots.txt<\/code> dosyan\u0131z\u0131 do\u011fru \u015fekilde yap\u0131land\u0131r\u0131n. \u00d6zellikle Next.js gibi framework'ler bu konuda size yard\u0131mc\u0131 olur.<\/li>\n<li><strong>Eri\u015filebilirlik (Accessibility - A11y):<\/strong> Eri\u015filebilir bir web sitesi sadece iyi bir kullan\u0131c\u0131 deneyimi sunmakla kalmaz, ayn\u0131 zamanda SEO i\u00e7in de \u00f6nemlidir. Anlamsal HTML kullan\u0131n, klavye navigasyonunu destekleyin, resimler i\u00e7in <code>alt<\/code> nitelikleri ekleyin ve yeterli kontrast oranlar\u0131 kullan\u0131n.<\/li>\n<\/ol>\n<p>T\u00fcm bu optimizasyonlar, portfolyo sitenizin sadece i\u015flevsel olmakla kalmay\u0131p, ayn\u0131 zamanda daha geni\u015f bir kitleye ula\u015fmas\u0131n\u0131 ve profesyonel imaj\u0131n\u0131z\u0131 g\u00fc\u00e7lendirmesini sa\u011flayacakt\u0131r. S\u00fcrekli olarak sitenizin performans\u0131n\u0131 test etmek (\u00f6rne\u011fin Google Lighthouse ile) ve SEO uyumlulu\u011funu kontrol etmek, uzun vadeli ba\u015far\u0131n\u0131n anahtar\u0131d\u0131r.<\/p>\n<p><code><br \/>\n  Uzman \u0130pucu: Portfolyo sitenizi yay\u0131nlamadan \u00f6nce Google Lighthouse ve GTmetrix gibi ara\u00e7larla detayl\u0131 bir performans ve eri\u015filebilirlik analizi yap\u0131n. Elde etti\u011finiz skorlar\u0131 y\u00fckseltmek i\u00e7in \u00f6nerileri uygulay\u0131n!<br \/>\n<\/code><\/p>\n<h2>Sonu\u00e7: Kariyer Yolculu\u011funuzda React Portfolyo Sitesinin \u00d6nemi<\/h2>\n<p>Kodlama kamp\u0131ndan sonraki en \u00f6nemli ad\u0131mlardan biri olan harika bir React portfolyo sitesi olu\u015fturma ser\u00fcvenimizi tamamlad\u0131k. Bu makale boyunca, neden bir React portfolyosuna ihtiyac\u0131n\u0131z oldu\u011fundan, temel kurulum ad\u0131mlar\u0131ndan, bile\u015fen yap\u0131lar\u0131ndan, projelerinizi etkili bir \u015fekilde sergileme stratejilerinden ve mobil uyumluluktan, nihayetinde performans ve SEO gibi ileri d\u00fczey optimizasyonlara kadar bir\u00e7ok konuyu ele ald\u0131k. Unutmay\u0131n ki, bir portfolyo sitesi sadece bitmi\u015f projelerinizi listeledi\u011finiz bir yer de\u011fildir; ayn\u0131 zamanda teknik yeteneklerinizi, problem \u00e7\u00f6zme becerilerinizi, estetik anlay\u0131\u015f\u0131n\u0131z\u0131 ve \u00f6\u011frenme motivasyonunuzu yans\u0131tan dinamik bir platformdur. Mehmet'in vaka analizi, projeleri sadece \"yapmakla\" kalmay\u0131p, onlar\u0131 \"nas\u0131l sundu\u011funuzun\" i\u015f arama s\u00fcrecinizdeki kritik rol\u00fcn\u00fc g\u00f6zler \u00f6n\u00fcne serdi. Geli\u015ftirme s\u00fcrecinde edindi\u011finiz her bilgi, yazd\u0131\u011f\u0131n\u0131z her sat\u0131r kod ve \u00fcstesinden geldi\u011finiz her zorluk, kariyerinize yapt\u0131\u011f\u0131n\u0131z de\u011ferli bir yat\u0131r\u0131md\u0131r. Portfolyo sitenizi s\u00fcrekli g\u00fcncel tutmak, yeni projeler eklemek ve en g\u00fcncel teknolojileri uygulamak, sizi sekt\u00f6rde her zaman bir ad\u0131m \u00f6nde tutacakt\u0131r. Kendinize g\u00fcvenin, yarat\u0131c\u0131 olun ve en \u00f6nemlisi, tutkunuzu kodlar\u0131n\u0131za yans\u0131t\u0131n. Ba\u015far\u0131ya ula\u015fmak i\u00e7in ihtiyac\u0131n\u0131z olan her \u015feye sahipsiniz!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<dl>\n<dt><strong>1. React portfolyo sitemi nerede bar\u0131nd\u0131rmal\u0131y\u0131m (deploy etmeliyim)?<\/strong><\/dt>\n<dd>Netlify ve Vercel, React uygulamalar\u0131 i\u00e7in en pop\u00fcler ve kullan\u0131m\u0131 kolay bar\u0131nd\u0131rma platformlar\u0131d\u0131r. GitHub hesab\u0131n\u0131zla entegre olurlar ve her push sonras\u0131 otomatik deploy imkan\u0131 sunarlar. GitHub Pages de daha basit projeler i\u00e7in iyi bir se\u00e7enektir.<\/dd>\n<dt><strong>2. Portfolyo sitesine hangi projeleri eklemeliyim?<\/strong><\/dt>\n<dd>En iyi ve en alakal\u0131 projelerinizi eklemelisiniz. \u00d6zellikle \u00fczerinde en \u00e7ok \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z, en \u00e7ok \u015fey \u00f6\u011frendi\u011finiz ve yeteneklerinizi en iyi yans\u0131tan projeler \u00f6ncelikli olmal\u0131d\u0131r. M\u00fcmk\u00fcnse, farkl\u0131 teknoloji y\u0131\u011f\u0131nlar\u0131n\u0131 veya problem \u00e7\u00f6zme yakla\u015f\u0131mlar\u0131n\u0131 g\u00f6steren \u00e7e\u015fitli projeler se\u00e7in.<\/dd>\n<dt><strong>3. Portfolyo siteme ileti\u015fim formu eklemek i\u00e7in ne kullanabilirim?<\/strong><\/dt>\n<dd>Bir\u00e7ok \u00fc\u00e7\u00fcnc\u00fc taraf hizmeti, backend kodu yazmadan ileti\u015fim formu eklemenize olanak tan\u0131r. Formspree, Netlify Forms veya Getform gibi servisler bu konuda pop\u00fclerdir ve kolayca React sitenize entegre edilebilirler.<\/dd>\n<dt><strong>4. Portfolyo sitemi nas\u0131l mobil uyumlu yapar\u0131m?<\/strong><\/dt>\n<dd>CSS media query'leri kullanarak farkl\u0131 ekran boyutlar\u0131na g\u00f6re stil ayarlamalar\u0131 yapabilirsiniz. Ayr\u0131ca Flexbox ve CSS Grid gibi modern CSS d\u00fczenleme teknikleri, duyarl\u0131 tasar\u0131mlar olu\u015fturmak i\u00e7in olduk\u00e7a etkilidir. Tasar\u0131m a\u015famas\u0131ndan itibaren mobil \u00f6ncelikli d\u00fc\u015f\u00fcnmek (mobile-first approach) en iyi sonucu verir.<\/dd>\n<dt><strong>5. SEO i\u00e7in React portfolyo sitemde ba\u015fka neler yapabilirim?<\/strong><\/dt>\n<dd><code>react-helmet<\/code> kullanarak her sayfa i\u00e7in benzersiz ba\u015fl\u0131k ve meta a\u00e7\u0131klamalar\u0131 ekleyin. Anlaml\u0131 URL yap\u0131lar\u0131 kullan\u0131n. Projelerinizin a\u00e7\u0131klamalar\u0131nda anahtar kelimeleri do\u011fal bir \u015fekilde kullan\u0131n. M\u00fcmk\u00fcnse Next.js gibi bir framework ile SSR (Sunucu Tarafl\u0131 Render) veya SSG (Statik Site \u00dcretimi) kullanmay\u0131 d\u00fc\u015f\u00fcn\u00fcn. Ayr\u0131ca, sitenizin h\u0131z\u0131n\u0131 ve eri\u015filebilirli\u011fini s\u00fcrekli olarak optimize edin.<\/dd>\n<\/dl>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Kodlama kamp\u0131ndan sonra kariyerine h\u0131zla ba\u015flamak isteyen yaz\u0131l\u0131mc\u0131lar i\u00e7in React portfolyo sitesi hayati \u00f6nem ta\u015f\u0131r. Yeteneklerini sergile, i\u015fverenleri&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[128],"tags":[],"class_list":{"0":"post-33751","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-react","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Harika React Portfolyo Sitesi Nas\u0131l Olu\u015fturulur? (Kodlama Kamp\u0131 Rehberi)<\/title>\n<meta name=\"description\" content=\"Kodlama kamp\u0131ndan sonra kariyerine h\u0131zla ba\u015flamak isteyen yaz\u0131l\u0131mc\u0131lar i\u00e7in React portfolyo sitesi hayati \u00f6nem ta\u015f\u0131r. Yeteneklerini sergile, i\u015fverenleri etkile. Bu rehberle ad\u0131m ad\u0131m ilerle!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Harika React Portfolyo Sitesi Nas\u0131l Olu\u015fturulur? (Kodlama Kamp\u0131 Rehberi)\" \/>\n<meta property=\"og:description\" content=\"Kodlama kamp\u0131ndan sonra kariyerine h\u0131zla ba\u015flamak isteyen yaz\u0131l\u0131mc\u0131lar i\u00e7in React portfolyo sitesi hayati \u00f6nem ta\u015f\u0131r. Yeteneklerini sergile, i\u015fverenleri etkile. Bu rehberle ad\u0131m ad\u0131m ilerle!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-06T13:01:08+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Harika React Portfolyo Sitesi Nas\u0131l Olu\u015fturulur? (Kodlama Kamp\u0131 Rehberi)\",\"datePublished\":\"2025-11-06T13:01:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/\"},\"wordCount\":3227,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"React\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/\",\"name\":\"Harika React Portfolyo Sitesi Nas\u0131l Olu\u015fturulur? (Kodlama Kamp\u0131 Rehberi)\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-06T13:01:08+00:00\",\"description\":\"Kodlama kamp\u0131ndan sonra kariyerine h\u0131zla ba\u015flamak isteyen yaz\u0131l\u0131mc\u0131lar i\u00e7in React portfolyo sitesi hayati \u00f6nem ta\u015f\u0131r. Yeteneklerini sergile, i\u015fverenleri etkile. Bu rehberle ad\u0131m ad\u0131m ilerle!\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Harika React Portfolyo Sitesi Nas\u0131l Olu\u015fturulur? (Kodlama Kamp\u0131 Rehberi)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Harika React Portfolyo Sitesi Nas\u0131l Olu\u015fturulur? (Kodlama Kamp\u0131 Rehberi)","description":"Kodlama kamp\u0131ndan sonra kariyerine h\u0131zla ba\u015flamak isteyen yaz\u0131l\u0131mc\u0131lar i\u00e7in React portfolyo sitesi hayati \u00f6nem ta\u015f\u0131r. Yeteneklerini sergile, i\u015fverenleri etkile. Bu rehberle ad\u0131m ad\u0131m ilerle!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Harika React Portfolyo Sitesi Nas\u0131l Olu\u015fturulur? (Kodlama Kamp\u0131 Rehberi)","og_description":"Kodlama kamp\u0131ndan sonra kariyerine h\u0131zla ba\u015flamak isteyen yaz\u0131l\u0131mc\u0131lar i\u00e7in React portfolyo sitesi hayati \u00f6nem ta\u015f\u0131r. Yeteneklerini sergile, i\u015fverenleri etkile. Bu rehberle ad\u0131m ad\u0131m ilerle!","og_url":"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-06T13:01:08+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Harika React Portfolyo Sitesi Nas\u0131l Olu\u015fturulur? (Kodlama Kamp\u0131 Rehberi)","datePublished":"2025-11-06T13:01:08+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/"},"wordCount":3227,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["React"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/","name":"Harika React Portfolyo Sitesi Nas\u0131l Olu\u015fturulur? (Kodlama Kamp\u0131 Rehberi)","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-06T13:01:08+00:00","description":"Kodlama kamp\u0131ndan sonra kariyerine h\u0131zla ba\u015flamak isteyen yaz\u0131l\u0131mc\u0131lar i\u00e7in React portfolyo sitesi hayati \u00f6nem ta\u015f\u0131r. Yeteneklerini sergile, i\u015fverenleri etkile. Bu rehberle ad\u0131m ad\u0131m ilerle!","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/harika-react-portfolyo-sitesi-nasil-olusturulur-kodlama-kampi-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Harika React Portfolyo Sitesi Nas\u0131l Olu\u015fturulur? (Kodlama Kamp\u0131 Rehberi)"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33751","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=33751"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33751\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33751"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33751"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33751"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}