BLUEPRINT 003 · Leseprobe

Dein eigener Shop

Das erste Kapitel, kostenlos und ungekürzt. So schreibe ich · danach weißt du, ob die Ausgabe zu dir passt.

Es gibt genug Texte, die dir erklären, warum ein eigener Shop gut ist. Dieser hier zeigt dir, wie man ihn baut · mit dem echten Code aus einem System, das seit Juli 2026 live ist. Ich habe meine Foto-Galerie selbst gebaut. Sie verkauft limitierte Editionen, jede Nummer nur ein einziges Mal, mit Bezahlung, Echtheits-Nachweis und automatischer Auslieferung. Kein Baukasten, keine Monatsgebühr. In dieser Ausgabe zerlege ich sie in ihre Teile und zeige dir jeden · nicht als Konzept, sondern als Code, den du übernehmen und anpassen kannst. Der Aufbau taugt für jedes digitale Werk, nicht nur Fotos: Presets, Musik, Vorlagen, Kurse.

Was du brauchst · ein Cloudflare- und ein Stripe-Konto (beide gratis), Node auf dem Rechner, Grundlagen in JavaScript und Kommandozeile. Was es kostet · die Cloudflare-Gratisstufe trägt dich lange, Stripe nimmt rund 1,5 Prozent plus 0,25 Euro pro EU-Zahlung, Resend ist gratis, eine Domain etwa 12 Euro im Jahr. Keine Monatsgebühr. Zeit · ein konzentriertes Wochenende von null bis zum ersten echten Kauf. Sieh es live · gallery.keven-ohlew.com läuft genau auf diesem Bauplan. Klick dich durch, dann liest sich der Rest wie eine Werkstatt-Führung.

Der ganze Shop läuft auf vier Cloudflare-Bausteinen, die ein einziges kleines Programm verbindet. Kein Server, kein Gebastel, kostenloser Start. WORKER

Das Programm. Serviert die Seite und übernimmt die Verkaufs-Logik. Ein Baustein für alles.

Die Datenbank (SQLite). Merkt sich, welche Nummer verkauft ist. Die Wahrheit liegt hier.

Der private Tresor. Hält die Originaldateien, öffentlich nie erreichbar.

Die statische Seite. HTML, CSS, Vorschaubilder · lädt sofort, kostet fast nichts.

Diese vier werden in einer einzigen Datei verdrahtet, der wrangler.toml. Der Worker greift im Code dann über env.DB, env.ORIGINALS und env.ASSETS darauf zu. So sieht die echte Verdrahtung aus: WRANGLER.TOML

# Programm und Domain name = "keoh-gallery" main = "src/index.js" compatibility_date = "2026-06-01" routes = [{ pattern = "gallery.deine-domain.de", custom_domain = true }] # statische Seite · run_worker_first ist Pflicht (Kapitel VII) [assets] directory = "../site" binding = "ASSETS" run_worker_first = true [[d1_databases]] binding = "DB" database_name = "keoh-gallery" [[r2_buckets]] binding = "ORIGINALS" bucket_name = "keoh-gallery-originals"

Angelegt werden die Bausteine mit vier Befehlen. Die IDs, die dabei entstehen, trägst du oben ein: # Datenbank und Tresor anlegen npx wrangler d1 create keoh-gallery npx wrangler r2 bucket create keoh-gallery-originals # Geheimnisse setzen (nie in den Code!) npx wrangler secret put STRIPE_SECRET_KEY npx wrangler secret put STRIPE_WEBHOOK_SECRET npx wrangler secret put RESEND_API_KEY

14,90 €
Kein Ausweis von Umsatzsteuer gemäß § 19 UStG (Kleinunternehmerregelung).
Die ganze Ausgabe · 18 Seiten