世界を動かす技術を、日本語で。

Show HN: Gitdot – より良いGitHub。オープンソース、Rustで書かれています。

概要

  • Gitdot はRust製の新しいGitリポジトリ管理サービス
  • CLI風デザイン でキーボード操作に最適化
  • 現在はサインアップやリポジトリ作成、GitHubインポートなどが利用可能
  • CIやPRなどの高度な機能は未実装
  • 開発の詳細や設計思想は公式ページで公開

Gitdotの特徴と現状

  • ユーザー登録組織作成リポジトリ(公開・非公開)作成GitHubリポジトリのインポート 機能を実装
    • GitHubインポートは 読み取り専用ミラー完全移行 の両対応
  • リポジトリの作成・push・pull が可能
  • 未実装の機能 :Issue管理、Pull Request、CI/CDなど
  • Rustで開発 された点が他サービスと異なる特徴
  • Webアプリ ではなく CLIツール(fzf, broot, vim)風のUI/UX を採用
    • マウス操作よりも キーボード操作 を重視
    • 100ms以内の即時ナビゲーション を目指す
  • 公式デザインドキュメント (https://gitdot.io/designs)で設計思想や制作過程を公開
  • 開発チーム は自らの挑戦的なアプローチを認識しつつ、日々学びながら開発を継続
  • 今後の機能追加や改善 に期待

Gitdotの今後と開発姿勢

  • まだ機能は限定的 だが、今後の拡張を視野
  • 独自の操作体験 を重視したサービス設計
  • フィードバックや利用者の反応 を歓迎
  • 開発は困難だが挑戦を楽しむ姿勢
  • 次回のリリースや進捗報告 にも期待

まとめ

  • Gitdot は新しい形のGitリポジトリ管理サービス
  • Rust製・CLI風UI という独自性
  • 現在は基本機能のみ、今後の進化に注目

Hackerたちの意見

Forgejoとの違いは何になるんだろう?

Forgejoはかなり素晴らしいソフトウェアだよね。これまで、ForgejoやGitea、GitLab、そしてそれらの内部を掘り下げてきた中で、いろいろと分かってきたことがある。簡単に言うと、差別化のポイントはデザインだと思う。私たちの目標は、使いたいと思える最高の製品を作ること。開発者たちにも気に入ってもらえるといいな。考えていることの一部には、PRの基本としてのスタックされた差分、再現可能でローカルでテストできるNixベースのCI、超シンプルで直感的なバグトラッカー、そしてサイトをめちゃくちゃ速くて使いやすくすることが含まれている。つまり、ソフトウェアフォージがカバーする領域はかなり広くて、改善の余地がたくさんあると思う。これで十分伝わるといいけど、あいまいなところがあったらごめんね、まだ全ての答えは持ってないから、ハハ。

ターミナルの見た目は好きだけど、アクセシビリティのために、入力ボックスはもっと入力ボックスっぽく、ボタンはボタンっぽくしてほしいな。

フィードバックありがとう!自分の傾向がちょっと行き過ぎてる部分を削ってるところだよ。アクセシビリティについても、サイトのフォントが全体的に小さすぎることを認識してるから、すぐに修正するつもり。

Rustでこの分野に挑戦するアイデアは大好きだけど、普通のUIを作ってほしいな。何を見てるのか全然わからない。

個人的には、どの企業スタイルのUIも同じに感じる中で、GitDotのUIが好きだな。

面白いね!ここで適用しているデザイン哲学が好きで、ブラウザやウェブの動作がUXの一部になっているのは珍しいよね。もし一つ提案できるなら、昔のMacOSの「インスペクター」パターンが好きだな。基本的には、ユーザーが選んだ「もの」についてメタ情報を得るための一貫した方法だよ。右のサイドバーはそれに向かっているけど、ビュー間での一貫性を持たせるためにはもう少し手を加える必要があるね。GitHubのUIには、変なメタ状態や制約があって、それがUIでうまく説明されていないからバグみたいに感じる。GitHubでは各行に[...]メニューがあって、それを使うとブレームを見たり、関連する問題を作成したり、パーマリンクを取得したりできるけど、差分ビューではまったく違うUIになって、コメントを見ているときはまた違うし、ファイル内の行へのパーマリンクを参照している場合もまた違う。たとえ同じコードがその差分にあったとしても!UIには明確な「名詞」が必要だと思う。もしUIがコードの行を表示しているなら、たとえそれが差分ビューにあっても、「インスペクト」して同じメタ情報やツールを得られるようにしてほしい。これは「行」であって、「この行にリンクするPRのコメントにいるけど、変なメタ状態」ではない。同じことはコメントやコミット、著者にも当てはまる。もしUIがユーザー名を表示しているなら、「あの人は誰だっけ?」のインスペクターを引き出せるべきだよ。GitHubのコミットビューに入って、名前をクリックすると、その人のコミットのフィルタリストに送られるのは全く意味がわからない。これは唯一その場所で起こることだから。「最近のコミット」ボタンを「ユーザーインスペクター」の中に入れるべきだと思う。

ありがとう!昔のMacOSのインスペクターパターンは知らなかったけど、すごく面白そうだね。GitHubの動作の不一致についての批判にも同意するよ。これ、Superhumanの右パネルにも少し似てるね。時間を書いたり、名前を入力したりすると自動で情報が出てくる機能があって、個人的にはそれも便利だと思ってる。名詞に対するホバーについてはまだ真剣に考えていなかったけど、これでいろいろ考えさせられたよ。本当にありがとう、これは素晴らしい!

モバイル版はないけど、タブレットからアクセスしてるから、ブラウザで「デスクトップ」に切り替えればなんとかなるはず。横スクロールが出ても気にしないけど、訪問者に何も見せないのは「もういいや」ってなるね。あと、実際のデスクトップから見たとき、ファイルのリンクをクリックしたらめっちゃ遅かった。特にファイルをクリックしたときに、すぐに読み込まれると思ったら、 1) レイアウトが切り替わってページがリロードされるみたいになる 2) それから「読み込み中...」が数秒続く。ソースコードを見た感じ、Reactかそれに似たフロントエンドフレームワークっぽいね…うーん。なんでみんなあんなの使うのか分からない。普通のSSRを使えば、百倍速くてもっと快適なのに。もし本当にSPAが欲しいなら、ReactやVue、Svelte(それに似たもの)は使わない方がいい。ひどいし、いつも遅い。最後に、これがYCの会社っぽいから、何で書かれてるかは関係ないはず。実際、Rustがここでいいことになる理由が分からない。GoやRails/Djangoでも全然問題ないのに。でも、やっぱり「Rustで書かれてる」っていうミームを強化するだけだね。全体的にミニマリズムのアイデアは歓迎だけど、私みたいな人にアピールするはずなのに、上で挙げた理由で全然そうじゃない。

パフォーマンス重視で無駄のないものを目指すなら、見た目もそれを伝えてるし、クライアントサイドレンダリングやReactみたいな過剰なフロントエンドフレームワークは本当に必要ないと思う。同じくStyled Componentsも(使ってないみたいだけど)。

ほんとそれ。彼らの「話」と「行動」の不一致が気持ち悪いって思うの、すごく分かる。ミニマリズムを語っておきながら、Reactとか似たようなものを使ってるなら、もう完全にズレてるし、ミニマリズムの本質が全然分かってないよね。

「Rustで書かれている」っていうのを、何かのアドバンテージやキラーフィーチャーとして使うのはやめてほしい。

これ。

まあ、同じ製品がC++で書かれているのと比べれば、確かにアドバンテージではあるけど、そんなに大きなものじゃない。

いや、それはアドバンテージだよ。私はRustの信者でもプログラマーでもないけど、ツールを評価する際に、RustやGoで書かれているものは少なくともプロジェクトを詳しく見ようと思わせる。静的リンクされたバイナリを出せる可能性が高いから、これは私がツールを選ぶ際の重要な基準の一つなんだ。だから、あなたにとっては有効なシグナルじゃないかもしれないけど、他のユーザーにとってはそうかもしれない。たとえそれがあなたにとってネガティブな意味合いを持つとしても。それ自体が、使いたくない場合の良いフィルターになるかもしれない。

それは指摘しようと思ったけど、関係ないことだし、もっとひどいのを見たことがある。 > 7. gitdotはどうやってお金を稼いでるの? > 稼いでないよ。 > 幸運なことに、友達と呼べる投資家から小さなプレシードラウンドを調達できたし、経済的に独立して健康な状態でいるから。Artifactの創業者も同じことを言ってた。彼らはお金を稼ぐ計画がなく、自分たちの資本を使った後は続けないことにした(他の誰もArtifactに投資したがらなかった)。だから、最終的にはお金を稼ぐ必要が出てくるか、資金を調達するか、閉じるかの問題だね。

それはキラーフィーチャーだよ。自分でコードを簡単にコンパイルしたり編集したりできるってことを教えてくれる。

もう、そんなこと言うのやめてよ。確かに、プログラミング言語は技術的には関係ないけど、全部チューリング完全だしね。実際には、プログラミング言語がソフトウェアの使い心地や安定性、速度、作者が何に注力しているかなど、いろんな微妙なことを教えてくれるんだよ。2015年に「アトランタでGoを使って面白いことしてるのは誰?」って聞いて、人生で一番いい仕事の一つを見つけたんだ。Goにこだわってたわけじゃなくて、2015年にGoを使うことは特定のアプローチやエンジニアリングのスタイル、価値観の集まりを意味してたから。だから、プログラミング言語やそのコミュニティの全体像が、結果的なソフトウェアに深く影響することを無視するのはやめてほしいな。(これは特にハッカーニュースの皆さんに向けて言ってるけど、悪意はないよ)

見た感じ、彼らが「LLMにやられた」って書いた方が正確かもね :-) エージェントがコードしたプロジェクトが長期的にどうなるのか、すごく興味あるよ。LLMの一貫性は、ソースのボリュームが増えると減っていくから、どうなるか待ってみるつもり。

それは多分、みんなが最初に聞く質問の一つだから、言っておく価値はあると思う。彼らがRustを使うのは、単にそれが何かの自慢だと思ってるわけじゃない印象を受けたよ。

そうそう、Rustのプログラマーは新しいソフトウェアのビーガンみたいなもんだね。言語がいいからってだけで、機能のギャップや開発・サポートしてるチームの規模、競合ソフトウェアの問題を解決してないことを無視してる。はっきり言うけど、これはGHを支持するためじゃなくて、プログラミング言語がより良い製品やプログラマーを生むっていう考え方に反対してるんだ。

気をつけて!次は青色をRustで書き直して、利点を主張するかもよ。

ちなみに、サイトを開いたらファンが回り始めて、Firefoxがすごく遅くなった。何をしてるのか全然分からないけど、確実にCPUをめっちゃ使ってるね。

残念ながらRustで書かれてるから、使うつもりはないな。

発売おめでとう!セルフホスティングとオープンソースの組み合わせは、最近私が求めているものそのものだよ。ちょっと気になるんだけど、動かすのはどれくらい重いの?M1 Mac(16GB RAM)で快適に動くかな?