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 dependency ใน waybetter
  • $0 ตลอดไป

01 ปัญหา

ทุกแอปให้คุณมาแค่ ครึ่งเดียว ของสิ่งที่คุณต้องการ

ส่วนที่เหลือคุณไม่มีทางได้ เพราะแอปเป็นคนกำหนดว่าคุณใช้ได้กี่บัญชี หน้าตาเป็นอย่างไร และบั๊กจะถูกแก้เมื่อไร wayBetter เก็บแอปไว้เหมือนเดิม แล้วเติมอีกครึ่งที่ขาดให้

  1. A

    หนึ่งบัญชีต่อหนึ่งหน้าต่าง ออกจากระบบ เข้าสู่ระบบ วนไปเรื่อย ๆ

    ทุกบัญชี เคียงข้างกัน เข้าสู่ระบบพร้อมกันทั้งหมด

  2. B

    แอปมีบั๊ก? ก็รอให้เขาแก้

    แก้ บนเครื่องของคุณ ตรงนั้นเลย วันนี้เลย

  3. C

    หน้าตาที่เขาเลือก ฟีเจอร์ที่เขาปล่อย

    ธีมและปลั๊กอินที่ ใครก็ เขียนได้

  4. D

    เบราว์เซอร์ทั้งตัวถูกยัดมาในไคลเอนต์เดสก์ท็อปทุกตัว

    หน้าต่างเนทีฟที่ เบา เพียงบานเดียว บน WebView ของระบบ

เบาตั้งแต่การออกแบบ

ตอนนี้ทุกอย่างคือแอป และเป็นแอปที่เบา

หน้าต่างเนทีฟบน WebView ที่ระบบของคุณมีอยู่แล้ว ไม่ใช่เบราว์เซอร์อีกตัวที่ยัดมากับทุกแอป

7.9 MBขนาดตัวติดตั้ง Windows ทั้งหมด
0.23 sตั้งแต่เปิดจนหน้าต่างขึ้นบนจอ
17 msสำหรับโหลดธีม การแก้ไข และปลั๊กอินเข้าหน้าเว็บ
0long task ที่เพิ่มเข้าไปในหน้าเว็บ

วัดบน Windows 11 ด้วย wayBetter for X 1.0: ขนาดตัวติดตั้งคือขนาดไฟล์ดาวน์โหลดที่เผยแพร่ เวลาเปิดคือค่ามัธยฐานจากการเปิด 3 ครั้ง ส่วนเวลาประมวลผลรันไทม์และ long task (>50 ms) วัดทั้งแบบมีและไม่มี 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 ล้วนพร้อมไทป์ แต่ละโมดูลมี subpath ของตัวเอง ไม่มี dependency เลย หยิบชิ้นที่คุณต้องการ หรือสร้างแอปทั้งตัวก็ได้

เทอร์มินัล

npm i waybetter

ไม่มี dependencyESM + .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จุดประกอบหลักของอะแดปเตอร์
  • domHubMutationObserver หนึ่งตัว หนึ่งเฟรม
  • 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” ด้วย pull request ได้เลย

เริ่มสร้าง

เป็นแอปที่อาจมาถัดไป ไม่ใช่ผลิตภัณฑ์ที่ประกาศแล้ว 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