Retour aux projets
Applicationlive2026

Synoid

Un registre collaboratif de liens auto-hébergeable pour conserver, retrouver et discuter ses ressources depuis le web et le mobile.

Galerie

5 captures

Contexte

Synoid est un registre collaboratif de liens auto-hébergeable. Il permet de conserver des ressources web, de les retrouver et d’en discuter sans déléguer la maîtrise des données à une plateforme centralisée.

Conception

Le projet sépare un client commun Next.js, disponible en PWA et sur Android avec Capacitor, des instances API NestJS indépendantes. Chaque instance possède sa base PostgreSQL, ses utilisateurs et son stockage local. Un même client peut conserver plusieurs connexions à ces instances.

Les contrats TypeScript sont regroupés dans un package partagé. Kysely porte les requêtes SQL et Drizzle les migrations. Un worker séparé traite l’enrichissement des liens via une file PostgreSQL et Chromium headless.

Fonctionnalités

  • Création et édition de liens avec visibilité privée, partagée ou publique
  • Partage explicite avec d’autres utilisateurs et permissions sur les ressources
  • Classification par tags et recherche full-text PostgreSQL
  • États personnels de lecture, favoris et archives combinables avec les filtres
  • Commentaires en fils, réponses, mentions et activité des ressources
  • Enrichissement asynchrone des métadonnées et captures de pages
  • Interface responsive avec thèmes clair et sombre
  • Déploiement auto-hébergé avec Docker Compose

Contraintes

L’isolation repose sur chaque instance API. La recherche et la détection des doublons doivent respecter la visibilité des ressources. Le traitement des URL externes s’effectue dans un pipeline d’enrichissement sécurisé, distinct des requêtes interactives.

La PWA propose une lecture hors ligne dégradée. Les modifications de ressources et de commentaires nécessitent une connexion et un nouvel essai explicite en cas d’échec.