面倒なSNS投稿はコードで解決。Postizを使って開発に集中できる環境を手に入れよう
今日は「SNSの投稿管理が面倒で、開発に集中できない」…そんなお悩みにぴったりの「Postiz」という一杯(ツール)をご用意しました。
これ、ただの予約投稿ツールじゃないんです。中身は TypeScript と Redis で構成された、フルスタックなオープンソース界の期待の新星ですよ。
「Postiz」は、複数のSNS(X, LinkedIn, Instagramなど)への投稿を一括管理できる、究極のソーシャルメディア・スケジューリングツールです。
エンジニアの視点から見ると、ここが「お味の決め手」ですね。
技術スタック
TypeScript, NestJS, Prisma, Redis。モダンで拡張性が高い!
セルフホスト可能
自分のサーバー(Dockerなど)で動かせるので、データプライバシーも安心。
AI統合
投稿のキャッチコピー作成や最適化をAIが手伝ってくれます。
「自分のプロダクトをリリースしたけど、宣伝する時間がない!」という時に、こいつが「自動化のバーテンダー」になってくれます。
API連携の集約
各SNSの面倒なAPI個別の仕様を気にせず、Postiz一つで完結します。
インフラの勉強になる
Redisをキュー(Queue)として使い、大量の投稿をさばく設計は非常に参考になります。
OSSとして貢献できる
自分の欲しい機能(新しいSNSへの対応など)を自分で実装してプルリクを送る楽しみもありますね。
まずは、ご自身のローカル環境やサーバーに「開店」準備をしましょう。Dockerを使うのが一番手軽な「シェイク」の方法です。
git clone https://github.com/gitroomhq/postiz-app.git
cd postiz-app
.env.example を .env にコピーして、必要なキー(データベースURLやRedisの設定)を書き込みます。
docker-compose up -d
これで、localhost:4200 あたりにアクセスすれば、あなた専用の管理画面が立ち上がります!
例えば、自作のツールからPostizのAPIを叩いて、「ビルドが成功したら自動でXに自慢する」なんてスクリプトも書けますよ。
// Postizの内部的な投稿ロジックをイメージしたサンプル
import axios from 'axios';
async function scheduleSocialPost(content: string, publishAt: Date) {
const POSTIZ_API_URL = 'http://your-postiz-instance.com/api/v1/posts';
const API_KEY = 'your_secret_token';
try {
const response = await axios.post(
POSTIZ_API_URL,
{
content: content,
scheduledDate: publishAt.toISOString(),
providers: ['twitter', 'linkedin'], // 投稿先を選択
},
{ headers: { Authorization: `Bearer ${API_KEY}` } }
);
console.log(' 予約完了!マスター、あとの投稿は頼んだよ。', response.data.id);
} catch (error) {
console.error(' おっと、シェイカーを振るのを失敗したようだ:', error);
}
}
// 実行例:次回のリリース告知
scheduleSocialPost(
"新しいOSSプロジェクトを公開しました! #OpenSource #TypeScript",
new Date('2024-12-31T10:00:00Z')
);
Postizがどうやって動いているのか、カウンター越しに図解しておきますね。
マスターの補足
Redisが「注文票(投稿予約)」を一時的に預かり、バックグラウンドのワーカーが適切なタイミングで各SNSへ「カクテル(投稿)」を届ける仕組みです。
さて、Postizという一杯、いかがでしたか? オープンソースなので、中身のコードを肴に一杯飲むのも乙なものですよ。