Serein
Rust로 만든 가볍고 성능 좋은 Discord 전용 네이티브 클라이언트
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Singlebörse(n) unserer Alleinerziehende-Singles.de /.ch / .at
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Next.js-Frontend für alleinerziehende-singles.de, .at und .ch. Es übernimmt die öffentlichen SEO-Seiten (Städteseiten, FAQ, Über uns, Magazin). Alles rund um Mitgliedschaft und Plattform bleibt auf ICONY. • GitHub: datingnischen/alleinerziehende-singles, Deploy auf Vercel aus main • Vorschau: https://alleinerziehende-singles.vercel.app (AT/CH unter /at/… und /ch/…) DE (alleinerziehende-singles.de, Vorschau ohne Präfix oder mit /de) AT/CH (alleinerziehende-singles.at / .ch, Host-Routing in proxy.ts + lib/markets.ts)README 전문 보기 ↗
Next.js-Frontend für alleinerziehende-singles.de, .at und .ch. Es übernimmt die öffentlichen SEO-Seiten (Städteseiten, FAQ, Über uns, Magazin). Alles rund um Mitgliedschaft und Plattform bleibt auf ICONY.
datingnischen/alleinerziehende-singles, Deploy auf Vercel aus main/at/… und /ch/…)DE (alleinerziehende-singles.de, Vorschau ohne Präfix oder mit /de)
| Pfad | Quelle |
|---|---|
/ | Startseite (app/page.tsx) |
/partnersuche/, /partnersuche/<stadt>/ | data/icony-import.json (Hub + 15 Städte) |
/faq/ | data/icony-import.json, mit FAQPage-JSON-LD |
/ueber-uns/, /ueber-uns/social-media/, /ueber-uns/bewertungen/, /ueber-uns/kooperationen/ | Über-uns-Bereich; /social-media/ und /bewertungen-und-erfahrungen/ leiten per 301 dorthin |
/magazin/, /magazin/<slug>/ | Dateien in content/magazin/<slug>.md (162 Artikel, 56 Seiten), Kategorien in data/magazin-kategorien.json, Kindergeld-2026-Übersicht aus data/kindergeld-facebook-2026.json |
/ueber-uns/suche/?q= | Seitensuche (Magazin aus content/magazin, Städte, Partnersuche-Hub, FAQ, Über uns), noindex, follow, nicht in der Sitemap. /suche gehört ICONY |
AT/CH (alleinerziehende-singles.at / .ch, Host-Routing in proxy.ts + lib/markets.ts)
| Pfad | Quelle |
|---|---|
/ | Marktstartseite (app/market-home/[market]) |
/partnersuche/, /partnersuche/<stadt>/ | data/icony-import-at.json / -ch.json (Hub + je 15 Städte mit ICONY-Widget) |
/magazin/ | Übersicht und Teaser des gemeinsamen Magazins (app/market-magazin/[market]), ohne die deutschen Kindergeld-Inhalte (lib/magazine-market.ts); Artikel-Links zeigen auf die DE-Artikel |
/magazin/<slug>/ | 308 auf https://alleinerziehende-singles.de/magazin/<slug>/ – Artikel gibt es nur einmal (kein Duplicate Content) |
/faq/ | ICONY-FAQ der Landesdomain aus data/icony-import-at.json / -ch.json (rootPages, scripts/import_market_faq.py) |
/ueber-uns/, /ueber-uns/bewertungen/, /ueber-uns/social-media/, /ueber-uns/kooperationen/, /ueber-uns/suche/ | Über-uns-Bereich der Landesdomain (app/market-ueber-uns/[market]); Bewertungen/Social Media/Kooperationen mit Canonical auf die DE-URL |
/robots.txt, /sitemap.xml | je Markt eigene Route |
| alles andere | Platzhalter bzw. Übergabe an die ICONY-Plattform (Login, Hilfe, Kontakt, Infoseiten) |
Login, Registrierung, Suche, Hilfe, Kontakt/Kündigung, Premium, Sicherheit & Datenschutz,
Redaktionelle Kontrolle, Basis-Mitgliedschaft, Erfolgsgeschichten, Video-Dating, Datenschutz,
Impressum, AGB, Barrierefreiheit. Diese Seiten werden immer
absolut auf die Live-Domain verlinkt, nie auf die Vercel-Vorschau (lib/icony-import.ts,
lib/markets.ts, lib/registration-links.ts).
Registrierungslinks tragen als AID nur location (Städteseiten) oder magazin (Magazin),
sonst keinen Parameter.
| Datei | Inhalt | Aktualisieren |
|---|---|---|
data/icony-import.json | DE: Städte-Hub, Städte, Root-Seiten (FAQ, Bewertungen, Social Media, ICONY-Infoseiten) | npm run import:icony -- --market de |
data/icony-import-at.json | AT: Städte-Hub, Städte, ICONY-Widget-Daten; rootPages = FAQ der Landesdomain | npm run import:icony -- --market at; FAQ: python scripts/import_market_faq.py --market at --html <Kopie> (die ICONY-Seite ist hinter dem Reverse Proxy nicht mehr erreichbar, Quelle war die Wayback Machine) |
data/icony-import-ch.json | CH: wie AT | npm run import:icony -- --market ch; FAQ wie AT |
data/asset-catalog.json | Herkunft und sha256 von Logos/Hero-Bild in public/brand/ | npm run import:icony -- --assets (prüfen), --assets --update (neu laden) |
content/magazin/<slug>.md | Magazin: Frontmatter (title, seoTitle, description, kind post/page, published, updated, categories, excerpt, image, imageAlt) + Markdown | von Hand bzw. durch Agents; Vorlage zum Kopieren: content/magazin/_VORLAGE.md |
data/magazin-kategorien.json | Die drei Themenwelten (WordPress-Kategorien 26, 1, 8) | von Hand |
data/weiterleitungen.json | Alte WordPress-Slugs und Archivpfade → aktuelle Pfade (lesen next.config.ts) | von Hand |
public/magazin/wp-content/uploads/… | Bilder (WebP) und Audio-Zusammenfassungen des Magazins, Pfad wie früher in WordPress | Datei ablegen, im Artikel  |
data/kindergeld-facebook-2026.json | Kindergeld-Termine 2026 von der Facebook-Seite | python scripts/update_kindergeld_facebook_2026.py |
data/startseiten.json | Startseitentexte DE/AT/CH (ICONY-CMS, Abschnitt unter den Plattform-Kacheln) | bzw. |
Der ICONY-Import (scripts/import_icony.py, nur Python-Standardbibliothek) liest die Live-Seiten
und übernimmt Titel, Meta-Description, H1 und Text 1:1. Vor dem Schreiben lohnt ein Vergleich:
npm run import:icony -- --market de --check # zeigt Textänderungen auf ICONY, schreibt nichts
npm run import:icony -- --market de # schreibt data/icony-import.json
Gezielte Textkorrekturen (z. B. die von einer Schwesterplattform übernommenen Sätze auf der
Bewertungsseite) stehen als (alt, neu)-Paare in REPLACEMENTS; fehlt ein alter Text, warnt das Skript.
Das Magazin kam bis 2026-10-02 aus WordPress (/magazin/wp-json). Seitdem liest die App alle Inhalte aus
Dateien im Repo; zur Laufzeit und beim Build gibt es keinen WordPress-Request und keine WordPress-Umgebungsvariablen.
content/magazin/_VORLAGE.md kopieren, Frontmatter ausfüllen, committen und pushen – Vercel baut neu.
Das Datum steht nur bei Artikeln (kind: post, sichtbar als „Aktualisiert am …“ aus updated); Seiten (kind: page) zeigen keins.seoTitle (höchstens 60 Zeichen, ohne Seitennamen; die Marke kommt automatisch dazu, wenn es passt) und
description (70–160 Zeichen) stehen im Frontmatter (vorher AIOSEO).AID=magazin; Plattformseiten (/registration/, /?AID=magazin) immer absolut auf die Live-Domain.scripts/import_wordpress.py (mit scripts/wpimport.py) hat die Inhalte am 2026-10-02 aus der
öffentlichen WP-REST-API übernommen. Er überschreibt content/magazin – nach redaktionellen Änderungen im Repo nicht
erneut ausführen. Gezielte Textkorrekturen stehen darin in TEXT_KORREKTUR, alte Slugs in ALTE_SLUGS.public/magazin/wp-content/uploads/ (JPG/PNG als …-jpg.webp), ausgeliefert
über den Asset-Host (nginx reicht nur Seitenrouten durch).ICONY (Heiko Grossmann) liest auf den Plattform-Startseiten drei Magazin-Teaser im WP-Format. Der Endpunkt wird aus den
Magazin-Dateien erzeugt (lib/wp-rest-compat.ts, app/magazin/wp-json/[[...route]]/route.ts, Umleitung von ?rest_route= in proxy.ts):
https://alleinerziehende-singles.de/magazin/wp-json/wp/v2/posts?per_page=3&_embed=1 (außerdem /posts/<id>, /categories, /tags, /media/<id>)…/magazin/?rest_route=/wp/v2/posts und …/magazin/index.php?rest_route=/wp/v2/postsper_page, page, _embed, _fields, orderby, order, categories, slug, search, include, after/before;
Header X-WP-Total, X-WP-TotalPages, CORS *, Cache-Control; OPTIONS/HEAD.kind: post), keine Seiten. Kein /wp/v2/users (404), author nur als ID, kein _embedded.author.
link ist die Live-URL https://alleinerziehende-singles.de/magazin/<slug>/, Bild-URLs kommen vom Asset-Host (/app-assets/…)./magazin/wp-json/ (und /magazin/ mit rest_route, /magazin/index.php) muss wie die Seitenrouten an Vercel
durchgereicht werden (Upstream-Pfad unverändert oder mit /de-Präfix, beides geht; kein Slash anhängen).data/magazin-bilder.json; nach neuen Titelbildern node scripts/build-magazine-image-sizes.mjs ausführen.Stadtliste, Reihenfolge und Stadtnamen stehen im Skript. Neue Städte auf dem Live-Hub meldet es als
Warnung. Bewusste Korrekturen gegenüber der Live-Seite stehen in OVERRIDES im Skript, sonst
gehen sie beim nächsten Import verloren.
npm install
npm run dev # http://localhost:3000, AT/CH unter /at und /ch
npm test # node --test tests/*.test.mjs
npm run lint
npm run build
Hintergrund zum Projektstart: docs/archive/MIGRATION_KICKOFF-2026-07-30.md,
Quelleninventur (Stand vor der WordPress-Ablösung): SOURCE_INVENTORY.md.
Familien-Look aus den Logofarben (Grün #58ad47, Sonnengelb #f8ae14), Überschriften Bricolage Grotesque,
Fließtext Open Sans. Gemeinsame Bausteine (ae-*) in app/globals.css, je Seitentyp eigenes CSS:
| Seitentyp | Komponente |
|---|---|
| Kopf-/Fußzeile, Sticky-CTA | components/site-shell.tsx, site-header.tsx, sticky-cta.tsx |
| Stadtseite DE/AT/CH („Familien-Kompass“) | components/city/city-page.tsx, Daten lib/city-pages.ts, Kapitel lib/city-guide.ts |
| Städteübersicht mit Karte | components/city/city-hub.tsx, lib/city-hub.ts |
| Startseite DE/AT/CH | components/home/home-page.tsx, lib/startseite.ts |
| FAQ, Über uns, Bewertungen, Social Media, Kooperationen, Suche | components/info/*, lib/faq.ts, lib/about.ts |
| Magazin-Start, Themenwelten, Artikel | app/magazin/*, components/magazine/*, lib/magazine.ts, lib/magazine-content.ts |
| 404 / AT-CH-Platzhalter | components/not-found-view.tsx |
npm run import:startseitenpython scripts/import_startseiten.py [--check]data/country-maps.json | Landesumrisse DE/AT/CH für die Karten (Natural Earth, gemeinfrei) | python scripts/build_country_maps.py |