Zum Inhalt springen
    WingoUI
    KomponentenVorlagenDokuPreiseKI-AgentenBlogChangelogKontakt
    1. Startseite
    2. Blog
    3. Praxis: Screens und Apps
    4. Agentur Website Template für Next.js: Vom Besuch zur Anfrage
    Read in English
    1. Blog
    2. Praxis: Screens und Apps
    3. Agentur Website Template für Next.js: Vom Besuch zur Anfrage
    Praxis: Screens und Apps
    Praxis: Screens und Apps

    Agentur Website Template für Next.js: Vom Besuch zur Anfrage

    SR
    Serban Rusu · Gründer von Wingo UI
    6. Nov. 2026 · 8 Min. Lesezeit

    Auf dieser Seite

    0%
    1. Was decken die bestehenden Agentur-Templates ab?
    2. Welche Abschnitte braucht eine Agentur-Website?
    3. Wie funktioniert der Hero mit dem wechselnden Wort?
    4. Was unterscheidet es von einem Portfolio-Template für Einzelpersonen?
    5. Wie richte ich es für mein Studio ein?
    6. Wie binde ich das Anfrageformular an?
    7. Wie funktioniert es auf dem Smartphone?
    8. Ist es kostenlos, und was kostet Pro?
    9. Häufige Fragen
      1. Was gehört auf eine Agentur-Website?
      2. Gibt es ein kostenloses Next.js-Template für Agenturen?
      3. Was unterscheidet ein Agentur-Template von einem Portfolio-Template?
      4. Sollte eine Agentur-Website Preise zeigen?
      5. Wie empfange ich die Anfragen?

    Kurz gesagt

    Eine Agentur-Website hat genau eine Aufgabe: aus einem Besucher ein Briefing zu machen, das du kalkulieren kannst. Die Agency Page von Wingo UI ist ein Next.js-Template mit wechselndem Wort im Hero, Leistungen, Case Studies mit Projektnotizen, einem Ablauf in vier Schritten, dem Team, Paketen mit Preisen und einem Anfrageformular, das Leistungen, Budget, Starttermin und ein Briefing mit mindestens 30 Zeichen abfragt. Nimm sie, wenn ein Team Projekte verkauft, und die Portfolio Page, wenn eine einzelne Person ihre eigene Arbeit verkauft.

    Veröffentlicht am 6. Nov. 2026

    Du führst ein Studio oder baust Websites für eines, und du suchst ein Agentur Website Template, das mehr kann, als in einem Dribbble-Shot gut auszusehen. Die Seite muss aus einem Besucher ein Briefing machen: was er braucht, was er ungefähr ausgeben kann und wann es losgehen soll. Die meisten Vorlagen, die als Landingpage für Agenturen verkauft werden, hören bei einem Hero, einem Raster mit Leistungen und einem Kontaktlink auf. Dieser Guide zeigt die Abschnitte, die zu einer ernsthaften Anfrage führen, wie das Template Agency Page von Wingo UI um sie herum gebaut ist, was es von einem Portfolio für Einzelpersonen unterscheidet und wie du das Formular im App Router anbindest.

    Was decken die bestehenden Agentur-Templates ab?

    Vor allem die Optik, dazu jede Menge Infrastruktur. Das Template Agency auf nextjstemplates.com (opens in a new tab) (geprüft am 6. November 2026) basiert auf Next.js 16.0.10, trägt die Version 1.3.1 und wurde zuletzt am 20. Juli 2026 aktualisiert. Es bringt PostgreSQL mit Prisma, NextAuth, Sanity für den Blog und Stripe mit und kostet $59 (ein Projekt), $149 (bis zu vier) oder $399 (unbegrenzt). Das ist eine gute Wahl, wenn CMS, Auth und Zahlungen vom ersten Tag an laufen sollen. Theme-Marktplätze verkaufen noch viele mehr; prüf vor dem Kauf die Next.js-Version und das Datum des letzten Updates.

    Wenn du ein Agentur Website Template kostenlos willst, schau auf GitHub. Das Topic agency-website-template (opens in a new tab) führte am 6. November 2026 13 öffentliche Repositories, nextjs-agency-template (opens in a new tab) eines.

    Was bei den meisten zu kurz kommt, ist der Weg vom Besucher zum qualifizierten Lead:

    • Case Studies mit Ausgangslage, Vorgehen und Ergebnis, während die meisten nur ein Vorschaubild und ein Tag zeigen.
    • Preise von Anfang an, damit die Anfrage schon mit einem Budget beginnt.
    • Ein Formular, das die Fragen aus dem ersten Telefonat stellt: Leistungen, Budget, Starttermin, ein echtes Briefing.
    • Ein Layout fürs Smartphone, in dem sich die Case Studies nicht zu einer endlosen Spalte stapeln.

    Welche Abschnitte braucht eine Agentur-Website?

    Acht, und die Agency Page rendert sie standardmäßig alle. Jeder bekommt seinen Inhalt als Prop, und jeder Abschnitt nach dem Hero lässt sich mit einem show*-Schalter ausblenden:

    AbschnittWas der Kunde erfährtProp
    HeroWas ihr baut, in einem wechselnden Wort, dazu Verfügbarkeit und EckdatenheroWords, labels, facts, available
    KundenWer euch schon vertrautclients, showClients
    LeistungenVier Bereiche mit ihren Ergebnissen als Checklisteservices, showServices
    ArbeitenProjektkarten mit gezeichneten Covern und KennzahlencaseStudies, showWork
    ProjektnotizenDie Ausgangslage, was ihr gemacht habt, die Dauer und ein ZitatshowCaseNotes
    AblaufVier Schritte vom Kennenlernen bis zum Launchprocess, showProcess
    TeamErfahrene Leute plus eine Kachel für offene Stellenteam, openRoles, showTeam
    Pakete und AnfragePreise, dann das Formularpackages, budgets, timelines, onInquiry, showPackages, showInquiry

    Die Kundenleiste ist die kostenlose Logo Cloud, der Ablauf ist die Steps Section im Layout cards, und die Leute zeigt die Team Section. Alle drei lassen sich über clientsProps, processProps und teamProps anpassen, ein Laufband mit Logos oder eine vertikale Ablaufleiste ist also nur ein Prop entfernt.

    Scroll durch die Studio-Seite, öffne eine Projektkarte, um zu ihren Notizen zu springen, und drück dann bei einem Paket auf Get started: Das Formular öffnet sich mit dem passenden Budget
    $ npx wingo-ui@latest add agency-page
    ProDoku: Agency Page

    Wie funktioniert der Hero mit dem wechselnden Wort?

    Der große Titel hat drei Zeilen: labels.heroLead ("We build"), ein Wort aus heroWords ("brands", "products", "websites") und labels.heroTail ("that people remember."). Die mittlere Zeile ist unsere Komponente Text Rotate. Sie tauscht das Wort alle rotateInterval Millisekunden (standardmäßig 2600) mit dem rotateEffect deiner Wahl: slide-up, slide-down, fade, blur oder flip. Solange der Zeiger darauf liegt, pausiert sie, bei reduzierter Bewegung steht sie still, und Screenreader hören einmal die ganze Liste statt eines Worts, das sich unter ihnen ändert. Mit rotate={false} bleibt das erste Wort stehen.

    Schau zu, wie das Wort wechselt, und fahr dann mit dem Zeiger darüber: Die Rotation pausiert, bis der Zeiger weg ist
    $ npx wingo-ui@latest add text-rotate
    ProDoku: Text Rotate

    Halte die Wörter kurz. Der Titel wächst auf breiten Bildschirmen bis auf 7rem, und eine Phrase aus zwei Wörtern, die bei 1440px passt, kann auf einem Smartphone mit 360px umbrechen. Teste das längste Wort in Smartphone-Breite, bevor du live gehst.

    Was unterscheidet es von einem Portfolio-Template für Einzelpersonen?

    Eine Agentur verkauft ein Team und einen Prozess, ein Freelancer verkauft sich selbst. Unser Template Portfolio Page ist die Version für Einzelpersonen, und die beiden treffen unterschiedliche Entscheidungen:

    Agency PagePortfolio Page
    Case StudiesKarten, die zu den Projektnotizen auf der Seite scrollen (oder zu href)Karten, die ein Sheet öffnen, auf Smartphones ein Bottom Sheet
    PersonenTeam-Raster mit einer Kachel für offene StellenEine Person, eine Timeline der Berufserfahrung
    VerkaufPakete mit Budgets, Ablaufschritte, KundenlogosLeistungen mit Einstiegspreisen, Testimonials, Artikel
    FormularLeistungen, Budget-Chips, ein Starttermin und ein Briefing mit 30 ZeichenName, E-Mail, Projektart und eine Nachricht

    Wenn du allein arbeitest und wie ein Studio auftreten willst, starte mit der Agency Page und setz showTeam={false}; das Beispiel „Freelancer, fully booked“ auf der Doku-Seite macht genau das. Wenn du als Entwickler einen Job suchst, passt das Portfolio besser, und unser Guide zum Next.js-Portfolio-Template zeigt, was du weglassen kannst.

    Wie richte ich es für mein Studio ein?

    Installier die Agentur Website Vorlage. Die CLI kopiert den Quellcode in dein Projekt, zusammen mit den Abschnitten, Formularfeldern und Hooks, die sie nutzt:

    bash
    npx wingo-ui@latest add agency-page

    Die Seite ist eine Client-Komponente. Leg deine Inhalte also in eine kleine Client-Datei und lass page.tsx für die Metadaten auf dem Server. Ersetz die Beispiel-Case-Studies und -Pakete durch deine eigenen; die Typen stehen in der Datendatei:

    tsx
    // app/studio.tsx
    "use client";
    import Link from "next/link";
    import { AgencyPage, type AgencyInquiryValues } from "@/components/templates/agency-page";
    import type { AgencyCaseStudy, AgencyPackage } from "@/components/templates/agency-page-data";
    // nur deine echten Kunden, Zahlen und Zitate
    const caseStudies: AgencyCaseStudy[] = [
    {
    slug: "harbor-bank-site",
    client: "Harbor Bank",
    title: "Eine Marketing-Website, die das Team selbst pflegt",
    summary: "60 Seiten auf Next.js und ein Headless CMS mit wiederverwendbaren Blöcken umgezogen.",
    tags: ["Website", "Engineering"],
    year: "2026",
    color: "#2563eb",
    cover: "site",
    results: [{ value: "24", label: "Wiederverwendbare Blöcke" }],
    challenge: "Jede Änderung an einer Seite brauchte einen Entwickler und ein Release in zwei Wochen.",
    approach: ["Jede Seite geprüft", "Eine Blockbibliothek in Next.js gebaut", "Das Marketing-Team geschult"],
    duration: "10 Wochen",
    services: ["website", "engineering"],
    },
    ];
    const packages: AgencyPackage[] = [
    { id: "sprint", name: "Website-Audit", description: "Ein schriftlicher Plan für deine nächste Website.", price: 6000, unit: "Festpreis", duration: "2 Wochen", features: ["Prüfung von Inhalten und SEO", "Performance-Bericht", "Ein Call zur Roadmap"], budget: "under-25" },
    { id: "project", name: "Neue Website", description: "Strategie, Design und ein Build mit Next.js.", price: 30000, from: true, unit: "pro Projekt", duration: "8 bis 12 Wochen", features: ["Design und Texte", "Headless CMS", "30 Tage Fehlerbehebung"], featured: true, budget: "25-50" },
    ];
    export function Studio({ inquiryAction }: { inquiryAction: (values: AgencyInquiryValues) => Promise<void> }) {
    return (
    <AgencyPage
    linkComponent={Link}
    heroWords={["Websites", "Shops", "Apps"]}
    labels={{
    brand: "Bayside Studio",
    home: "Bayside Studio, Startseite",
    heroLead: "Wir gestalten",
    heroTail: "für wachsende Teams in New York.",
    heroDescription: "Ein Studio mit drei Leuten für Design und Builds mit Next.js, vom ersten Call bis zum Launch.",
    available: "Freie Kapazität für Projekte ab Februar 2027",
    tagline: "Ein Studio für Design und Entwicklung in New York.",
    legal: "© 2026 Bayside Studio LLC.",
    }}
    email="hello@bayside.example"
    facts={[]}
    caseStudies={caseStudies}
    packages={packages}
    showClients={false}
    showTeam={false}
    onInquiry={inquiryAction}
    />
    );
    }

    Ein leeres facts-Array blendet die Zahlen im Hero aus, und das ist besser als „140+ Launches“ ohne etwas dahinter. Alles, was du nicht übergibst, fällt auf die Beispieldaten von Northwind Studio zurück. Deshalb bleiben die Kundenlogos hier ausgeblendet, bis du echte hast, und Leistungen und Ablaufschritte brauchen vor dem Launch deine eigenen Texte. Das budget jedes Pakets muss zu einem value in budgets passen (die Standardwerte reichen von under-25 bis 100-plus), und die services-IDs einer Case Study entsprechen den Leistungskarten, damit Start a similar project die richtigen Chips auswählt.

    Wie binde ich das Anfrageformular an?

    Das Anfrageformular gibt seine Werte an onInquiry weiter, also übergib ihm eine Funktion, die ein Promise zurückgibt. Sie bekommt { name, email, company, services, budget, timeline, brief }. Der Button zeigt währenddessen einen Ladezustand; bei einem Fehler bleibt das Formular ausgefüllt und zeigt labels.failed. Ohne onInquiry wartet die Seite 900 ms und bedankt sich beim Absender, ohne etwas zu senden. Für eine Demo ist das in Ordnung, in Produktion ist es ein verlorener Lead. Eine Server Action reicht:

    ts
    // app/actions.ts
    "use server";
    import type { AgencyInquiryValues } from "@/components/templates/agency-page";
    export async function sendInquiry(values: AgencyInquiryValues) {
    // das Formular prüft das schon im Client; prüf es auf dem Server noch einmal
    if (!values.name.trim() || !values.email.includes("@") || values.brief.trim().length < 30) {
    throw new Error("Ungültige Anfrage");
    }
    // hier die Anfrage speichern oder über deinen Mail-Anbieter verschicken
    }
    tsx
    // app/page.tsx
    import type { Metadata } from "next";
    import { sendInquiry } from "./actions";
    import { Studio } from "./studio";
    export const metadata: Metadata = {
    title: "Bayside Studio",
    description: "Design und Websites mit Next.js für wachsende Teams in New York.",
    };
    export default function Page() {
    return <Studio inquiryAction={sendInquiry} />;
    }

    Das Prop von Studio heißt mit Absicht inquiryAction: Das TypeScript-Plugin von Next.js beanstandet Funktions-Props in einer Einstiegsdatei mit "use client", es sei denn, der Name lautet action oder endet auf Action.

    Im Client verlangt das Formular einen Namen, eine gültige E-Mail-Adresse, einen Budget-Chip und ein Briefing mit mindestens 30 Zeichen, und es setzt den Fokus auf das erste fehlerhafte Feld. Ein leeres budgets- oder timelines-Array entfernt das jeweilige Feld. Wenn du stattdessen eine allgemeine Kontaktseite mit Kanälen, Öffnungszeiten und Karte brauchst: Das Template Contact Page ist kostenlos.

    Wie funktioniert es auf dem Smartphone?

    Unter 768px ändert sich die Seite an drei Stellen: bei den Projektkarten, beim Feld für den Zeitrahmen und mit einem fixierten Call to Action. Die Projektkarten liegen in einer horizontalen Leiste mit Snap, in der die nächste Karte schon angeschnitten ist, statt dass vier hohe Karten untereinander stehen. Das Feld für den Zeitrahmen ist unser Select, das sich auf Smartphones als Bottom Sheet öffnet, und Budget und Leistungen wählst du über Chips aus der Toggle Group. Sobald der Hero aus dem Bild scrollt, schiebt sich von unten eine Leiste mit Start a project ins Bild, mit env(safe-area-inset-bottom) über dem Home-Indikator des iPhones, und sobald das Formular erscheint, verschwindet sie wieder, damit sie nie die Felder verdeckt. Mit stickyBar={false} schaltest du sie ab.

    Jede Projektkarte ist ein einziger Link. Standardmäßig scrollt sie zu ihren Notizen weiter unten auf der Seite und setzt den Fokus dorthin. Wenn jede Case Study als eigene Seite indexiert werden soll, gib ihr ein href, oder setz showCaseNotes={false}: Dann führen die Karten ohne href zu /work/<slug>, einer normalen Route, die du selbst baust.

    Ist es kostenlos, und was kostet Pro?

    Agency Page, Portfolio Page, Text Rotate und Steps Section sind Pro-Items. Contact Page und Logo Cloud gehören zu den 75 kostenlosen von 371 Items im Katalog, Stand 6. November 2026. Pro kostet $8 im Monat, $80 im Jahr oder einmalig $150 für lebenslangen Zugang (siehe Preise), und die Rückerstattung innerhalb von 14 Tagen gilt nur, solange du noch kein Pro-Item heruntergeladen hast. Wenn ein kostenloses Repository oder das Kit von nextjstemplates.com mit CMS und Auth besser zu deinem Projekt passt, nimm das. Wenn du ein Nextjs Agency Template suchst, in dem Projektnotizen, Pakete und Anfrageformular schon gebaut sind, im Light und Dark Mode, installier es und steck deine Zeit in die Case Studies, denn mit ihnen gewinnst du das Briefing.

    Weitere komplette Seiten, die genauso gebaut sind, findest du unter Praxis: Screens und Apps, und unser Guide zum SaaS Website Template zeigt die Marketing-Website, die ein Produkt braucht.

    Komponenten in diesem Artikel

    • Agency Page

      A React agency website template: rotating hero, services, case studies, process, team, packages and a project inquiry form.

      Pro
    • Portfolio Page

      A React portfolio template for designers and developers: hero, case studies in a sheet, experience, priced services, writing and contact.

      Pro
    • Text Rotate

      A rotating word for headlines that cycles through a list of words or short phrases in place, inside a sentence that reflows to fit each one.

      Pro
    • Steps Section

      A How it works section: three to five numbered steps, each with an icon, a title, a line of text and a small drawn product visual.

      Pro
    • Contact Page

      A React contact page template: a validated form, copyable channels with live office hours, offices on a drawn map, a short FAQ and logos.

      Free

    Häufige Fragen

    Was gehört auf eine Agentur-Website?

    Leistungen mit konkreten Ergebnissen, drei oder vier Case Studies mit Ausgangslage, Vorgehen und Resultat, der Ablauf, die Leute, die die Arbeit machen, Einstiegspreise und ein Anfrageformular. Jeder Abschnitt sollte eine Frage beantworten, die sich ein Kunde stellt, bevor er ein Briefing schickt.

    Gibt es ein kostenloses Next.js-Template für Agenturen?

    Ein paar. Das GitHub-Topic agency-website-template führte am 6. November 2026 13 öffentliche Repositories, nextjs-agency-template eines. Die Agency Page von Wingo UI ist ein Pro-Item, das Template Contact Page und der Abschnitt Logo Cloud sind dagegen kostenlos.

    Was unterscheidet ein Agentur-Template von einem Portfolio-Template?

    Ein Agentur-Template verkauft ein Team und einen Prozess: Leistungen, Team, Pakete und ein Anfrageformular, das nach dem Budget fragt. Ein Portfolio-Template verkauft eine einzelne Person: ihre Projekte, ihre Erfahrung und ein einfacheres Kontaktformular.

    Sollte eine Agentur-Website Preise zeigen?

    Einstiegspreise filtern Projekte heraus, die du ohnehin ablehnen würdest, und senken die Hürde, eine Anfrage zu schicken. Die Agency Page zeigt Pakete mit einem Ab-Preis, und Get started wählt im Formular den passenden Budget-Chip aus.

    Wie empfange ich die Anfragen?

    Gib onInquiry eine Funktion, die ein Promise zurückgibt, zum Beispiel eine Server Action von Next.js, die die Anfrage speichert oder per E-Mail weiterschickt. Der Button zeigt währenddessen einen Ladezustand, und bei einem Fehler bleibt alles Eingetippte stehen und eine Fehlermeldung erscheint.

    In deinem Projekt ausprobieren

    Agency Page

    Pro

    A React agency website template: rotating hero, services, case studies, process, team, packages and a project inquiry form.

    75 Komponenten kostenlos, ohne Konto. Pro ab 8 $ im Monat.

    Agency Page live öffnenPreise ansehen
    • Next.js
    • Agentur
    • Vorlagen
    • Tailwind CSS
    • Leadgenerierung

    Teilen

    SR

    Über den Autor

    Serban Rusu

    Gründer von Wingo UI

    Serban Rusu hat Wingo UI gegründet. Er baut die Komponenten, die CLI und den MCP-Server und schreibt über React-UIs für Smartphones und KI-Agents.

    Mehr von Serban
    Weiterlesen

    Ähnliche Artikel

    Alle Artikel
    Praxis: Screens und Apps

    Nextjs Portfolio Template, das dir Kunden bringt

    Ein Nextjs Portfolio Template, das Kunden bringt: Case Studies im Sheet, Timeline, Leistungen mit Preisen, Formular und was du für die Jobsuche streichst.

    SRSerban Rusu·6. Nov. 2026·9 Min. Lesezeit
    Praxis: Screens und Apps

    Hero Section Beispiele für shadcn: sechs Layouts bei 390px

    Hero Section Beispiele für shadcn, die konvertieren: ein Versprechen, zwei Aktionen, Belege neben den Buttons und ein Produktbild aus Code, geprüft bei 390px.

    SRSerban Rusu·6. Nov. 2026·8 Min. Lesezeit
    Praxis: Screens und Apps

    Nextjs Contact Form: E-Mail senden und Spam blocken

    So baust du ein nextjs contact form im App Router: zod-Validierung, eine Server Action, die die E-Mail sendet, Honeypot, Rate Limit und eine kostenlose Vorlage.

    SRSerban Rusu·5. Nov. 2026·10 Min. Lesezeit
    Newsletter

    Neue Artikel per E-Mail

    Neue Artikel, Produktneuheiten und gelegentlich Angebote von Wingo UI. Wir zählen Klicks, damit es relevant bleibt.

    Kein Spam. Du kannst dich jederzeit abmelden.

    WingoUI

    Animierte, konfigurierbare, mobile-first React-Komponenten und Blöcke. Kopier den Quellcode, pass ihn an und lass deinen Coding-Agenten damit bauen.

    Produkt

    • Komponenten
    • Vorlagen
    • Preise
    • KI-Agenten
    • Für Teams
    • Theme-Generator

    Ressourcen

    • Doku
    • Kontakt
    • Programme
    • Blog
    • Changelog
    • Changelog-RSS
    • llms.txt

    Vergleiche

    • Wingo UI vs. Premium-Kits
    • Wingo UI vs. shadcn/ui
    • shadcn/ui-Alternativen
    • MUI-Alternativen
    • Tailwind-Plus-Alternativen
    • Magic-UI-Alternativen
    • Kostenlose Komponenten

    Rechtliches

    • AGB
    • Datenschutz
    • Rückerstattung
    • Lizenz
    • Impressum

    Komponenten-Kategorien

    • Buttons & Actions
    • Inputs
    • Forms
    • Navigation
    • Overlays
    • Feedback
    • Data Display
    • Tables & Lists
    • Charts & Stats
    • Layout
    • Media
    • AI Kit
    • Text & Effects
    • Mobile
    • Commerce
    • Marketing Sections
    • Blocks
    • Hooks & Utilities

    © 2026 Wingo UI

    Wingo UI