Devrim Mehmet Logo
Teknoloji

Astro: Modern Web Geliştirme için Yeni Nesil Framework

4 dk okuma
Astro: Modern Web Geliştirme için Yeni Nesil Framework

<p><em>12 Ocak 2026</em></p>

<p>

Astro, modern web geliştirme dünyasında performans ve geliştirici deneyimini ön plana çıkaran yeni nesil bir framework'tür.

İçerik odaklı web siteleri (bloglar, portfolyolar, dokümantasyon siteleri) için optimize edilmiş olan Astro,

<strong>zero JavaScript by default</strong> yaklaşımıyla dikkat çeker.

</p>

<h2>Astro'nun Temel Felsefesi</h2>

<p>

Astro'nun arkasındaki temel fikir basittir: Kullanıcıya mümkün olduğunca az JavaScript gönderin.

Geleneksel SPA (Single Page Application) framework'lerinin aksine, Astro varsayılan olarak hiç JavaScript göndermez.

JavaScript sadece gerçekten ihtiyaç duyulduğunda ve sadece gerekli bileşenler için yüklenir.

</p>

<h3>Islands Architecture</h3>

<p>

Astro'nun en önemli özelliklerinden biri <strong>Islands Architecture</strong> yaklaşımıdır.

Bu mimari, sayfanın çoğunun statik HTML olarak render edilmesini,

sadece interaktif bileşenlerin JavaScript ile çalışmasını sağlar.

</p>

<pre><code class="language-astro">

---

// Statik içerik - JavaScript yok

import Header from '../components/Header.astro';

import Footer from '../components/Footer.astro';

// İnteraktif bileşen - Sadece bu bileşen için JavaScript yüklenir

import Counter from '../components/Counter.vue';

---

&lt;html&gt;

&lt;body&gt;

&lt;Header /&gt;

&lt;main&gt;

&lt;h1&gt;Merhaba Dünya&lt;/h1&gt;

&lt;p&gt;Bu statik içerik, hiç JavaScript gerektirmez.&lt;/p&gt;

&lt;!-- Sadece bu bileşen için JavaScript yüklenir --&gt;

&lt;Counter client:load /&gt;

&lt;/main&gt;

&lt;Footer /&gt;

&lt;/body&gt;

&lt;/html&gt;

</code></pre>

<h2>Astro'nun Güçlü Yönleri</h2>

<h3>1. Framework Agnostic (Çerçeve Bağımsız)</h3>

<p>

Astro, birden fazla framework'ü aynı projede kullanmanıza izin verir:

</p>

<pre><code class="language-astro">

---

import ReactComponent from './ReactComponent.jsx';

import VueComponent from './VueComponent.vue';

import SvelteComponent from './SvelteComponent.svelte';

---

&lt;div&gt;

&lt;ReactComponent client:visible /&gt;

&lt;VueComponent client:idle /&gt;

&lt;SvelteComponent client:media="(max-width: 768px)" /&gt;

&lt;/div&gt;

</code></pre>

<h3>2. Performans Odaklı</h3>

<ul>

<li>Zero JavaScript by Default</li>

<li>Partial Hydration</li>

<li>Automatic Image Optimization</li>

<li>Built-in Asset Optimization</li>

</ul>

<h3>3. SEO Dostu</h3>

<p>

Astro, server-side rendering (SSR) ve static site generation (SSG) desteği ile güçlü SEO performansı sunar.

</p>

<pre><code class="language-astro">

---

import { SEO } from 'astro-seo';

const title = 'Astro ile Modern Web Geliştirme';

const description = 'Performans odaklı web siteleri için Astro kullanımı';

---

&lt;SEO

title={title}

description={description}

openGraph={{

basic: {

title: title,

type: 'website',

image: '/og-image.jpg',

},

}}

twitter={{

creator: '@DevrimMehmetp',

}}

/&gt;

</code></pre>

<h2>Pratik Kullanım Senaryoları</h2>

<h3>Content Collections ile Tip Güvenli İçerik Yönetimi</h3>

<pre><code class="language-typescript">

// src/content/config.ts

import { defineCollection, z } from 'astro:content';

const blogCollection = defineCollection({

type: 'content',

schema: z.object({

title: z.string(),

description: z.string(),

pubDate: z.date(),

author: z.string(),

tags: z.array(z.string()).optional(),

heroImage: z.string().optional(),

}),

});

export const collections = {

blog: blogCollection,

};

</code></pre>

<h3>Dinamik Routing</h3>

<pre><code class="language-astro">

---

// src/pages/blog/[slug].astro

import { getCollection } from 'astro:content';

export async function getStaticPaths() {

const blogPosts = await getCollection('blog');

return blogPosts.map((post) => ({

params: { slug: post.slug },

props: { post },

}));

}

const { post } = Astro.props;

const { Content } = await post.render();

---

&lt;article&gt;

&lt;h1&gt;{post.data.title}&lt;/h1&gt;

&lt;time&gt;{post.data.pubDate}&lt;/time&gt;

&lt;Content /&gt;

&lt;/article&gt;

</code></pre>

<h2>Deployment ve Production</h2>

<h3>Coolify ile Deployment</h3>

<pre><code class="language-dockerfile">

FROM node:20-alpine AS builder

WORKDIR /app

COPY package*.json ./

RUN npm ci

COPY . .

RUN npm run build

FROM nginx:alpine

COPY --from=builder /app/dist /usr/share/nginx/html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

</code></pre>

<h3>Build Optimizasyonu</h3>

<pre><code class="language-javascript">

import { defineConfig } from 'astro/config';

export default defineConfig({

output: 'static',

build: {

inlineStylesheets: 'auto',

},

vite: {

build: {

cssMinify: true,

minify: 'terser',

},

},

});

</code></pre>

<h2>Astro vs Diğer Framework'ler</h2>

<table>

<thead>

<tr>

<th>Özellik</th>

<th>Astro</th>

<th>Next.js</th>

<th>Gatsby</th>

</tr>

</thead>

<tbody>

<tr>

<td>Default JS</td>

<td>0 KB</td>

<td>~80 KB</td>

<td>~50 KB</td>

</tr>

<tr>

<td>Hydration</td>

<td>Partial</td>

<td>Full</td>

<td>Full</td>

</tr>

<tr>

<td>Framework Support</td>

<td>Multi</td>

<td>React</td>

<td>React</td>

</tr>

<tr>

<td>Learning Curve</td>

<td>Düşük</td>

<td>Orta</td>

<td>Orta</td>

</tr>

<tr>

<td>Build Speed</td>

<td>Çok Hızlı</td>

<td>Hızlı</td>

<td>Yavaş</td>

</tr>

</tbody>

</table>

<h2>Sonuç</h2>

<p>

Astro, özellikle içerik odaklı web siteleri için güçlü bir seçimdir.

Performans, SEO ve geliştirici deneyimi açısından modern web geliştirme standartlarını yeniden tanımlamaktadır.

</p>

<h3>Astro'nun tercih edilmesi gereken durumlar</h3>

<ul>

<li>Blog ve portfolyo siteleri</li>

<li>Dokümantasyon siteleri</li>

<li>Marketing ve landing page'ler</li>

<li>E-ticaret vitrin sayfaları</li>

<li>Kurumsal web siteleri</li>

</ul>

<h3>Astro'nun uygun olmadığı durumlar</h3>

<ul>

<li>Yoğun interaktif uygulamalar (dashboard, admin panel)</li>

<li>Real-time uygulamalar</li>

<li>Karmaşık state yönetimi gerektiren SPA uygulamaları</li>

</ul>

<p>

Modern web geliştirme yaklaşımlarını benimseyen, performans odaklı ve SEO dostu projeler için Astro,

2024 ve sonrası için güçlü bir adaydır.

</p>