Web開発
IndieWebに参加した、そこで学んだこと
I joined the IndieWeb, here's what I learned (en.andros.dev)
要約
著者はIndieWebに興味を持ち参加した結果、それが企業中心のウェブではなく、個人がコンテンツを所有し、より良く繋がり、管理できる「人中心」の運動であることを発見しました。サイロ(囲い込み型サービス)の脆弱性やデータ消失のリスクを理解し、IndieWebの原則や技術を自身のウェブサイトに適用した経験から、そのポジティブな効果とウェブの健全性向上への貢献について述べています。
全文翻訳
好奇心に駆られ、いくつかのブログやMastodonの投稿で目にするIndieWebタグが何であるかを知ることにしました。それは単なる空虚な概念や90年代のウェブへの郷愁ではなく、具体的なアイデア、プロトコル、そして活発なコミュニティを持つ運動であることがすぐにわかりました。彼らのウィキを読み進めるうちに、その立場と提案の賢明さをますます理解しました。その熱意から、彼らのアドバイスに従い、自分のサイトにとって意味のあるプロトコルを採用することにしました。テストと調整を終え、この経験が非常にポジティブであったことを確認できます。多くのことを学び、ウェブサイトのUXはさらに少し改善され、プロセスを楽しみました。だからこそ、この数ヶ月のメモを整理して、この記事を書くことにしました。誰かがIndieWebを発見するのを助け、そしてその過程でウェブの健全性を向上させるかもしれません。そして、詮索好きな方のために、実装したこと、却下したこととその理由、そして最も役立ったアドバイスについても説明します。しかし、まず、基本的な質問に答える必要があります。IndieWebとは何か?IndieWebは「企業型ウェブに代わる、人中心の選択肢」と定義しています。それは特定のソフトウェアやフレームワークを提案するのではなく、思想的な基盤を提供します。それは意図的に多様なアプローチとプロジェクトを受け入れます。そのホームページにあるように、「私たちはプロジェクト中心ではなく、人中心です」。すべては2010年、アーロン・パレツキとタンテック・チェリックがポートランドで開催されたFederated Social Web Summitに参加したときに始まりました。彼らは、より少ないプロトコルとより多くのクリエイターという、異なるアプローチが必要だと感じていました。2011年にはポートランドで最初のIndieWebCampが開催され、以来、毎年世界中で開催されています。また、個人のウェブサイトを改善するために人々が集まるミートアップであるHomebrew Website Clubも開催されています。IndieWebを定義する3つの柱は以下の通りです。
あなたのコンテンツはあなたのもの:ウェブに何かを投稿したとき、それは企業のものではなく、あなた自身のものであるべきです。あまりにも多くの企業が閉鎖され、ユーザーのデータを一緒に持ち去りました。
より良く繋がれる:あなたの記事は、単一のプラットフォームだけでなく、あらゆるプラットフォームに配信でき、他のサービスからの返信や「いいね」があなたのサイトに戻ってくるため、すべてを一箇所にまとめることができます。
あなたがコントロールできる:読める永続的なURLで、常に機能するものを使って、好きなものを好きな形式で投稿できます。
したがって、これらをコミットメントとして共有する、個人の独立したウェブサイトのコミュニティと言えるでしょう。だからといって、ソーシャルネットワークの使用を禁止しているわけではありませんが、囲い込み型(walled garden)には反対しています。
敵には名前がある:サイロ
IndieWebの語彙はすべて、一つの概念、つまりサイロ(walled gardenとも呼ばれる)に対抗して構築されています。ウィキでは、それは中央集権的なウェブサイトであり、通常は営利企業によって所有され、あなたが貢献したコンテンツに対して何らかの権利を主張し、アクセスを何らかの方法で制限すると定義されています。その特徴は以下の通りです。
参加するにはサイト固有のアカウントを作成する必要があります。
同じサイトのアカウント間でのみ対話できます。
そして通常、次のようなものが追加されます:制限的な利用規約、作成したものに対するライセンス権、インデックス作成を妨げる壁、またはコンテンツのインポートとエクスポートの障壁。
なぜこれが問題なのでしょうか?サイロは死ぬからです。そして死ぬとき、それらはあなたのコンテンツを一緒に持ち去ります。「サイトの死」ページ(「信じられないほどの旅が終わるところ」という、企業の婉曲表現への言及)は、壊滅的な年表を掲載しています:GeoCities:Yahooは2009年10月26日に閉鎖しました。2300万ページが消滅しました。MySpace:2019年、サーバー移行中に、最初の12年間にアップロードされたすべての音楽、1400万人以上のアーティストからの5000万曲以上の曲を失いました。Google+:2019年4月に閉鎖されました。Posterous、FriendFeed、Vine、Yahoo Groups、TinyLetter、Cohost…リストは増え続け、「今後の死」や買収(しばしばそれらを foreshadow する)のセクションさえあります。サイロは死ぬ必要さえありません。ウェブはデフォルトで脆弱です。2024年のPew Researchの調査によると、2013年に存在したウェブページの38%は、10年後にはアクセスできなくなっていました。IndieWebの結論は「ソーシャルネットワークを使わない」ということではありません。それはより微妙です:好きなものを使っても構いませんが、コンテンツの正規コピーがあなたが管理するドメイン上に存在することを確認してください。だからこそ、ネットワークの脆弱性と戦うための原則のセットを定義しています。
原則
コミュニティは11の原則に導かれています。
データを所有する:あなたのコンテンツ、メタデータ、アイデンティティはあなたのドメイン下にあり、長期間アクセスを保持します。
目に見えるデータを使用し公開する:まず人間向け、次に機械向け。HTMLがデータを運べるなら、並列ファイルは公開しません。
必要なものを作る:「もしあなたが仮説上のユーザーのために設計するなら、そのユーザーは実際には存在しないかもしれません。もしあなた自身のために作るなら、あなたは実際に存在します。」
作ったものを使う:毎日、あなたが作ったものを使います。「もしあなたがそれに依存していないなら、なぜ他の人が依存するべきでしょうか?」
自分のものを文書化する:あなたはすでに自分の意見を表明する場所を持っています。それをあなたのプロセス、アイデア、コードを文書化するために使用してください。あなたは他者とあなたの未来の自分を助けます。
自分のものをオープンソースにする:必須ではありませんが、他者がより速く独立したウェブに移行するのに役立ちます。
UXをプロトコルより優先する:ユーザーエクスペリエンスを最優先し、それをサポートするために必要な、最もシンプルで最小限のプロトコルを使用し、それ以上は使用しません。彼らはこれを「UX before plumbing」(配管工事よりUX)と要約しています。
モジュール性:小さく、疎結合な部品で構成し、特定のデバイス、言語、プラットフォームに依存しないようにします。
永続性:長いウェブのために構築します。「もし人間社会が古代のパピルス、ビクトリア朝の写真、恐竜の骨を保存できるなら、私たちは進歩の名の下に、数年ごとに私たちがしてきたすべてを破壊する必要のないウェブ技術を構築できるはずです。」
多様性:意図的に多様なアプローチを奨励することで、コミュニティは単一文化よりも回復力が高まります。
そして何よりも、楽しむ:90年代のウェブ、GeoCities、うるさい背景、アニメーションGIFを思い出してください。「それは醜く、ひどくコーディングされていたかもしれませんが、楽しかったです。ウェブを奇妙で面白いものにし続けてください。」
番号は参照用であり、優先順位ではありません。コミュニティは、すべてを満たすことを要求していませんが、心に留めておくように求めています。しかし、IndieWebは原則だけで成り立っているわけではありません。あなたのサイトをよりオープンで、相互運用可能で、消滅しにくいものにするための標準セットがあります。
技術的な部分
IndieWebはプラットフォームを発明するのではなく、互いに組み合わさる少数の小さな標準を定義しています。公式インデックスは、実装の年齢と範囲でそれらを並べています。一つずつ見ていきましょう。
出発点:あなたのドメイン
これはプロトコルではありませんが、他のすべてに前提条件です。オンラインでのプライマリアイデンティティとして使用されるあなた自身のドメインです。これは「Getting Started」ガイドの最初のステップであり、コミュニティが「IndieWebに参加している」と見なすための最低限の要件です。明日、ドメインを維持したままホスティングやCMSを変更しても、すべてのリンク、リーダー、検索ランキングは移行を生き残ります。
microformats2:あなたのHTMLはあなたのAPIです
microformats2は一つの問題を解決します。並列ファイルを公開したりAPIを構築したりすることなく、コンテンツを機械可読にすることです。実装はエレガントで、既存のHTMLに追加するCSSクラスを使用します。プレフィックスはデータ型を示します:h-* はルート、p-* はプレーンテキスト、u-* はURL、dt-* は日付、e-* は埋め込みHTMLです。
2つの必須ボキャブラリ:h-cardはあなたのアイデンティティです。オンラインの名刺に相当します。ホームページに名前、URL、写真の最小限の情報があれば、リーダーは投稿の横にあなたのプロフィールを表示し、アプリケーションはあなたを認識します。これは、メールベースのGravatarの代わりに、ドメインベースのGravatarのように機能します:<a class="h-card" href="https://example.com"> <img src="/photo.png" alt="" /> Jane Doe </a>
h-entryはコンテンツの単位です。投稿のマークアップです。ウィキでは「キー