Composer: Як мы стварылі бясплатны і адкрыты інструмент для публікацыі ў сацыяльныя сеткі

Прывітанне, сябры!
Крыху распавяду вам пра інтсрумент які мы стварылі і карыстаемся самі.
Неяк нас крыху задзяўбло спрабаваць весці некалькі сацсетак адначасова - Адкрыць Telegram-канал, уставіць тэкст, аформіць спасылкі. Затым адкрыць Discord-сервер - там спасылкі выглядаюць інакш, трэба падправіць Markdown-разметку. Потым скапіяваць усё гэта ў X (Twitter) і Threads, дзе ліміты сімвалаў прымушаюць вас пакутаваць і сутаргава скарачаць кожны сказ. А калі вы працуеце ў камандзе, да гэтага дадаецца бясконцы абмен файламі, узгадненне чарнавікоў і пытанні кшталту: «А хто-небудзь ужо адправіў гэты пост у Твітэр?»
А сэрвісы якія ужо існуюць? Не, бо ... а 20 баксаў - гэта 20 баксаў.
Таум - калі вам гэта знаёма, вы дакладна зразумееце, чаму мы вырашылі стварыць Composer. Мы хацелі інструмент, які дазваляе напісаць тэкст адзін раз у Markdown і адным клікам адправіць яго на патрэбныя пляцоўкі. і самае галоўнае — мы хацелі зрабіць яго цалкам бясплатным, бяспечным і адкрытым.
У гэтым артыкуле мы падрабязна распавядзем, што ўмее наш інструмент, чаму мы абралі менавіта такую архітэктуру і як вы можаце разгарнуць яго на сваім серверы або самастойна скампіляваць дэсктопны дадатак для Windows, macOS ці Linux. Паехалі!

Чаму менавіта Composer? (І што ён дае людзям)
Мы не хацелі рабіць чарговы дарагі SaaS-сэрвіс па падпісцы з кучай непатрэбных функцый. Наша мэта — зручнасць, хуткасць і поўны кантроль над сваімі дадзенымі. Вось што Composer дае кожнаму карыстальніку:
- Markdown-рэдактар як адзіная крыніца праўды: Вы пішаце тэкст у адным акне. Вы можаце выкарыстоўваць чысты Markdown або пераключыцца ў зручны візуальны WYSIWYG-рэжым.
- Разумная адаптацыя фарматавання: Розныя сацыяльныя сеткі жывуць па сваіх правілах. Telegram патрабуе спецыфічны HTML, Discord разумее свой Markdown, а X і Threads любяць просты тэкст. Composer аўтаматычна канвертуе ваш зыходны тэкст пад патрабаванні кожнай платформы.
- Рэалістычны перадпрагляд (Preview): Больш ніякіх сюрпрызаў пасля публікацыі! Вы бачыце, як менавіта ваш допіс будзе выглядаць у кожнай выбранай сетцы, яшчэ да адпраўкі. Калі тэкст занадта доўгі, сістэма папярэдзіць вас або прапануе падзяліць яго на ланцужок паведамленняў.
- Поўная прыватнасць (Open Source): Праект распаўсюджваецца па ліцэнзіі MIT. Мы не збіраем вашы токены або паролі. Увесь зыходны код цалкам адкрыты і даступны на GitHub. Вы можаце бясплатна запусціць яго на нашым бэку(для дэсктоп дадатку) composer.bel-geek.com або разгарнуць цалкам лакальна.
- Гнуткая сумесная праца: Вы можаце ствараць працоўныя прасторы (Workspaces), запрашаць калег, даваць ім розныя правы доступу (напрыклад, толькі для рэдагавання або толькі для публікацыі ў канкрэтныя каналы) і планаваць пасты на будучыню.
Параўнанне з камерцыйнымі сэрвісамі автопостынгу
Калі вы пачнеце шукаць рашэнні для мультыпостынгу, то першымі ў пошуку з'явяцца папулярныя сэрвісы накшталт Buffer, Hootsuite, Later ці CoSchedule. Усе яны неблагія, але давайце паглядзім праўдзе ў вочы:
| Функцыя / Параметр | Buffer | Hootsuite | Composer |
|---|---|---|---|
| Кошт | Бясплатна (абмежавана) або ад $6/мес за канал | Ад $99/месяц (няма бясплатнага тарыфу) | Абсалютна бясплатна |
| Зыходны код | Закрыты (Proprietary) | Закрыты (Proprietary) | Open Source (MIT) |
| Ліміт на каналы | Да 3 каналаў на бясплатным тарыфе | Ад 10 каналаў (толькі платна) | Ніякіх абмежаванняў |
| Захаванне дадзеных | На серверах Buffer | На серверах Hootsuite | Пад вашым кантролем (MongoDB або лакальна) |
| Калектыўная праца | Платна (ад $12/мес за канал) | Платна (у дарагіх тарыфах ад $249/мес) | Бясплатна (Workspaces без лімітаў) |
| Постынг у X і Threads | Абмежаваны на бясплатным тарыфе | Толькі на платных тарыфах | Бясплатна праз убудаваны браўзер |
Чаму бясплатны Open Source лепш за камерцыйны SaaS?
- Незалежнасць ад коштавай палітыкі: Сёння X (Twitter) робіць сваё API платным — і камерцыйныя сэрвісы мусяць падымаць кошты або цалкам адключаць падтрымку гэтай сеткі на танных тарыфах. Composer Desktop абыходзіць гэта дзякуючы працы праз лакальны браўзер.
- Свабода выбару хостынгу: Вы не залежыце ад сервераў аднаго правайдэра. Калі іх сервер «ляжа», вы не зможаце зрабіць допіс. У выпадку з Composer вы можаце выкарыстоўваць наш гатовы сервер альбо за некалькі хвілін запусціць свой бэкенд і працаваць цалкам аўтаномна.
- Чысты змест без «вадзяных знакаў»: Некаторыя сэрвісы на бясплатных тарыфах дадаюць у канцы вашых пастоў рэкламныя прыпіскі («via Buffer»). З Composer ваш кантэнт належыць толькі вам і публікуецца без лішніх брэндавых пазнак.
Вэб і дэсктоп: як гэта працуе пад капотам
Магчыма, вы спытаеце: «Чаму прылада складаецца і з вэб-сервера, і з дэсктоп-дадатку?» Тут крочыцца вельмі цікавае інжынернае рашэнне.
Справа ў тым, што розныя сацыяльныя сеткі маюць розныя ўзроўні адкрытасці:
- Telegram і Discord: Гэтыя платформы маюць выдатныя, бясплатныя і адкрытыя API. Таму наша вэб-версія (бэк) працуе з імі напрамую праз серверных ботаў. Вы проста дадаеце токен бота ў налады працоўнай прасторы, і сервер сам адпраўляе паведамленні.
- Threads і X (Twitter): Тут сітуацыя горшая. Афіцыйныя API альбо залішне абмежаваныя, альбо каштуюць шалёных грошай для звычайных карыстальнікаў. Каб вырашыць гэтую праблему і не прымушаць вас плаціць, мы стварылі Composer Desktop на базе Electron.
Дэсктопны дадатак працуе як лакальны памочнік. У яго ўбудаваны браўзер, у якім вы адзін раз аўтарызуецеся ў сваіх акаўнтах Threads і X. Дадатак рэгулярна звяртаецца да вашага сервера, забірае запланаваныя пасты і публікуе іх ад вашага імя прама праз браўзер. Важна: вашы cookies, паролі і сесіі ніколі не адпраўляюцца на сервер — яны застаюцца толькі на вашым кампутары.
Як разгарнуць уласны бэкенд (Self-hosting)
Калі вы хочаце поўнай незалежнасці ад вонкавых сэрвісаў, вы можаце разгарнуць уласную копію Composer. Для гэтага вам спатрэбяцца Git, база даных MongoDB, а таксама Node.js і Bun.
🛠️ Як усталяваць Node.js, npm і Bun на кампутар
Перад пачаткам пераканайцеся, што на вашай машыне ўсталяваныя неабходныя інструменты. Вось кароткае кіраўніцтва па іх усталёўцы для розных аперацыйных сістэм:
1. Усталёўка Node.js і менеджэра пакетаў npm
- Windows і macOS: Спампуйце і запусціце афіцыйны інсталятар версіі LTS з сайта nodejs.org.
- macOS (праз Homebrew): Калі ў вас усталяваны Homebrew, выканайце ў тэрмінале:
bash
1brew install node - Linux (Ubuntu/Debian): Усталюйце праз афіцыйны пакетны менеджэр:
bash
1sudo apt update 2sudo apt install -y nodejs npm
2. Усталёўка Bun
Bun — гэта суперхуткае асяроддзе выканання JavaScript/TypeScript, якое мы выкарыстоўваем для працы і зборкі праекта.
- macOS і Linux: Усталёўваецца адной камандай у тэрмінале:
bash
1curl -fsSL https://bun.sh/install | bash - Windows: Адкрыйце PowerShell ад імя адміністратара і выканайце:
(Або праз пакетны менеджэр:powershell1powershell -c "irm bun.sh/install.ps1 | iex"winget install Oven-sh.Bun)
3. Усталёўка і запуск MongoDB
Бэкенд Composer патрабуе базу даных MongoDB для захавання карыстальнікаў, чарнавікоў і налад. Вы можаце разгарнуць яе рознымі спосабамі:
- Лакальная ўсталёўка:
- macOS (праз Homebrew):
bash
1brew tap mongodb/brew 2brew install mongodb-community 3brew services start mongodb-community - Windows / Linux: Спампуйце бясплатную версію MongoDB Community Server з афіцыйнага сайта і запусціце яе як службу.
- macOS (праз Homebrew):
- Праз Docker (самы просты лакальны спосаб): Калі ў вас усталяваны Docker, вы можаце запусціць MongoDB адной камандай без неабходнасці ўсталёўваць базу наўпрост на кампутар:
bash
1docker run -d -p 27017:27017 --name composer-mongo mongo:latest - Воблачная база даных (MongoDB Atlas): Стварыце бясплатны кластар на mongodb.com/atlas і пазначце атрыманы адрас падключэння ў
.envфайле якMONGODB_URI.
Крок 1. Падрыхтоўка кода і залежнасцей
Вы можаце выкарыстоўваць як bun, так і npm для ўсталёўкі залежнасцей. Звярніце ўвагу: хоць пакеты можна ўсталёўваць праз npm install, для непасрэднага запуска скрыптоў бэкенду і зборкі дэсктоп-дадатку вам усё роўна спатрэбіцца ўсталяваны bun, бо ён выклікаецца ўнутрана ў файле package.json.
Клануем рэпазіторый і ўсталёўваем пакеты:
bash1git clone https://github.com/bel-frontend/tg_discord_bot.git 2cd tg_discord_bot 3 4# Карыстайцеся Bun (рэкамендуецца): 5bun install 6 7# Або выкарыстоўвайце npm: 8npm install
Крок 2. Налада атачэння
Стварыце файл .env на аснове прыкладу:
bash1cp .env.example .env
Адкрыйце яго і пазначце свае налады:
env1PORT=3000 2JWT_SECRET=прыдумайце-доўгі-выпадковы-радок 3MONGODB_URI=mongodb://localhost:27017/composer 4PUBLIC_BASE_URL=http://localhost:3000
Крок 3. Запуск
Каб запусціць праект у рэжыме распрацоўкі (з гарачай перазагрузкай):
bash1# Праз Bun (рэкамендуецца): 2bun run dev 3 4# Праз npm: 5npm run dev
Каб запусціць праект у прадукцыйным рэжыме (Production):
bash1# Праз Bun (рэкамендуецца): 2bun run start 3 4# Праз npm: 5npm run start
Таксама даступны запуск праз Docker:
bash1docker compose up -d --build
Пасля гэтага ваш уласны бэкенд гатовы і будзе чакаць запытаў на порце 3000 (або 3007 при запуску праз Docker Compose).
Самастойная зборка дэсктоп-дадатку для Windows, macOS і Linux
Мы лічым, што карыстальнікі павінны мець магчымасць сабраць дэсктопны кліент самастойна з зыходнага кода, каб быць на 100% упэўненымі, што ў ім няма ніякіх «закладак» ці трэкераў.
Зрабіць гэта вельмі проста. Вось пакрокавая рэцэптура для любой папулярнай аперацыйнай сістэмы.
Што спатрэбіцца:
- Усталяваны Node.js і Bun.
- Кланаваны рэпазіторый праекта (гл. крок 1 у інструкцыі па бэкендзе).
Пакрокавы працэс зборкі:
-
Перайдзіце ў каталог дэсктоп-дадатку:
bash1cd desktop -
Усталюйце ўсе неабходныя пакеты:
bash1# Праз Bun (рэкамендуецца): 2bun install 3 4# Або праз npm: 5npm install -
Запусціце праект у рэжыме распрацоўкі (калі хочаце проста праверыць працу): Калі ваш бэкенд працуе на
http://localhost:3000, запусціце:bash1# Праз Bun: 2COMPOSER_DESKTOP_DEV_URL=http://localhost:3000 bun run dev 3 4# Праз npm: 5COMPOSER_DESKTOP_DEV_URL=http://localhost:3000 npm run devАбо проста выкарыстоўвайце агульную dev-каманду з кораня рэпазіторыя:
bash1bun run desktop:dev # ці npm run desktop:dev -
Запусціце кампіляцыю інсталятара: Выканайце з кораня праекта:
bash1bun run desktop:dist # ці npm run desktop:distАльбо непасрэдна з тэчкі
desktop:bash1bun run dist # ці npm run dist
Што вы атрымаеце на выхадзе?
Інструмент electron-builder аўтаматычна распазнае вашу аперацыйную сістэму і створыць гатовы інсталятар у тэчцы desktop/release/:
- На macOS: вы атрымаеце пакет
.dmgі архіў.zip. - На Windows: будзе створаны класічны інсталятар
.exe(NSIS). - На Linux: дзякуючы нашым наладкам у
package.json, вы атрымаеце ўніверсальны.AppImageі пакет.debдля Debian/Ubuntu.
Маленькая парада: Звярніце ўвагу, што для кампіляцыі пад macOS вам спатрэбіцца камп'ютар Mac, бо сабраць .dmg на Windows ці Linux стандартнымі сродкамі не атрымаецца.
🚀 Першы запуск і падключэнне да бэкенду (вэб-сервера)
Пры першым запуску скампіляванага або запушчанага ў распрацоўчым рэжыме Composer Desktop, дадатак папросіць вас увесці адрас сервера (Server URL).
Тут у вас ёсць два зручныя варыянты:
-
Калі вы не хочаце разгортваць уласны бэкенд: Вы можаце выкарыстоўваць наш афіцыйны хостынг. Проста пазначце адрас нашага агульнага і цалкам бясплатнага сервера:
text1https://composer.bel-geek.comПасля гэтага зарэгіструйцеся там або ўвайдзіце пад сваім акаўнтам і карыстайцеся ўсімі магчымасцямі дэсктопнага памочніка (уключаючы лакальны постынг у X і Threads) без неабходнасці наладжваць базу даных MongoDB ці Docker.
-
Калі вы разгарнулі свой бэкенд: Пазначце адрас вашай уласнай копіі сервера (напрыклад,
http://localhost:3000ціhttps://composer.yourdomain.com).
Далучайцеся да супольнасці!
Мы стварылі Composer для сябе і для ўсіх, хто стаміўся ад руціны і хоча мець пэўную свабоду ў кіраванні сваімі публікацыямі.
Паспрабуйце працуючую версію на composer.bel-geek.com прама зараз (даступныя тг боты і дыскорд) — гэта бясплатна і не патрабуе ніякай складанай наладкі. А калі вам спадабалася ідэя, заходзьце на наш GitHub, стаўце зорачкі, стварайце Issue з вашымі прапановамі і дасылайце Pull Request-ы. Давайце рабіць гэты праект лепш разам!
Дзякуй за ўвагу і прыемнага карыстання!
Каментары
(Каб даслаць каментар залагуйцеся ў свой уліковы запіс)