
2025/12/05 2:43
PyTogether: Collaborative lightweight real-time Python IDE for teachers/learners
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
PyTogether は、複数のユーザーがリアルタイムでコードを編集・チャットし、可視化を見ることができるブラウザベースの共同Python IDEです。学習、ペアプログラミング、迅速なグループセッションに最適です。
- コラボレーションコア: Y.js によって駆動され、ライブカーソル/選択範囲、ライブ描画、音声通話、CodeMirror 主導のリント機能を提供します。
- 実行モデル: Python コードは Pyodide Web Worker 上でクライアント側で実行され、サーバー側での実行はありません。
- 永続化: スマートオートセーブが毎分および終了時にトリガーされます。グループとプロジェクトを作成でき、共有可能なスニペットリンクがあります。
- 認証: ユーザーは手動または Google OAuth でログインできます(デモスーパーユーザー2名: test1@gmail.com / test2@gmail.com、パスワード
)。testtest - スタック: バックエンドは Django + DRF と Channels (WebSocket) を使用し、Celery がバックグラウンドジョブを処理。PostgreSQL (Supabase) と Redis を利用。フロントエンドは React, Tailwind CSS, CodeMirror で構築されています。
- デプロイとセットアップ: フロントエンドは Vercel 上で動作し、バックエンドは VPS 上の Nginx 背後に Docker 化されます。CI/CD は GitHub Actions によって行われ、
ブランチへのプッシュ時にバックエンドがデプロイされます。ローカル開発には Docker と Node (main
,npm install
) が必要です。npm run dev - ターゲットオーディエンスとポジショニング: 教室、コーディングクラブ、教師、趣味者向けの教育ツールとして市場に出されており、大規模生産環境向けには最適化されていません。
PyTogether は共有コードセッションを簡単に設定できるようにし、教育者がワークショップを開催したり、学生が一緒に練習したり、開発者が重いIDEのインストールなしでペアプログラミングを行えるようにします。
本文
PyTogether
Python向けのGoogle Docs。 ブラウザベースで完結する共同編集型Python IDEで、リアルタイム編集・チャット・可視化機能を備えています。
Webサイト: pytogether.org
主な特徴
- リアルタイム協働 – Y.js を利用して即座にコードを共同編集。
- 安全な認証 – 手動ログインまたは Google OAuth でサインイン。
- グループ & プロジェクト – チームやプロジェクト単位で作業を整理。
- 共有リンク – スニペットを他者と編集・実行用にシェア可能。
- ライブ描画 – IDE 上で直接図形を書いてノート取りや授業を補助。
- ライブカーソル/選択範囲 – Google Docs 風のライブ選択機能で円滑な共同作業。
- ライブチャットと音声通話 – プロジェクトごとのリアルタイムメッセージングや Discord ライクな音声チャット。
- コードリント – CodeMirror の組み込みリンティングでクリーンかつエラーのないコードを実現。
- スマート自動保存 – コードは 1 分ごと、または終了時に自動的に保存されます。
補足
PyTogether は従来型 IDE の障壁(プラグイン・拡張機能・設定手順・料金体系・複雑な UI)を排除し、軽量で気が散らない環境を提供します。学習・教育・ペアプログラミングに最適化されており、教室やコーディングクラブ、急ぎの協働に理想的です。
備考: PyTogether は教育目的と初心者向けに設計されており、大規模な本番開発には最適化されていません。
なぜ PyTogether なのか?
- シンプルさを優先 – ダウンロード・pip インストール・隠れた複雑さは不要。グループとプロジェクトを作成してすぐにコーディング開始。
- 初心者向け設計 – 複雑なメニューやターミナル、設定はなく、コードを書いて実行するだけ。
- リアルタイム協働 – クラスメイト・友人・指導者と同じエディタで一緒に作業。
- 安全な学習空間 – ディストラクションを減らすため機能は限定され、初心者が集中できるよう設計。
本番用 IDE とは異なり、PyTogether は高度な機能よりも使いやすさと協働性に重点を置いています。
技術スタック
| 層 | テクノロジー |
|---|---|
| バックエンド | Django, Django REST Framework (DRF) |
| リアルタイム | Y.js, WebSocket(Django Channels) |
| 非同期処理 | Celery |
| データベース | PostgreSQL(Supabase 経由) |
| キャッシュ/ブローカー/チャネル層 | Redis |
| フロントエンド | React, Tailwind CSS, CodeMirror(リンティング) |
| Python 実行 | Pyodide (Web Worker) |
| デプロイ | Vercel(フロントエンド)、Docker on VPS(バックエンド)、Nginx(リバースプロキシ) |
| CI/CD | GitHub Actions(main への push 時にバックエンドを VPS にデプロイ) |
コントリビューション & ローカルセットアップ
必要環境: Docker, Node
プロジェクトルートで以下を実行してください。
# 1. すべての依存パッケージをインストール(root とフロントエンド両方) npm install # 2. サーバー起動 npm run dev
これにより必要なパッケージがインストールされ、バックエンドコンテナとフロントエンドが同時に立ち上がります。初回起動は約 2–5 分かかる場合があります。フロントエンドは
http://localhost:5173 にてアクセスできます。停止するには CTRL+C を押してください。
備考: 自動で 2 人のスーパーユーザーが作成されます。
- メール:
test1@gmail.com - メール:
test2@gmail.com
両方ともパスワードは
testtest。フロントエンドにログインして使用してください。
設定変更は
backend/backend/settings/dev.py で行えます。