このデモについて
コミュニティ系アプリの中核(タイムライン・チャット・認証・管理画面)を、 実際に動く形で常設したものです。モグテックラボが自社で作り、自社のサーバで運用しています。
主張は1つ。画面数は機能数ではありません。
ノーコードでコミュニティアプリを作ると、画面ごとに処理を置く構造のため、 似た画面が枚数分だけ複製されます。同じ処理が画面の数だけコピーされるので、 1か所直すと別の画面が壊れます。画面が増えるほど修正の手間が跳ね上がり、 ある枚数を超えると「直すたびに別が壊れる」状態で止まります。
このデモは反対の作り方をしています。タイムラインもチャットも、 「入れ物に、流れが時系列で入っている」という同じ構造だと捉え直し、 どのデータもいったん共通の形に直してから画面に渡しています。
5つの画面を、2つのテンプレートで描いています
| 画面 | 入れ物 | 流れ | テンプレート |
|---|---|---|---|
| タイムライン | 公開フィード | 投稿 | stream_detail |
| 投稿詳細 | 1つの投稿 | コメント | stream_detail |
| チャットスレッド | 1つのスレッド | メッセージ | stream_detail |
| プロフィール | その人 | 投稿 | stream_detail |
| チャット一覧 | 参加スレッド群 | スレッド | stream_list |
この先「フォロー中フィード」「ハッシュタグ別の一覧」「グループチャット」「通知」を足しても、 テンプレートは増えません。入れ物の定義が1つ増えるだけです。 表示のルールを直したいときに触る場所も、常に1か所です。
スクリーンリーダーで使えます
制作者は全盲で、NVDAというスクリーンリーダーを使っています。 見た目を後から人に確認してもらう作り方ではなく、 構造が正しければ誰でも読める作り方をしています。 見出しの階層を飛ばさない、すべての入力に見出しラベルを対応づける、 アイコンだけのボタンを作らない、未読件数を色ではなく文字で出す、 キーボードだけで全操作が終わる — といった点です。
構成
- Django 5(Python 3.12)/ SQLite
- gunicorn + nginx + Let's Encrypt
- ConoHa VPS(既存サーバに相乗り。このデモのための追加費用はゼロ)
- ログ・バックアップ・復旧手順を最初から組み込み済み
登場する人物・投稿・チャットはすべて架空です。実在の人物・店舗・商品とは関係ありません。