omg it's a smolsite — アドレス(URL)の中にウェブサイト全体が入ったサイト
(smolsite.zip)- ウェブサイトのすべてのファイルをZIPで圧縮してからBase64でエンコードし、ドメインの後ろに付けると、そのアドレス自体が完全なウェブサイトになるホスティング方式
- 別途ファイルをアップロードしたりサーバーに保存したりせず、アドレスを共有するだけでサイトを渡せる構造
- コマンドライン1行でZIP圧縮・Base64エンコード・URL生成を処理し、コマンドラインがない場合はZIPファイルをドラッグする方法にも対応
- サーバーはコンテンツをRAMに15分間だけ保持し、その後破棄。同じリンクを再度開いた場合にのみ再処理される
- Lwanウェブサーバープロジェクトの一部としてオープンソースであり、QRコードによる紙への印刷・スキャンまで可能
smolsiteの概念
- サイト全体がURLの中に含まれ、アドレスを共有するとサイト自体も一緒に渡される
- 2つのファイル(index.html、mylogo.png)で構成された例のように、複数のファイルをまとめて1つのアドレスに変換できる
smolsiteの作成方法
- すべてのファイルをZIPファイルに圧縮し、Base64でエンコードしたうえで
https://smolsite.zip/の後ろに続ける- コマンド例:
$ echo "https://smolsite.zip/\zip -DXjq9 - index.html mylogo.png | base64 --wrap 0`"`
- コマンド例:
FAQ
-
コマンドラインがない場合
- 下部の紫色のバーにZIPファイルをドラッグすると共有できる
-
紙でホスティングできるか
- 可能で、QRコードをクリックすると印刷・スキャン可能なバージョンを確認できる
-
オープンソースか
-
サーバーでのZIP処理方式
- コンテンツはサーバーで処理され、RAMに15分間保持された後、削除される
- ただし、誰かが同じリンクを再度開くと再処理される
-
ZIP爆弾(ZIP bomb)への対応
- デフレートされたデータは変更なしでそのままブラウザへ送信され、再帰的な展開がないため、ある程度防御できる
-
コンテンツのダウンロード・削除は可能か
- smolsiteを通じた正確なURL共有の遮断は可能な限り試みるが、コンテンツがURLの中にあるため完全な削除はできない
- リンクを持っている人は、smolsiteなしでも内容を抽出できる
- smolsiteを通じた正確なURL共有の遮断は可能な限り試みるが、コンテンツがURLの中にあるため完全な削除はできない
1件のコメント
Hacker News のコメント
https://smolsite.zip/UEsDBBQAAgAIAFtLJ1daaE7RlwIAAN4EAAAKAAA...
https://tinyurl.com/dmk9e4m2
data:text/html,My%20small%20websiteLook,%20it's%20real!望むなら data URI ジェネレーターで base64 エンコードも可能。smolsite の利点は、zip なら data URI より少し多く詰め込めることと、一部の JavaScript API は smolsite URL では動作するが data URI では動作しないこと
data:text/html,ブックマークツールバーに入れて使っている
[1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_...
https://wgx.github.io/anypage/?eyJoMSI6IkhlbGxvIEhOISIsImgyI...
[0] https://nopaste.boris.sh/
ただしアンカー部分はサーバーに送信されないため、サーバーが望んでも、それを通じて送られる有害コンテンツを検査できなくなる
これまで見たShow HNの投稿はどれも興味深かったし、自分のプロジェクトも始めて、ここで見せられるように磨き上げようという動機になった。誰かが自分の作品を投稿してくれて、そこで話せると本当にうれしい
もちろん最終的にはURL長の制限にぶつかるだろうが、キュレーターがURLの束を組み合わせて、より大きなテキストを作れるレイヤーを載せることもできる。LLMの魔法を少し入れて束を生成させることもできるし、そうすれば、すでに書かれたすべての本だけでなく、書かれ得るすべての本を含む図書館になる
もちろん冗談。メモ帳にも、存在するすべての本はすでに入っていて、ただ自分で入力すればいいだけだ、という話に近いのは分かっている
https://mkaandorp.github.io/hdd-of-babel/
https://news.ycombinator.com/item?id=34312546
https://news.ycombinator.com/item?id=2464213
高額なイベントカレンダーモジュールの費用をWebサイトベンダーに払わずに済ませるため、
data-events属性にbase64エンコードした簡単なJSONイベントスキーマを入れてカレンダーを作る公開ページをコーディングした。職員は非公開ページで公開ページの既存イベントデータを取得してカレンダービルダーに事前入力し、編集した後、新しいコード片を取り出して公開ページに貼り付ける、という使い方をしていた基本的にはうまく動いたが、結局カレンダーアドオンの費用を普通に払った気がする
https://sonnet.io/projects#:~:text=Laconic!%20(a%20Twitter%2...