Vaultify est une application web de découverte technique. Elle transforme une recherche naturelle en résultats GitHub et Web, avec README formaté, favoris, collections et exploration des développeurs béninois.
- Recherche GitHub et Web exécutée côté serveur via des routes API Vercel.
- Expansion des requêtes avec Groq et recherche Web via DuckDuckGo, SearXNG et Firecrawl en fallback.
- Vue détaillée des repositories avec README formaté et sécurisé.
- Exploration spécialisée des développeurs béninois.
- Synchronisation facultative des favoris, collections et historiques dans Neon Postgres.
- Recherche parallèle sur l'API GitHub et la recherche Web.
- Jusqu'à 30 repositories GitHub et résultats Web indépendants par recherche.
- Recherche repository forcée sur les résultats publics, même avec token GitHub.
- Profils développeurs avec repos publics, statistiques GitHub et badges committers.top.
- Export des favoris en
JSONetMarkdown. - SEO renforcé : Open Graph, Twitter Cards, JSON-LD, sitemap et robots.
| Domaine | Outils |
|---|---|
| Frontend | React 18, TypeScript, Vite |
| Backend | API routes Vercel, Zod, fetch avec retries et timeouts |
| Recherche | GitHub REST, Serper Web, Groq |
| Persistance | Neon Postgres |
| UI | Tailwind CSS, Lucide Icons |
| State | Zustand |
| Routing | React Router |
| Tests | Vitest |
- L'utilisateur décrit son besoin en langage naturel.
- Le frontend interroge GitHub directement pour préserver le flux de repositories existant.
- La route
/api/searchinterroge Serper Web et Groq côté serveur. - Les résultats Web sont affichés indépendamment des repositories GitHub.
- Les favoris, tags, notes et collections restent disponibles dans l'interface.
- Les données peuvent être synchronisées dans Neon et exportées en
JSONouMarkdown.
npm install
npm run devnpm run dev
npm run build
npm run preview
npm run lint
npm run testsrc/pages/Landing.tsx: landing page et informations produit visiteurs.src/pages/Results.tsx: affichage des repositories GitHub et des résultats Web.src/pages/RepoDetail.tsx: detail repository et README formate.src/pages/DevProfile.tsx: profil developpeur GitHub et committers.top.src/pages/BeninDevs.tsx: exploration des developpeurs beninois.src/lib/github.ts: couche API GitHub, découverte des ressources accessibles et enrichissement committers.top Benin.src/lib/searchApi.ts: client frontend de la recherche Web.api/search.ts: route serveur d'orchestration Groq et Web.api/data.ts: synchronisation anonyme avec Neon Postgres.db/migrations/001_vaultify_data.sql: schéma initial Neon.
- Verifier systematiquement la licence, l'activite et la qualite du README d'un repo.
- Sans token GitHub, les quotas d'API sont plus limites; le token optionnel est conserve seulement dans la session du navigateur.
- Les variables
VITE_*et les secrets serveur sont configures au deploiement.
public/favicon.svgpublic/favicon.icopublic/og-image.jpg(1200x630)public/og-image-square.jpg(1200x1200)public/sitemap.xmlpublic/robots.txt
Copier .env.example vers l'environnement serveur local. Pour Vercel, ajouter ces variables dans Project Settings → Environment Variables pour Production, Preview et/ou Development. Les secrets ne doivent jamais être préfixés par VITE_.
GITHUB_TOKEN: token GitHub serveur facultatif, pour augmenter les quotas.SEARXNG_URL: URL d'une instance SearXNG facultative, utilisée après DuckDuckGo.FIRECRAWL_API_KEY: clé Firecrawl facultative, utilisée en dernier fallback.GROQ_API_KEYetGROQ_MODEL: clé et modèle Groq.DATABASE_URL: chaîne de connexion Neon Postgres.SESSION_SECRET: secret serveur utilisé pour signer les sessions anonymes.APP_ORIGIN: origine autorisée par les API, par exemplehttps://votre-app.vercel.app.
Endpoints principaux :
POST /api/search: recherche GitHub + web, résultats partiels acceptés.POST /api/ai-proxy: analyse Groq côté serveur.GET|PUT /api/data: synchronisation des favoris, collections et historique.
Le token GitHub saisi par l'utilisateur est transmis uniquement dans la requête HTTPS GitHub, utilisé pour la session du navigateur puis non envoyé à Neon. Il n'est pas inclus dans le cache serveur.
La migration initiale Neon se trouve dans db/migrations/001_vaultify_data.sql. Exécutez-la une fois dans la console SQL Neon avant d'utiliser la synchronisation des données. L'API vérifie aussi automatiquement la présence de la table au premier appel.
- Importer le dépôt GitHub dans Vercel.
- Garder le framework détecté comme Vite et la commande
npm run build. - Ajouter les variables serveur ci-dessus sans les commiter.
- Exécuter la migration Neon.
- Déployer puis vérifier
/api/search, les favoris et les résultats Web.
Le développement local utilise le middleware API de vite.config.ts, qui charge .env et expose les routes /api/* sur http://localhost:8080.