GR8R STUDIO : toute la gestion de projet dans une seule page, sans framework
⏱️ Temps de lecture estimé : 4 minutes
https://github.com/gr8rstudio/gr8r-studio/
📌 GR8R STUDIO est un espace de gestion de projet qui tient dans un seul onglet : tableau, liste, tableur, calendrier, échéancier et fichiers pour les mêmes tâches, écrit en JavaScript et en CSS, assemblé par Vite. Aucun framework UI, aucune dépendance runtime.
La plupart des outils de tâches vous forcent à choisir : un tableau pour l’équipe, un tableur pour les échéances, un dossier pour les pièces jointes. Gr8r Studio part du principe qu’un projet tient dans une page. Vous passez du board au tableur pour trier par échéance, au calendrier pour voir la semaine, à l’échéancier pour la chronologie — sans rien recopier, puisque toutes les vues lisent le même store.
Le code est rangé en trois étages. core/ et data/ ne dépendent de rien. ui/, shell/, pages/, views/ et overlays/ construisent du HTML à partir de l’état. actions/ modifient cet état, puis relancent le rendu. Chaque page est une fonction qui renvoie une chaîne de caractères : pas de DOM virtuel, pas de composants à monter. Les interactions se déclarent dans le balisage (data-a="newTask") et un délégué central fait le lien avec l’action. Le rendu garde le focus et la position de défilement, ce qui est rarement le premier réflexe quand on écrit son propre moteur. Le tout représente environ 8 700 lignes de JavaScript sur 52 fichiers, plus 5 200 lignes de CSS.
Au quotidien, tout passe par la palette de commandes en ⌘K et par les raccourcis : G suivi de H, I, T, P ou C pour changer de page, N pour une tâche, P pour un projet, / pour chercher, ? pour la liste complète, [ pour replier la barre latérale. Le glisser-déposer est en HTML5 natif — colonnes, lignes, jours du calendrier — et on peut lâcher un fichier directement sur une tâche pour le joindre.
Le vocabulaire est complet sans faire catalogue : cinq statuts, de Backlog à Done, quatre niveaux de priorité, huit labels colorés, sous-tâches, archivage, équipes et quatre rôles, de Owner à Guest. Le moteur de filtres travaille sur statut, responsable, priorité, échéance, projet, labels et dates de création ou de modification. Les vues filtrées se sauvegardent et se rappellent.
Point important : tout se passe côté client. L’état est écrit dans localStorage (clé gr8r.v2) par-dessus un jeu de données de démonstration. Il n’y a pas de serveur, et le prototype l’assume — sur l’écran de réinitialisation du mot de passe, il précise qu’un bouton tient lieu de lien reçu par e-mail. Vous avez donc un client complet, à brancher sur une API si vous voulez du multi-utilisateur réel. Les préférences, elles, existent déjà : thème clair, sombre ou système, six couleurs d’accent, deux densités d’affichage, mouvement réduit, fuseau horaire et format de date.
Deux réserves. Le dépôt ne déclare aucune licence : pas de fichier LICENSE, ce qu’il faut négocier avant tout usage sérieux. Et le lien homepage du dépôt renvoie 404, même si la démo répond correctement ailleurs. Le projet est tout neuf : trois commits, une CI qui lance le lint, la vérification Prettier et le build à chaque push, et un déploiement Vercel décrit dans vercel.json.
Je trouve le pari convaincant, et je le dis sans détour : la plupart des « clones Linear » s’arrêtent à un joli tableau. Ici, la partie sérieuse est sous le capot — moteur de filtres, palette de commandes, glisser-déposer partout, préférences persistées — le tout sans une seule dépendance au runtime. C’est le genre d’outil qu’on ouvre pour juger une idée, et qu’on garde ouvert parce qu’il va vite. À condition d’accepter que rien n’est encore synchronisé entre deux navigateurs.
- 🗂️ Tableau, liste, tableur, calendrier, échéancier et fichiers sur les mêmes tâches
- ⌨️ Palette de commandes en ⌘K et raccourcis de navigation partout
- 🖱️ Glisser-déposer natif, y compris dépôt de fichier sur une tâche
- 🎚️ Thème, accent, densité et mouvement réglables, mémorisés en local
- 🧩 Zéro dépendance runtime : JavaScript, CSS et Vite, rien d’autre
Sources






