Ecommerce Template
Next.js·React 등으로 만든 최신 전자상거래 템플릿
방문자는 자신의 삶을 알지만 카탈로그는 모른다. Seeckr가 듣고 질문해 진짜 필요한 제품으로 안내한다
Vos visiteurs connaissent leur vie, pas votre catalogue. Seeckr les écoute, leur pose les questions qu'ils n'auraient jamais formulées seuls, et les conduit au produit qui leur va vraiment.
커머스TypeScript · PythonGitHub @SpecksIO온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Le site public de Seeckr, servi sur seeckr.fr. Next.js 16 (App Router), Tailwind CSS 4, TypeScript, Biome. Toutes les pages sont statiques, régénérées toutes les 10 minutes. Seule la route du formulaire s'exécute à la demande. Le site poursuit trois buts, dans cet ordre : faire demander un Seeckr personnalisé gratuit, faire s'inscrire au prochain webinar, et vendre Seeckr aux e-commerçants. Chaque page se termine sur ces actions. Le site tourne sur. Sans NEXT_PUBLIC_SITE_URL, le site suppose https://seeckr.fr. Aucune base de données.README 전문 보기 ↗
Le site public de Seeckr, servi sur seeckr.fr. Next.js 16 (App Router), Tailwind CSS 4, TypeScript, Biome.
Toutes les pages sont statiques, régénérées toutes les 10 minutes. Seule la route du formulaire s'exécute à la demande.
Le site poursuit trois buts, dans cet ordre : faire demander un Seeckr personnalisé gratuit, faire s'inscrire au prochain webinar, et vendre Seeckr aux e-commerçants. Chaque page se termine sur ces actions.
| Besoin | Outil |
|---|---|
| Framework | Next.js 16 (App Router, Turbopack, React 19) |
| Styles | Tailwind CSS 4, charte Seeckr dans src/app/globals.css |
| Langage | TypeScript 5 (strict) |
| Lint et format | Biome 2 |
| Lint markdown | markdownlint-cli2 |
| Tests unitaires | Vitest 5 et Testing Library (jsdom) |
| Tests de bout en bout | Playwright (Chrome, Firefox, Pixel 5, iPhone 12) |
| Performance | Lighthouse CI (profils bureau et mobile) |
| Accessibilité | Pa11y (WCAG 2 AA) |
| Données structurées | JSON-LD typé avec schema-dts |
pnpm install
cp .env.example .env.local
pnpm dev
Le site tourne sur http://localhost:3000.
| Variable | Nécessaire | Rôle |
|---|---|---|
NEXT_PUBLIC_SITE_URL | En production | Adresse canonique. Alimente métadonnées, JSON-LD, sitemap, robots, llms.txt. |
RESEND_API_KEY | Pour le formulaire | Envoi de l'e-mail de demande, expéditeur [email protected]. |
LEAD_EMAIL_TO | Pour le formulaire | Destinataire des demandes. |
SLACK_WEBHOOK_URL | Pour le formulaire | Webhook entrant qui reçoit chaque demande. |
Sans NEXT_PUBLIC_SITE_URL, le site suppose https://seeckr.fr. Aucune base de données.
Le contenu vit dans src/content/, jamais dans les composants :
home.ts : accueil, la conversation jouée en boucle, la FAQverticals/*.ts : un fichier par verticale, alimentant le gabarit src/app/[vertical]/page.tsxalgimouss.ts : les chiffres du seul client citable, avec leur période et leur source, et la page de cas clientwebinar.ts : titre, date et lien d'inscription du prochain webinardoctrine.ts : ce qui distingue le conseil Seeckr d'un chatbotsrc/lib/site.ts : identité du site, appel à l'action, liste des pages publiquesModifier les trois champs de src/content/webinar.ts. L'en-tête, le hero et les blocs webinar lisent cette constante.
Une date passée ou vide fait disparaître tout ce qui concerne le webinar, y compris le lien du menu.
Seul Algimouss peut être nommé, et ses chiffres mesurent le conseil, jamais des ventes. Tout chiffre affiché vient de
src/content/algimouss.ts et s'accompagne du nom du client et de la période. Les scores de compatibilité des
conversations d'exemple sont des illustrations, attribuées à « Votre marque ».
La page /cas-clients/algimouss porte les chiffres au complet. L'accueil et les pages verticales n'en montrent que
teaserFigures, puis renvoient dessus : un chiffre ne se raconte en entier qu'à un seul endroit.
/mon-seeckr poste vers une action serveur (src/app/mon-seeckr/actions.ts) qui valide les trois champs
(src/lib/lead.ts), écarte les robots par un champ piège, puis envoie un e-mail via Resend et un message Slack.
Un seul des deux canaux suffit pour que la demande soit considérée comme reçue. Le formulaire fonctionne sans
JavaScript côté client.
pnpm dev, pnpm build, pnpm start, pnpm previewpnpm lint et pnpm format : Biome ; pnpm lint:md : markdownlintpnpm test:run : tests unitaires ; pnpm test:e2e : Playwrightpnpm lighthouse, pnpm lighthouse:mobile, pnpm pa11y, pnpm webhint : audits, rapports dans reports/./scripts/build-integrations-video.sh [captures] : refait public/media/integrations.mp4 et son affiche à partir
des maquettes du banc d'essai Seeckr. Demande ffmpeg. Les emplacements montrés, leur ordre et leur durée sont en
tête du script ; les textes qui les accompagnent vivent dans integrations de src/content/home.tsSur un poste sans les bibliothèques système de Chromium, CHROME_PATH pointe vers le Chrome utilisé par les audits,
et Playwright s'en sert aussi : CHROME_PATH=$(which google-chrome) pnpm test:e2e.
/sitemap.xml et /robots.txt sont générés depuis pages dans src/lib/site.tsrobots.txt autorise explicitement les principaux robots d'assistants/llms.txt suit la spécification llmstxt.orgLa charte de référence est brand/charte.png (septembre 2026) : fond #16113A, violet actif #534AB7, sections
claires #EEEDFE, Poppins pour les titres, Inter pour le texte, Pacifico réservé au wordmark. Aplats uniquement,
aucun dégradé décoratif. Chaque animation montre le produit ou guide la lecture, et s'arrête sous
prefers-reduced-motion.