The Hyperstack|12 Min. Lesezeit

Warum wir WordPress getötet haben: Der Wechsel zu Astro & Next.js

21.05.2024Benjamin Amos Wagner

#Die Geschichte des Monolithen

Über ein Jahrzehnt lang dominierte der LAMP-Stack (Linux, Apache, MySQL, PHP) das Web. WordPress war der König dieser Ära und betrieb über 40% des Internets. Es war demokratisch, zugänglich – und schließlich eine Belastung.

Die monolithische Architektur bedeutete, dass bei jedem Seitenaufruf eine Datenbankabfrage ausgelöst wurde. Mit steigendem Traffic wuchsen auch die Infrastrukturkosten und die Latenzzeiten.

#Die Sicherheits-Alpträume der Plugins

"Installier einfach ein Plugin dafür."

Dieser Satz ist die Ursache für tausende gehackte Websites. Jedes Plugin ist eine potenzielle Hintertür, oft gewartet von einem einzelnen Entwickler, der längst zu anderen Projekten weitergezogen ist. Die "Dependency Hell" aus kollidierenden jQuery-Versionen und ungepatchten Sicherheitslücken machte die Wartung zum Vollzeitjob.

#Die Lösung: Jamstack / Hyperstack

Wir sind auf den Hyperstack umgestiegen: eine moderne Mischung aus Static Site Generation (SSG) und Edge Computing.

  • Next.js für dynamische Anwendungen.
  • Astro für inhaltsstarke Seiten.
  • Supabase für die Datenbank.

Durch die Entkopplung des Frontends vom Backend haben wir die Angriffsfläche eliminiert. Es gibt kein wp-admin mehr, das gehackt werden kann.

#Technischer Vergleich: SSR vs. SSG

In einer traditionellen PHP-Umgebung baut der Server die Seite bei jeder Anfrage neu auf.

// PHP Loop (Server-Side Rendered bei Anfrage)
<?php
  $args = array( 'post_type' => 'product', 'posts_per_page' => 10 );
  $loop = new WP_Query( $args );
  while ( $loop->have_posts() ) : $loop->the_post();
    the_title();
    echo '<div class="price">'. get_post_meta($post->ID, 'price', true) .'</div>';
  endwhile;
?>

Im Gegensatz dazu bauen React Server Components oder Static Generation das HTML einmal zur Build-Zeit (oder cachen es stark).

// React Component (Statically Generated)
export default async function ProductList() {
  const products = await getProducts(); // Läuft zur Build-Zeit
 
  return (
    <div className="grid gap-4">
      {products.map((product) => (
        <div key={product.id} className="p-4 border rounded">
          <h2>{product.title}</h2>
          <span className="text-electric-orange">${product.price}</span>
        </div>
      ))}
    </div>
  );
}

Das Ergebnis sind sofortige Ladezeiten, besseres SEO und eine Entwicklererfahrung (DX), die einen nicht zum Weinen bringt.

Hat dir dieser Artikel gefallen?

Wir setzen genau diese Technologien für Schweizer Unternehmen ein. Lass uns besprechen, wie das für dich aussehen könnte.

BW

Benjamin Amos Wagner

Digital Nomad / Founder

Baut die Zukunft des Webs mit Next.js, AI Agents und dem Hyperstack. Besessen von Performance, sauberem Code und der Automatisierung langweiliger Aufgaben.