diff --git a/public/js/ana.js b/public/js/ana.js
new file mode 100644
index 0000000..2e6f76a
--- /dev/null
+++ b/public/js/ana.js
@@ -0,0 +1,72 @@
+// Ana sayfa: kategoriler + öne çıkan ilanlar
+ustbariCiz();
+
+async function yukle() {
+ const [kategoriler, ilanlar] = await Promise.all([API.kategoriler(), API.ilanlar()]);
+ domBosalt('kategoriler');
+ domBosalt('ilanlar');
+
+ // Kategoriler
+ const kKat = document.getElementById('kategoriler');
+ kategoriler.forEach((k) => {
+ const kart = document.createElement('div');
+ kart.className = 'kategori-kart';
+ kart.innerHTML = `
+
${k.ikon}
+ ${k.ad}
+ ${(k.alt || []).join(' · ')}
+ `;
+ kart.addEventListener('click', () => (location.href = `katalog.html?kategori=${k.id}`));
+ kKat.appendChild(kart);
+ });
+
+ // İlanlar
+ const kIlan = document.getElementById('ilanlar');
+ const bosEl = document.getElementById('bos');
+ if (!ilanlar.length) {
+ bosEl.style.display = 'block';
+ return;
+ }
+ ilanlar.forEach((i) => kIlan.appendChild(ilanKarti(i)));
+}
+
+function ilanKarti(i) {
+ const kart = document.createElement('a');
+ kart.className = 'ilan-kart';
+ kart.href = `ilan-detay.html?id=${i.id}`;
+ const gorsel = i.gorsel
+ ? `
`
+ : `🖼️
`;
+ kart.innerHTML = `
+ ${gorsel}
+
+
${i.kategori || 'İlan'}
+
${degisken(i.baslik)}
+
${fiyatOzet(i.fiyat)}
+
📍 ${i.il}${i.ilce ? ', ' + i.ilce : ''} · ${i.tarih || ''}
+
+ `;
+ return kart;
+}
+
+// güvenli metin çıkışı
+function degisken(m) {
+ const d = document.createElement('div');
+ d.textContent = m == null ? '' : String(m);
+ return d.innerHTML;
+}
+
+function domBosalt(id) {
+ const el = document.getElementById(id);
+ if (el) el.innerHTML = '';
+}
+
+// footer'daki "verileri sıfırla" — localStorage favorileri temizler
+document.addEventListener('click', (e) => {
+ if (e.target.matches('[data-sifirla]')) {
+ localStorage.removeItem('numex_favori');
+ alert('Favorileriniz temizlendi.');
+ }
+});
+
+yukle();