wayBetter

(FOSS) Теперь всё — приложение.

Ваши приложения, только гораздо лучше.

wayBetter помещает приложения, которыми вы уже пользуетесь, в лёгкое нативное окно и расширяет их прямо на месте — так же, как BetterDiscord расширяет Discord. Вкладки, разделённые панели, все аккаунты рядом, темы, плагины и исправления ошибок самого приложения. Любой может сделать тему или плагин. Любой может собрать следующее приложение.

Скачать wayBetter for X

Скачать wayBetter for X для Windows · бесплатно · GPL-3.0-or-later · никакой телеметрии о том, что вы читаете или публикуете

  • 14 тем в wayBetter for X
  • 14 плагинов в комплекте
  • 9 исправлений ошибок самого X
  • 7.9 MB — размер загрузки
  • 0.23 s до открытия
  • 0 зависимостей в waybetter
  • $0 навсегда

01 Проблема

Каждое приложение даёт лишь половину того, что вам нужно.

Остальное недоступно: приложение само решает, сколько у вас аккаунтов, как оно выглядит и когда исправят его ошибки. wayBetter оставляет приложение как есть и добавляет вторую половину.

  1. A

    Один аккаунт на окно. Выйти, войти, повторить.

    Все аккаунты рядом, все в сети одновременно.

  2. B

    Ошибка в приложении? Ждите, пока её исправят.

    Исправлено на вашем компьютере, прямо на месте, сегодня.

  3. C

    Внешний вид, который выбрали они. Функции, которые выпустили они.

    Темы и плагины, которые может написать любой.

  4. D

    Целый браузер, встроенный в каждый десктопный клиент.

    Одно лёгкое нативное окно на системном WebView.

Лёгкость по замыслу

Теперь всё — приложение. Причём лёгкое.

Нативное окно на WebView, который уже есть в вашей системе, а не ещё один браузер, встроенный в каждое приложение.

7.9 MBвесь установщик для Windows
0.23 sот запуска до окна на экране
17 msна загрузку тем, исправлений и плагинов на странице
0долгих задач добавлено на страницу

Измерено в Windows 11 с wayBetter for X 1.0: размер установщика из опубликованной загрузки; медиана по 3 запускам; время выполнения кода и долгие задачи (>50 мс) измерены с wayBetter и без него.

02 Одна система

Три слоя вокруг настоящего приложения.

Каждое приложение wayBetter — это одна и та же система: нативная Оболочка, Среда выполнения на странице и небольшой Адаптер, который знает приложение. Само приложение продолжает делать то, что делает. Ничего не проксируется и не размещается где-то ещё; меняется всё только на вашем компьютере.

01 · Оболочка

Лёгкое нативное окно.

Tauri 2 на системном WebView. Обрамление, которого вам не хватало в каждом приложении:

  • Вкладки, закреплённые вкладки и разделённые панели: перетащите вкладку или ссылку к краю
  • Каждый аккаунт в своём профиле, все в сети рядом друг с другом
  • Маршрутизация ссылок: открыть в той же вкладке, рядом, в новой вкладке или в вашем браузере
  • Адресная строка и палитра команд Ctrl K
  • Подписанные обновления, которые устанавливаются незаметно

02 · Среда выполнения

Темы и плагины — прямо на странице.

Внедряется в страницы самого приложения, общая для всех приложений wayBetter:

  • Темы на единой цветовой основе (модель OKLab для палитры приложения)
  • JavaScript-плагины в стиле BetterDiscord с небольшим вспомогательным API
  • Один узел для DOM и один для запросов, чтобы функции оставались лёгкими
  • Ваш собственный CSS, применяемый после темы

03 · Адаптер

Одна небольшая часть на приложение.

Единственная часть, которая знает приложение: его хосты, его вёрстку, его кнопку аккаунта и данные, которые оно и так загружает.

  • Нативный SiteSpec и SiteAdapter на странице
  • Короткий проверенный список того, что могут вызывать вкладки приложения
  • Всё остальное даёт система

03 Первое приложение

wayBetter for X.

Настоящий x.com во вкладках и разделённых панелях, все аккаунты рядом, четырнадцать тем, восемь плагинов-разделов и исправления ошибок, которые приносит X: лайки и подписки, обгоняющие друг друга, пропадающие черновики, прыгающая лента. Уже доступно для Windows, macOS и Linux.

14встроенных тем, плюс ваши
14плагинов в комплекте, выключенных, пока вы их не включите
9исправлений ошибок самого X
36настроек, чтобы скрывать, показывать и менять X
  • 01
    Все аккаунты рядом

    Вкладки и разделённые панели на настоящем x.com, каждый аккаунт в сети одновременно и в своём профиле.

  • 02
    Ошибки X исправлены

    Отметки «Нравится» и подписки срабатывают как надо, место сохраняется при возврате назад, лента не скачет, загрузки повторяются.

  • 03
    Хранилище черновиков

    Каждый черновик хранится локально вместе с историей версий и возвращается на место, когда X его теряет.

  • 04
    Четырнадцать тем, восемь плагинов-разделов

    Полные редизайны, а не только цвета. Reader+, Chat+, Media+ и ещё пять плагинов-разделов, переключатель для каждой функции.

  • 05
    Ctrl+K для всего

    Палитра команд для вкладок, аккаунтов, настроек и поиска по X с чипами операторов.

  • 06
    Дека

    Дека в стиле TweetDeck: столбцы X рядом, каждый — в выбранном вами аккаунте, с фильтрами и счётчиками непрочитанного.

wayBetter for X

Бесплатно · открытый исходный код · обновляется незаметно

Скачать для Windows Смотреть всё

Windows · macOS · Linux

04 Сделайте своим

Любой может делать темы и плагины.

Тема — это один JSON-файл. Плагин — один JavaScript-файл. Никакой очереди на проверку и никакого аккаунта, чтобы ими пользоваться: напишите, перетащите в приложение, поделитесь файлом или опубликуйте в Каталоге. Умеете писать CSS — сможете переодеть приложение. Немного знаете JavaScript — сможете добавить функцию, которой в нём никогда не было.

Темы

Цвета, шрифты, формы, вёрстка, фон, эффекты.

Импорт и экспорт JSON на панели «Оформление». Контраст проверяется за вас: текст остаётся читаемым на любой поверхности.

ГлавнаяПост
Для васЧитаемые
wayBetter@CRTkafa · 2m

Четырнадцать тем уже в комплекте. Пятнадцатая — ваша.

1248♥ 101
playfishies@playfishies · 9m

Один JSON-файл. Перетащите его в «Оформление» → «Импорт».

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" }
}
Плагины

Один файл. start() и stop().

*.plugin.js в стиле BetterDiscord: положите в папку плагинов и включите в Настройках. Рутину берёт на себя вспомогательный API.

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

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

Четырнадцать идут в комплекте с 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 Стройте на этом

Вся система — это один пакет.

Среда выполнения страницы и модели оболочки, на которых работает wayBetter for X, доступны в npm как waybetter: обычный ESM с типами, у каждого модуля свой подпуть, ноль зависимостей. Берите нужные части или соберите целое приложение.

терминал

npm i waybetter

ноль зависимостейESM + .d.tsruntime/* и shell/*GPL-3.0-or-later
adapter.ts · из README, сокращено
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/*

  • siteкорень композиции адаптера
  • domHubодин MutationObserver, один кадр
  • netHubодин перехватчик fetch/XHR на все функции
  • pluginApiпомощники для пользовательских плагинов
  • themeTokensцветовая модель OKLab
  • paneNavодно меню в разделённом режиме
  • linkRoutingрядом, вкладка или браузер
  • accountReportкакой аккаунт сейчас в сети

waybetter/shell/*

  • addressModelчипы адресной строки
  • paneModelразделённые панели, ссылки рядом
  • linkDropбросьте ссылку — получите панель
  • paletteранжирование в палитре команд
  • profileModelпрофили аккаунтов
  • updateModelчип обновления
  • windowControlsзаголовок окна и кнопки управления
  • chromeразмеры заголовка окна и панели инструментов

06 Что дальше

X был первым. Следующее приложение соберёте вы.

Любое приложение с веб-версией может получить такое же окно, темы и плагины. Следующими могут стать эти. Ни одно из них не анонсировано, и ни у одного нет даты: они ждут, когда кто-нибудь напишет адаптер. Пример адаптера в самом README — это Kick.

возможно

wayBetter forYouTube?

Вкладки и разделённые панели для видео, все аккаунты каналов рядом, темы, плагины.

возможно

wayBetter forKick?

Стримы рядом в одном лёгком окне, ваши плагины для чата, ваша тема.

возможно

wayBetter forTwitch?

Разделённые панели для нескольких стримов, все аккаунты в сети, плагины для чата.

возможно

wayBetter forDiscord?

Веб-приложение в лёгком окне Tauri вместо тяжёлого клиента. Та же оболочка, те же плагины.

wayBetter forваше приложение.

Напишите адаптер. Оболочка, среда выполнения, темы и плагины идут в комплекте.

npm i waybetter

Соберите следующее.

Начните с пакета и примера адаптера из README. Что-то собрали? Добавьте проект в список «Проекты на wayBetter» пул-реквестом.

Начать разработку

Это возможные следующие приложения, а не анонсированные продукты. YouTube, Kick, Twitch и Discord — товарные знаки соответствующих владельцев; их логотипы показаны только для обозначения сервисов. wayBetter не связан ни с одним из них, не одобрен и не спонсируется ими.

07 Бесплатно и с открытым кодом

Никакого подвоха. Прочитайте каждую строку.

  1. i.

    Бесплатно

    Никаких платных тарифов, рекламы и навязывания подписок. Ни сейчас, ни «после беты».

  2. ii.

    Открыто

    GPL-3.0-or-later. Исходный код фреймворка и приложений открыт на git.crt.fyi.

  3. iii.

    Приватно

    Никакой аналитики и телеметрии о том, что вы читаете или публикуете. Черновики, настройки и плагины остаются на вашем компьютере.

  4. iv.

    Ваше

    Делайте форк, создавайте темы, пишите плагины, собирайте следующее приложение. Лицензия сохраняет его открытым и для тех, кто придёт после вас.

08 Принципы

Лучше, а не иначе.

Настоящее приложение, на своём месте

Вы входите в само приложение. Ничего не проксируется и не размещается где-то ещё; оно меняется только на вашем компьютере.

Лёгкое, а не ещё один браузер

Окно Tauri на системном WebView — по одному на приложение, со всеми аккаунтами внутри.

Никогда не действует за вас

Исправления помогают срабатывать вашим собственным нажатиям. wayBetter никогда ничего не публикует, ни на кого не подписывается и ничего не удаляет сам.

Незаметно актуальное

Обновления подписаны и устанавливаются незаметно, поэтому исправления приходят без очередного установщика.

Начните с X.
Соберите то, что будет дальше.

Посмотреть wayBetter for X