ここにある道具は、どれも 選ばれてここにある。
流行りだからという理由で道具を追いかけることはしません。これは、確実に世に出し、規模を伸ばし、1年後も気持ちよく手を入れられること、その全部が求められたときに手が伸びる道具立てです。意味のあるところを間違えにくくしてくれる、という基準で選んでいます。
TypeScript
私たちが書くコードは、すべて型がついています。型は、いちばん安く書けるテストです。リネームの取りこぼし、抜け落ちたフィールド、ありえない状態を、ユーザーが踏む前に捕まえてくれます。最初のリリースより長く生きることを前提にしたコードベースでは、このセーフティネットがあるかどうかが、自信を持った変更と慎重な当て推量との分かれ目になります。
typescriptlang.orgReact
React は、インターフェースを考えるための私たちの言葉です。小さく正直な部品が組み合わさって大きなものになり、育っても読みやすさを保ちます。Web で UI を組む方法として、いちばん実戦で鍛えられたやり方であり、そのエコシステムと人材の層は、どの代替手段にも真似のできないものです。プロダクトを何年も育て続けなければならないとき、この息の長さは大きな値打ちを持ちます。
Next.js
本気のものを作るとき、私たちはまず Next.js を選びます。速度と検索順位のためのサーバーレンダリング、100ページを超えてもスパゲッティにならないファイルベースのルーター、そしてマーケティングページからログインの先のダッシュボードまでをひとつのコードベースで動かせること。私たちは、その限界まで攻められるくらい深く理解しています。
nextjs.orgNode.js
スタック全体をひとつの言語で。ブラウザで動くのと同じ TypeScript がサーバーでも動くので、文脈の切り替えも、もうひとつのチームも、二つの方言で書き直すロジックもありません。完結したプロダクトを少人数で届けるとき、この単一の頭の使い方は静かな強みになります。
Go
サービスが高速で、同時に何千ものリクエストをさばく必要があるとき、私たちは Go を選びます。監視すべきランタイムのない小さな単一バイナリにコンパイルされ、並行処理のモデルは並列作業を自然に感じさせ、言語が小細工を拒むおかげで何年経っても読みやすいままです。本当の負荷を静かに支えるバックエンドは、Go に託しています。
AI Integration
大規模言語モデルも、ほかのすべてと同じように、意図を持って取り入れます。難しいのは API を呼ぶことではなく、知能が本当に役立つ場所と、遅延とリスクを増やすだけの場所とを見極めることです。OpenAI のプラットフォーム上で実際に使われる機能を世に出し、Replicate でホスト型モデルも動かしてきました。役に立つことと、ただ見栄えがするだけのことの境目について、お客様には正直であり続けます。
PostgreSQL
データが正しくなければならないとき、私たちは Postgres に手を伸ばします。何十年もの鍛え上げ、本物のトランザクション、欲しいときの JSON カラムと、必要なときの厳密なスキーマ、そして他のサービス3つ分の仕事を静かにこなす拡張エコシステム。いちばん意味のあるもの、つまりお客様とお金を預けて信頼できるデータベースです。
SQLite
すべての製品にデータベースサーバーが要るわけではありません。SQLite は単一ファイルに収まる完全なリレーショナルデータベースで、高速かつ依存関係がなく、世界でもっとも広く使われているデータベースです。データをユーザーの近くに置きたいとき、つまりデスクトップアプリや edge、オフラインでも動き続ける local-first な製品で、私たちはこれを選びます。
Tailwind CSS
Tailwind はスタイリングを正直に保ちます。デザインの判断が、それが効くマークアップのすぐ隣に置かれ、ビルドには実際に使うクラスだけが含まれ、肥大したスタイルシートがずれていくこともなく、少数精鋭のチームでも100個のコンポーネント越しに一貫していられます。このサイトも、上から下までこれで作っています。
tailwindcss.comVercel
私たちが Vercel にデプロイするのは、世に出すことが退屈であるべきだからです。プッシュごとに専用のプレビューURLが立ち、リリースはどれもワンクリックで巻き戻せ、グローバルなエッジネットワークが、私たちが世話を焼くサーバーを借りることなく、サイトをユーザーのすぐそばに届けます。小さなスタジオが、ずっと大きなところと同じ信頼性で走れるようになります。
AWS
プロジェクトが手軽な既定の枠を超えて育ったとき、その先にあるのが AWS です。決して埋まらないオブジェクトストレージ、ゼロまで縮んでまた伸びるキューと関数、そして世界最大級の企業が頼るのと同じインフラ。規模、到達範囲、コンプライアンスのために、それが反射的な選択ではなく正しい道具になるとき、私たちは手を伸ばします。
Cloudflare
Cloudflare は、速くて安全であってほしいものの前に立ちます。グローバルなCDN、ミリ秒で解決するDNS、そしてオリジンに決して届かせたくないトラフィックを受け止めるセキュリティ層。マーケティングサイトでも API でも、これはお金で買える中でいちばん安い性能と保護です。
React Native
プロダクトがホーム画面に居場所を持つべきとき、React Native なら同じ React の頭で作り、ひとつのコードベースから iOS と Android の両方に届けられます。使い捨てのプロトタイプも、別の言語のもうひとつのチームもいりません。隣にある Web プロダクトとロジックを分かち合う、本物のアプリです。
reactnative.devTanStack Start
TanStack Start は、私たちがすでに採用を始めている新しい選択肢です。型安全なルーティング、第一級のデータ取得、そしてページ全体のサーバーレンダリングを備え、React エコシステム全体がすでに頼っているクエリとルーティングのライブラリを作った人々の手によるものです。ルーターとデータ層を端から端まで型安全にしたい新規のビルドで、私たちはこれを選びます。
Astro
速さこそがプロダクトであるような、コンテンツ主導のサイトでは、Astro はなかなか手強い相手です。既定でほとんど JavaScript を載せないので、マーケティングサイトもドキュメント一式も、くたびれたスマホでさえ即座に読み込まれ、対話が値打ちを持つところにだけインタラクティブな島を落とし込みます。BIMFab はこのやり方で作り、Lighthouse を走らせるたびに90点台後半を出しています。
Three.js
ブラウザ上のリアルタイム3Dを、GLSL と WebGL で手書きしています。ここに動画はなく、あらかじめ描いたものもありません。あるのは、あなたのグラフィックカードの上で毎秒60回走る数学だけです。このサイトで動くものすべて、雲も、地球も、上にあるどのバッジも、こうして作りました。光でできたものは、ピクセルでできたものとは違って感じられるからです。
D3.js
ありもののチャートでは足りないとき、D3 ならデータを正確に描けます。経済紙であなたが見惚れたデータビジュアライゼーションの多くは、これが動かしているもので、すべての軸、トランジション、ピクセルを思いどおりにできます。数字の中に隠れた物語が、既定の棒グラフ以上の扱いに値するとき、私たちはこれに手を伸ばします。
Electron
ある種の道具は、ファイルシステム、ネイティブメニュー、そしてドックのアイコンとともに、デスクトップに居場所を持ちます。Electron なら同じ Web スタックのままそこに届けられるので、別のネイティブチームを立てずに、プロダクトがブラウザとデスクトップにまたがれます。私たちは本物の Electron アプリを作って世に出してきました。衣装をまとっただけの Web ページではありません。
道具は、結局それを握る 手の良し悪しがすべて。
スタックがプロダクトを作るわけではありません。作るのは判断です。仕事が本当に必要としている道具はどれか、退屈で実証済みの選択がいつ正解になるかを知っていること。これは、私たちが体で覚えてきた道具立てであり、意味のある仕事を作る、その作り方そのものです。

