作ったモノ
ゲーム
Numshot
同じ数字がマージされて数字が大きくなっていくゲーム。
永遠に終わらない。気づいたら目が疲れてる。
Searchlights
ボードゲーム「シティチェイス」をパクったブラウザゲーム。
犯人1人が街のビルに車を隠して逃げ、警察がヘリコプター3機で12ラウンド以内に見つけ出す。
1台の端末を2人で回す交代モード、相手をCPUが持つモード、ロビーでルームを立てるオンライン対戦がある。オンラインは1対1と、警察を3人で持つ4人形式。
フロントエンドはSolid.js + ViteでCloudflare Pagesに、APIはCloud Run + PostgreSQLで動かしている。
NYX
GRADIUSのような横スクロールシューティングゲーム。
射撃を連打しすぎると急に連射速度が急激に遅くなる。
モバイルでもプレイできるけど、PCでゲームパッド使うのが一番楽。
TILT.
Playdate向けのゲーム。加速度センサーで本体を傾けてボールを転がし、ゴールを目指す。
Sideloadでインストール可能。
このゲームのBGMをYoutube にアップしてます。 TILTのサウンドトラック
サービス
Talkers
簡易SNS。
アバターはパターンを組み合わせた猫のイラストしか選べない。
あと、なにかスレッドを立てて書き込んでおくとAIのボットが勝手に返信したり議論したりしてくれる。
Hallucinator
グーグルアカウントでログインすると、毎日、ニュースのRSSを調べてそれらを要約し、トピックを作成してメールを送ってくれるサービス。
メール送信時刻を3時間単位で設定可能。毎日その時刻にメールが届く。
興味のあるカテゴリ、不要なカテゴリ、カテゴリの順序を設定可能。
PEERFACE
WebRTCを使ったP2Pビデオ通話アプリ。
CloudFront + S3 + CloudRun + NeonDBで構成。 Nest.jsでAPIを書いて、Solid.jsでフロントエンドを書いている。
通話中にテキストチャットもできるし、ファイルでP2Pでサーバーを介さず送信できる。
AACHAT
映像がアスキーアートに変換されて表示される簡易ビデオ通話ツール。
共通のキーワードを入力した2ユーザー間で、1−1の通話ができる。
ちなみに、普通に映像を表示するほうが、実装は簡単。無駄にテキストに変換していると言える。
WEBRTCを使うが、シグナリングに自前のPipingServerを使う。
STUN サーバーは、Google などの公開 STUNを利用する。
シグナリング成功後はP2Pで直接通信するため、サーバーが不要というところが素晴らしい。
P2P接続できない場合は接続不可。(TURNサーバー無し)
モバイルでも使えます。
アプリケーション
excess
excess — ブラウザで動くCSV/TSVビューア&エディタ。
ExcelなしでCSVファイルをサクッと開ける。大容量ファイルにも対応。
カラム幅を自動調整、フィルタリング、ソート、様々な形式へのエクスポートなど、いろいろできる。
サーバーサイドの処理はなく、全てブラウザ上で完結する。
ファイルもサーバーにアップロードせず、OPFSを使ってローカルで処理する。
ブラウザのタブを閉じてもファイルは消えないし、同じブラウザであれば別のタブからもアクセスできる。
Rufly
ウェブページを要約・翻訳するChrome拡張機能。
PipingServer
AA電話のWebRTCで無理やりシグナリングに使っているPipingServer。
ブラウザでアクセスするとデモページが開くが、コマンドで利用できる。
本来の使い方としては、一方からテキストを送信して、他方で1回だけ受信できるサーバー。
/p/の後に適当な名前をつけて、そこにテキストをPUT methodで送信すると、別のシェルから同じURLにGET methodで受信できる。
送信側
echo "こんにちは。" | curl -T - https://ppng.urtell.com/p/sample-hoge
受信側(別のターミナル、別のPCで)
curl https://ppng.urtell.com/p/sample-hoge
こんにちは。
rusterd デモ
ER図のSVGを生成するDSLコンパイラ。
CLI版とWEB版がある。
開発者用ツール
soluid Components
solid.js 用のコンポーネントライブラリ。 package.json にインストールするのではなく、スタンドアロンで動作する。
npm package: https://www.npmjs.com/package/soluid
Soluid Components のコンポーネントカタログ兼デモページ。
パスキーのデモ
パスキーのデモサイト。
パスキーを使って登録してログインすると、パスキーを更に登録したり、それらを使って認証をテストしたりできる。
Claude Code を試すために作ったので、無駄にi18n対応したり、無駄にデザインを切り替えられるようになっている。
APIはRustで書いてビルドしたバイナリを乗せた小さいLWA入りのイメージをLambdaにデプロイ。 フロントエンドはSolid.jsで書いて、S3にデプロイしている。
Pulumiでデプロイした。
Rust でAPIを書いて、Lambda に乗せてPulumiでデプロイする実験でもある。













