wayBetter

(FOSS) Agora tudo é um app.

Os apps que você usa, muito melhores.

O wayBetter coloca os apps que você já usa em uma janela nativa e leve e os estende ali mesmo, como o BetterDiscord faz com o Discord. Abas, painéis divididos, todas as contas lado a lado, temas, plugins e correções para os bugs do próprio app. Qualquer pessoa pode criar um tema ou um plugin. Qualquer pessoa pode construir o próximo app.

Obter o wayBetter for X

Baixar o wayBetter for X para Windows · grátis · GPL-3.0-or-later · sem telemetria sobre o que você lê ou posta

  • 14 temas no wayBetter for X
  • 14 plugins incluídos
  • 9 correções para bugs do próprio X
  • 7.9 MB de download
  • 0.23 s para abrir
  • 0 dependências em waybetter
  • $0 para sempre

01 O problema

Todo app entrega só metade do que você precisa.

O resto você não pode ter: é o app que decide quantas contas você usa, que cara ele tem e quando os bugs são corrigidos. O wayBetter mantém o app e acrescenta a outra metade.

  1. A

    Uma conta por janela. Sair, entrar, repetir.

    Todas as contas, lado a lado, todas conectadas ao mesmo tempo.

  2. B

    Um bug no app? Espere que eles corrijam.

    Corrigido na sua máquina, ali mesmo, hoje.

  3. C

    O visual que eles escolheram. Os recursos que eles lançaram.

    Temas e plugins que qualquer pessoa pode escrever.

  4. D

    Um navegador inteiro embutido em cada cliente de desktop.

    Uma única janela nativa e leve, sobre o WebView do sistema.

Leve por natureza

Agora tudo é um app. E um app leve.

Uma janela nativa sobre o WebView que o seu sistema já tem, e não mais um navegador embutido em cada app.

7.9 MBo instalador completo para Windows
0.23 sda abertura até a janela aparecer na tela
17 mspara temas, correções e plugins carregarem na página
0tarefas longas adicionadas à página

Medido no Windows 11 com o wayBetter for X 1.0: tamanho do instalador do download publicado; mediana de 3 inicializações; avaliação do runtime e tarefas longas (>50 ms) medidas com e sem o wayBetter.

02 Um só sistema

Três camadas em volta do app de verdade.

Todo app wayBetter é o mesmo sistema: um Shell nativo, um Runtime na página e um pequeno Adaptador que conhece o app. O app continua fazendo o que sempre fez. Nada passa por proxy nem é hospedado em outro lugar; a mudança acontece só na sua máquina.

01 · Shell

Uma janela nativa e leve.

Tauri 2, sobre o WebView do sistema. A moldura que você queria que todo app tivesse:

  • Abas, abas fixadas e painéis divididos: arraste uma aba ou um link até uma borda
  • Cada conta no seu próprio perfil, conectadas lado a lado
  • Roteamento de links: abrir na mesma aba, ao lado, em uma nova aba ou no seu navegador
  • Barra de endereço e paleta de comandos Ctrl K
  • Atualizações assinadas que se instalam em silêncio

02 · Runtime

Temas e plugins, dentro da página.

Injetado nas páginas do próprio app e compartilhado por todos os apps wayBetter:

  • Temas sobre uma única base de cores (um modelo OKLab da paleta do app)
  • Plugins JavaScript no estilo BetterDiscord, com uma pequena API auxiliar
  • Um hub de DOM e um hub de requisições, para os recursos continuarem leves
  • O seu próprio CSS, aplicado depois do tema

03 · Adaptador

Uma pequena peça por app.

A única parte que conhece o app: seus hosts, seu layout, seu botão de conta e os dados que ele já carrega.

  • Um SiteSpec nativo e um SiteAdapter de página
  • Uma lista curta e revisada do que as abas do app podem chamar
  • Todo o resto vem do sistema

03 O primeiro app

wayBetter for X.

O x.com de verdade em abas e painéis divididos, todas as contas lado a lado, catorze temas, oito plugins de área e correções para os bugs que o X traz: likes e follows que se atropelam, rascunhos que somem, uma timeline que pula. Disponível agora para Windows, macOS e Linux.

14temas integrados, e os seus
14plugins incluídos, desligados até você ligar
9correções para bugs do próprio X
36ajustes para ocultar, mostrar e mudar o X
  • 01
    Todas as contas, lado a lado

    Abas e painéis divididos no x.com de verdade, cada conta conectada ao mesmo tempo no seu próprio perfil.

  • 02
    Os bugs do X, corrigidos

    Curtidas e seguidas que chegam, sua posição mantida ao voltar, sem saltos na linha do tempo, uploads com nova tentativa.

  • 03
    Um cofre de rascunhos

    Cada rascunho fica guardado localmente com o histórico de revisões e é devolvido quando o X o perde.

  • 04
    Catorze temas, oito plugins de área

    Redesenhos completos, não só cores. Reader+, Chat+, Media+ e mais cinco plugins de área, um botão para cada recurso.

  • 05
    Ctrl+K para tudo

    Uma paleta de comandos para abas, contas, configurações e a busca do X com chips de operadores.

  • 06
    Deck

    Um deck no estilo TweetDeck: colunas do X lado a lado, cada uma na conta que você escolher, com filtros e contadores de não lidos.

wayBetter for X

Grátis · código aberto · atualiza em silêncio

Baixar para Windows Ver tudo

Windows · macOS · Linux

04 Deixe do seu jeito

Qualquer pessoa pode criar temas e plugins.

Um tema é um arquivo JSON. Um plugin é um arquivo JavaScript. Sem fila de revisão e sem conta para usar: escreva, solte na pasta, compartilhe o arquivo ou publique na Loja. Se você sabe escrever CSS, pode dar outra cara a um app. Se sabe um pouco de JavaScript, pode adicionar o recurso que nunca chegou.

Temas

Cores, fontes, forma, layout, fundo, efeitos.

Importe e exporte JSON no painel Aparência. O contraste é verificado para você: o texto continua legível em qualquer superfície.

Página InicialPostar
Para vocêSeguindo
wayBetter@CRTkafa · 2m

Quatorze temas já vêm com ele. O décimo quinto é o seu.

1248♥ 101
playfishies@playfishies · 9m

Um arquivo JSON. Solte em Aparência → Importar.

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

Um arquivo. start() e stop().

*.plugin.js no estilo BetterDiscord, solto na pasta de plugins e ligado em Configurações. Uma API auxiliar cuida das partes chatas.

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 auxiliar

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

Quatorze vêm com o 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 Construa em cima

O sistema inteiro é um pacote só.

O runtime de página e os modelos do shell por trás do wayBetter for X estão no npm como waybetter: ESM puro com tipos, cada módulo em seu próprio subcaminho, zero dependências. Pegue as peças de que precisa ou construa um app inteiro.

terminal

npm i waybetter

zero dependênciasESM + .d.tsruntime/* e shell/*GPL-3.0-or-later
adapter.ts · do README, resumido
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/*

  • sitea raiz de composição do adaptador
  • domHubum MutationObserver, um frame
  • netHubum único hook de fetch/XHR para todos os recursos
  • pluginApiauxiliares para plugins de usuário
  • themeTokenso modelo de cores OKLab
  • paneNavuma só navegação na divisão de painéis
  • linkRoutingao lado, aba ou navegador
  • accountReportqual conta está conectada

waybetter/shell/*

  • addressModelchips da barra de endereço
  • paneModelpainéis divididos, links ao lado
  • linkDropsolte um link, ganhe um painel
  • paletteranking da paleta de comandos
  • profileModelperfis de conta
  • updateModelo chip de atualização
  • windowControlsbarra de título e botões da janela
  • chrometamanhos da barra de título e da barra de ferramentas

06 O que vem a seguir

O X foi o primeiro. O próximo é você quem constrói.

Qualquer app com versão web pode ganhar a mesma janela, os mesmos temas e plugins. Estes podem ser os próximos. Nenhum foi anunciado e nenhum tem data: estão esperando alguém escrever o adaptador. O exemplo de adaptador do próprio README é o Kick.

possível

wayBetter forYouTube?

Abas e painéis divididos para vídeos, todas as contas de canal lado a lado, temas, plugins.

possível

wayBetter forKick?

Lives lado a lado em uma única janela leve, seus plugins de chat, seu tema.

possível

wayBetter forTwitch?

Painéis divididos para várias lives, todas as contas conectadas, plugins para o chat.

possível

wayBetter forDiscord?

O app web em uma janela Tauri leve em vez do cliente pesado. O mesmo shell, os mesmos plugins.

wayBetter foro app que você usa.

Escreva o adaptador. O shell, o runtime, os temas e os plugins vêm junto.

npm i waybetter

Construa o próximo.

Comece pelo pacote e pelo exemplo de adaptador do README. Construiu alguma coisa? Adicione à lista “Projetos que usam o wayBetter” com um pull request.

Começar a construir

Possíveis próximos apps, não produtos anunciados. YouTube, Kick, Twitch e Discord são marcas de seus respectivos donos; os logotipos aparecem apenas para nomear os serviços. O wayBetter não é afiliado a nenhum deles, nem endossado ou patrocinado por eles.

07 Grátis e de código aberto

Sem pegadinha. Leia cada linha.

  1. i.

    Grátis

    Sem plano pago, sem anúncios, sem empurrar upgrade. Nem agora, nem “depois do beta”.

  2. ii.

    Aberto

    GPL-3.0-or-later. O framework e os apps têm código público em git.crt.fyi.

  3. iii.

    Privado

    Sem analytics, sem telemetria sobre o que você lê ou posta. Rascunhos, configurações e plugins ficam na sua máquina.

  4. iv.

    Seu

    Faça um fork, crie temas, escreva plugins, construa o próximo app. A licença mantém tudo aberto também para quem vier depois.

08 Princípios

Melhor, não diferente.

O app de verdade, no lugar dele

Você entra no próprio app. Nada passa por proxy nem é hospedado em outro lugar; a mudança acontece só na sua máquina.

Leve, e não mais um navegador

Uma janela Tauri sobre o WebView do sistema, uma por app, com todas as contas dentro.

Nunca age por você

As correções fazem os seus próprios cliques chegarem. O wayBetter nunca posta, segue nem apaga nada por conta própria.

Atualizado sem alarde

As atualizações são assinadas e se instalam em silêncio, então as correções chegam sem outro instalador.

Comece pelo X.
Construa o que vem a seguir.

Ver o wayBetter for X