Le projet Pankosmia
Table des matières
Philosophie
Pankosmia est né d’une conversation autour du principe First the monkey. Pour faire court, si votre projet consiste à faire réciter Shakespeare à un singe sur un piédestal, ne vous concentrez pas sur le piédestal. Autrement dit, attaquez-vous d’abord à la partie difficile. Pour nous, deux des parties difficiles étaient la prise en charge de Graphite et la garantie d’une expérience hors ligne d’abord, car ne pas le faire pourrait mettre des personnes en danger.
Quelques corollaires de « First the Monkey » pour nous :
- se concentrer sur les problèmes difficiles et non résolus
- la solution fonctionnelle mais maladroite que nous pouvons construire et livrer vaut mieux que la belle solution que nous ne pouvons ni construire ni livrer, et elle vaut aussi plus que la belle interface que nous pouvons livrer mais qui ne fait pas ce qu’il faut sous le capot
- peaufiner ce que nous savons déjà peaufiner est rarement urgent
- les utilisateurs ont besoin de développeurs heureux, car ce sont les développeurs qui construisent les systèmes dont les utilisateurs ont besoin
Caractéristiques du projet
- logiciel libre (mais les produits tiers peuvent inclure des clients à code source fermé)
- radicalement ‘hors ligne d’abord’
- prise en charge des polices compatibles Graphite
- construit autour de Scripture Burrito pour tout type de contenu
- plusieurs produits « white app » (basés sur le même code qui n’affiche aucun nom de produit en soi) pouvant être personnalisés et maintenus par différentes organisations et développés pour répondre à différents besoins utilisateurs
- plusieurs clients par produit, y compris des clients standard pour les fonctionnalités de base
Architecture
Les produits sont livrés sous forme d’application Electronite, c’est-à-dire Electron avec la prise en charge des polices compatibles Graphite. Un produit comprend généralement :
- un serveur HTTP localhost, écrit en Rust, qui gère
- l’accès aux burritos locaux
- les options de langue et de police
- l’accès aux serveurs burrito (lorsque Internet est activé)
- l’état partagé de l’application entre les clients
- plusieurs clients, servis sous forme de HTML/CSS/Javascript compilé :
- les clients principaux utilisent React et MUI, mais l’utilisation d’autres frameworks est possible
- des bibliothèques Node de base pour simplifier la création de nouveaux clients
- une chaîne de compilation en ligne étendue qui gère des builds pour plusieurs systèmes d’exploitation