Shares

Shares · Architecture

Une porte de frigo numérique sans serveur à maintenir.

Une application web installable sans framework qui parle directement à Supabase. Une seule fonction côté serveur enrichit les liens et envoie les notifications. Chaque modification poussée sur GitHub se déploie toute seule.

Le schéma

  1. 01 — Client

    Application web installable

    Elle tourne sur iPhone ou sur ordinateur. Elle est écrite en HTML, CSS et JavaScript sans framework. Un service worker reçoit les notifications même application fermée.

    Dialogue avec le backend (04) grâce au jeton de l'utilisateur.

  2. 02 — Code

    GitHub

    Un seul dépôt réunit l'application, la base et la fonction.

    Déploie l'application sur Netlify (03) et la base avec la fonction sur Supabase (04) à chaque modification.

  3. 03 — Hébergement

    Netlify

    Il publie l'application et ne reçoit aucun secret : seulement l'adresse du backend et une clé publique.

    Sert les pages à l'application (01).

  4. 04 — Backend · Supabase

    Comptes, base, images et fonction

    Auth gère les comptes par email et mot de passe. La base Postgres cloisonne chaque espace avec des règles par ligne. Storage garde les images et les couvertures. Realtime met à jour les partages en direct.

    La fonction ingest reçoit un lien ou un titre. Elle l'enrichit puis l'enregistre et prévient les autres membres.

    Interroge les sources (06) et envoie les alertes aux services push (05).

  5. 05 — Notifications

    Services push

    Apple, Google et Mozilla remettent les notifications. Le Web Push est signé avec des clés VAPID.

    Remet la notification à l'application (01) même fermée.

  6. 06 — Sources

    API externes

    TMDB pour les films et les séries. Google Books pour les livres. Spotify pour la musique. Les pages web fournissent le titre et l'image d'un lien.

    Interrogées uniquement par la fonction ingest.

Version actuelle de Shares en production.

01

Sans serveur à maintenir

Il n'y a pas de serveur applicatif à louer ni à surveiller. Le navigateur parle directement à Supabase et la sécurité vit dans la base. Une seule petite fonction tourne à la demande. Pour un cercle d'amis cela coûte peu et laisse moins de choses pouvant tomber en panne. Rien n'est à mettre à jour ni à redémarrer.

02

Cloisonné par espace

Chaque espace réunit pour le moment 2 à 4 personnes. Des règles par ligne dans la base garantissent que personne ne lit les partages d'un autre espace.

03

Les secrets restent côté serveur

Les clés de TMDB, de Spotify et de Google Books ne sont jamais dans l'application. Seule la fonction ingest les connaît.

04

Déploiement continu

Chaque modification poussée sur GitHub met à jour le site sur Netlify. Elle applique aussi les changements de base et redéploie la fonction sur Supabase.