wayBetter

(FOSS) Désormais, tout est une app.

Les apps que vous utilisez, en bien mieux.

wayBetter place les apps que vous utilisez déjà dans une fenêtre native légère et les étend sur place, comme BetterDiscord étend Discord. Onglets, volets partagés, tous vos comptes côte à côte, thèmes, plugins et correctifs pour les bugs de l’app elle-même. N’importe qui peut créer un thème ou un plugin. N’importe qui peut construire la prochaine app.

Obtenir wayBetter for X

Télécharger wayBetter for X pour Windows · gratuit · GPL-3.0-or-later · aucune télémétrie sur ce que vous lisez ou postez

  • 14 thèmes dans wayBetter for X
  • 14 plugins fournis
  • 9 correctifs pour les bugs de X
  • 7.9 MB à télécharger
  • 0.23 s pour s’ouvrir
  • 0 dépendance dans waybetter
  • $0 pour toujours

01 Le problème

Chaque app ne livre que la moitié de ce qu’il vous faut.

Le reste, vous ne pouvez pas l’avoir : c’est l’app qui décide du nombre de comptes, de son apparence et du moment où ses bugs sont corrigés. wayBetter garde l’app et ajoute l’autre moitié.

  1. A

    Un compte par fenêtre. Déconnexion, connexion, et on recommence.

    Tous vos comptes, côte à côte, tous connectés en même temps.

  2. B

    Un bug dans l’app ? Attendez qu’ils le corrigent.

    Corrigé sur votre machine, sur place, aujourd’hui.

  3. C

    L’apparence qu’ils ont choisie. Les fonctions qu’ils ont livrées.

    Des thèmes et des plugins que n’importe qui peut écrire.

  4. D

    Un navigateur entier embarqué dans chaque client de bureau.

    Une seule fenêtre native légère, sur le WebView du système.

Légère par conception

Désormais, tout est une app. Et une app légère.

Une fenêtre native sur le WebView que votre système possède déjà, pas un navigateur de plus embarqué dans chaque app.

7.9 MBl’installateur Windows complet
0.23 sdu lancement à la fenêtre à l’écran
17 mspour que thèmes, correctifs et plugins se chargent dans la page
0tâche longue ajoutée à la page

Mesuré sous Windows 11 avec wayBetter for X 1.0 : taille de l’installateur du téléchargement publié ; médiane de 3 lancements ; évaluation de l’exécution et tâches longues (>50 ms) mesurées avec et sans wayBetter.

02 Un seul système

Trois couches autour de la vraie app.

Chaque app wayBetter est le même système : une Coque native, une Exécution dans la page et un petit Adaptateur qui connaît l’app. L’app, elle, continue de faire ce qu’elle fait. Rien ne passe par un proxy ni n’est réhébergé ; les changements n’ont lieu que sur votre machine.

01 · Coque

Une fenêtre native légère.

Tauri 2, sur le WebView du système. Le cadre que vous aimeriez voir dans chaque app :

  • Onglets, onglets épinglés et volets partagés : faites glisser un onglet ou un lien vers un bord
  • Chaque compte dans son propre profil, tous connectés côte à côte
  • Routage des liens : ouvrir dans le même onglet, à côté, dans un nouvel onglet ou dans votre navigateur
  • Barre d’adresse et palette de commandes Ctrl K
  • Des mises à jour signées qui s’installent en silence

02 · Exécution

Thèmes et plugins, dans la page.

Injectée dans les pages de l’app elle-même, partagée par toutes les apps wayBetter :

  • Des thèmes sur une seule base de couleurs (un modèle OKLab de la palette de l’app)
  • Des plugins JavaScript façon BetterDiscord, avec une petite API d’aide
  • Un seul hub DOM et un seul hub de requêtes, pour que les fonctions restent légères
  • Votre propre CSS, appliqué après le thème

03 · Adaptateur

Une petite pièce par app.

La seule partie qui connaît l’app : ses hôtes, sa mise en page, son bouton de compte et les données qu’elle charge déjà.

  • Un SiteSpec natif et un SiteAdapter côté page
  • Une liste courte et relue de ce que les onglets de l’app peuvent appeler
  • Tout le reste vient du système

03 La première app

wayBetter for X.

Le vrai x.com en onglets et en volets, tous vos comptes côte à côte, quatorze thèmes, huit plugins de zone et des correctifs pour les bugs livrés par X : likes et abonnements qui se croisent, brouillons qui disparaissent, fil qui saute. Disponible dès maintenant pour Windows, macOS et Linux.

14thèmes intégrés, plus les vôtres
14plugins fournis, désactivés tant que vous ne les activez pas
9correctifs pour les bugs de X
36ajustements pour masquer, afficher et modifier X
  • 01
    Tous vos comptes, côte à côte

    Onglets et volets partagés sur le vrai x.com, chaque compte connecté en même temps dans son propre profil.

  • 02
    Les bugs de X, corrigés

    Des J’aime et des abonnements qui aboutissent, votre place gardée au retour, pas de sauts dans le fil, des envois retentés.

  • 03
    Un coffre à brouillons

    Chaque brouillon est conservé en local avec son historique de révisions, et remis en place quand X le perd.

  • 04
    Quatorze thèmes, huit plugins de zone

    Des refontes complètes, pas seulement des couleurs. Reader+, Chat+, Media+ et cinq autres plugins de zone, un interrupteur pour chaque fonction.

  • 05
    Ctrl+K pour tout

    Une palette de commandes pour les onglets, les comptes, les paramètres et la recherche X avec des pastilles d’opérateurs.

  • 06
    Deck

    Un deck façon TweetDeck : des colonnes de X côte à côte, chacune dans le compte de votre choix, avec filtres et compteurs de non-lus.

wayBetter for X

Gratuit · open source · se met à jour en silence

Télécharger pour Windows Tout voir

Windows · macOS · Linux

04 Faites-le vôtre

N’importe qui peut créer des thèmes et des plugins.

Un thème, c’est un fichier JSON. Un plugin, c’est un fichier JavaScript. Pas de file de validation ni de compte pour s’en servir : écrivez-le, déposez-le dans le dossier, partagez le fichier ou publiez-le dans la Boutique. Si vous savez écrire du CSS, vous pouvez relooker une app. Si vous savez écrire un peu de JavaScript, vous pouvez ajouter la fonction qui n’est jamais arrivée.

Thèmes

Couleurs, polices, formes, mise en page, arrière-plan, effets.

Importez et exportez du JSON dans le panneau Apparence. Le contraste est vérifié pour vous : le texte reste lisible sur chaque surface.

AccueilPoster
Pour vousAbonnements
wayBetter@CRTkafa · 2m

Quatorze thèmes sont fournis. Le quinzième, c’est le vôtre.

1248♥ 101
playfishies@playfishies · 9m

Un fichier JSON. Déposez-le dans Apparence → Importer.

Night Ink
deep-sea.theme.json
{
  "name": "Deep Sea",
  "author": "@you",
  "mode": "dark",
  "colors": { "bg": "#06141b", "text": "#e6f4f1", "accent": "#2ee6c5" },
  "font": { "family": ["Geist"], "scale": 1.02 },
  "shape": { "radius": 14, "button": 9999, "avatar": "rounded" },
  "layout": { "density": "compact", "cards": true },
  "background": { "kind": "pattern", "pattern": "grid",
                  "ink": "#2ee6c5", "opacity": 0.08, "size": 28 },
  "effects": { "hover": "glow" }
}
Plugins

Un fichier. start() et stop().

Un *.plugin.js façon BetterDiscord, déposé dans le dossier des plugins et activé dans les Paramètres. Une API d’aide s’occupe des parties pénibles.

copy-quote.plugin.js
/**
 * @name Copy Quote
 * @description y on a focused post copies "@handle: text".
 * @version 1.0.0
 * @author @you
 */
module.exports = class CopyQuote {
  start() {
    const api = window.wayBetter.api;
    this.scope = api.scope();
    this.scope.onKey((event, post) => {
      if (event.key !== 'y' || !post) return;
      const t = api.tweet(post);
      if (t) api.copyText(`@${t.handle}: ${t.text}`)
        .then(() => api.toast('Copied'));
    });
  }
  stop() { this.scope.dispose(); }
};

API d’aide

  • storage(ns)
  • observe(sel, fn)
  • onRouteChange(fn)
  • onKey(fn)
  • tweet(el)
  • copyText(s)
  • toast(msg)
  • injectCSS(id, css)
  • waitFor(sel)
  • scope()

Quatorze sont fournis avec wayBetter for X

  • Thread Reader
  • Exact Timestamps
  • Clean Links
  • Copy as Markdown
  • Alt-text Reminder
  • User Notes
  • Muted Regex
  • Reading Time
  • Media Grid Focus
  • Keyboard Plus
  • Emoji Picker
  • Hide Blue Checks
  • Focus Mode
  • Reply Guard

05 Bâtir dessus

Tout le système tient en un seul paquet.

L’exécution de page et les modèles de la coque derrière wayBetter for X sont sur npm sous le nom waybetter : de l’ESM pur avec ses types, chaque module sous son propre sous-chemin, zéro dépendance. Prenez les pièces qu’il vous faut, ou construisez une app entière.

terminal

npm i waybetter

zéro dépendanceESM + .d.tsruntime/* et shell/*GPL-3.0-or-later
adapter.ts · extrait du README, abrégé
import { configureRuntime, type SiteAdapter }
  from 'waybetter/runtime/site';

export const KICK: SiteAdapter = {
  product: 'wayBetter for Kick',
  hosts: ['kick.com'],
  runtimeGlobal: 'WayBetterKick',
  apiMarks: ['/api/'],
  // plugins, rail, account, links, themeSources …
};
configureRuntime(KICK);

waybetter/runtime/*

  • sitela racine de composition de l’adaptateur
  • domHubun seul MutationObserver, une seule frame
  • netHubun seul hook fetch/XHR pour toutes les fonctions
  • pluginApides aides pour les plugins utilisateur
  • themeTokensle modèle de couleurs OKLab
  • paneNavune seule navigation en vue partagée
  • linkRoutingà côté, onglet ou navigateur
  • accountReportquel compte est connecté

waybetter/shell/*

  • addressModelles pastilles de la barre d’adresse
  • paneModelvolets partagés, liens à côté
  • linkDropdéposez un lien, obtenez un volet
  • palettele classement de la palette de commandes
  • profileModelles profils de compte
  • updateModella pastille de mise à jour
  • windowControlsbarre de titre et boutons de fenêtre
  • chrometailles de la barre de titre et de la barre d’outils

06 La suite

X était la première. La prochaine, c’est vous qui la construisez.

Toute app qui a une version web peut recevoir la même fenêtre, les mêmes thèmes et plugins. Celles-ci pourraient être les suivantes. Aucune n’est annoncée, aucune n’a de date : elles attendent que quelqu’un écrive l’adaptateur. L’exemple d’adaptateur du README lui-même, c’est Kick.

possible

wayBetter forYouTube?

Onglets et volets partagés pour les vidéos, tous les comptes de chaîne côte à côte, thèmes, plugins.

possible

wayBetter forKick?

Des streams côte à côte dans une seule fenêtre légère, vos plugins de chat, votre thème.

possible

wayBetter forTwitch?

Des volets partagés pour plusieurs streams, tous les comptes connectés, des plugins pour le chat.

possible

wayBetter forDiscord?

L’app web dans une fenêtre Tauri légère à la place du client lourd. La même coque, les mêmes plugins.

wayBetter forl’app que vous utilisez.

Écrivez l’adaptateur. La coque, l’exécution, les thèmes et les plugins viennent avec.

npm i waybetter

Construisez la prochaine.

Partez du paquet et de l’exemple d’adaptateur du README. Vous avez construit quelque chose ? Ajoutez-le à la liste « Projets qui utilisent wayBetter » avec une pull request.

Commencer à construire

Des apps possibles, pas des produits annoncés. YouTube, Kick, Twitch et Discord sont des marques de leurs propriétaires respectifs ; leurs logos ne sont affichés que pour nommer les services. wayBetter n’est affilié à aucun d’eux, ni approuvé ou sponsorisé par eux.

07 Gratuit et open source

Aucun piège. Lisez chaque ligne.

  1. i.

    Gratuit

    Pas d’offre payante, pas de pub, pas de vente forcée. Ni maintenant, ni « après la bêta ».

  2. ii.

    Ouvert

    GPL-3.0-or-later. Le framework et les apps ont leur code source public sur git.crt.fyi.

  3. iii.

    Privé

    Pas d’analytique, aucune télémétrie sur ce que vous lisez ou postez. Brouillons, paramètres et plugins restent sur votre machine.

  4. iv.

    À vous

    Forkez-le, créez des thèmes, écrivez des plugins, construisez la prochaine app. La licence le garde ouvert pour la personne suivante aussi.

08 Principes

En mieux, pas en différent.

La vraie app, sur place

Vous vous connectez à l’app elle-même. Rien ne passe par un proxy ni n’est réhébergé ; les changements n’ont lieu que sur votre machine.

Légère, pas un navigateur de plus

Une fenêtre Tauri sur le WebView du système, une par app, avec tous vos comptes dedans.

N’agit jamais à votre place

Les correctifs font aboutir vos propres clics. wayBetter ne poste, ne suit et ne supprime jamais rien de lui-même.

À jour, sans bruit

Les mises à jour sont signées et s’installent en silence : les correctifs arrivent sans nouvel installateur.

Commencez par X.
Construisez la suite.

Voir wayBetter for X