
2026/08/26 20:33
Show HN:Typebase — TypeScript で記述した単一フォルダのバックエンド
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Typebase は、チームが
npx typebase-io-cli init コマンドで typebase/ フォルダの雛形を生成し、npx typebase-io-cli deploy コマンドでそれをデプロイできるようにすることで、バックエンド開発を簡素化します。開発者は typebase/ 内の単純なファイル(例:db/schema.ts、actions/、auth.ts、env.ts、publisher.ts)にスキーマ、サーバーアクション、オプションの認証を定義し、冗長な REST または gRPC の配線表現豊かな fn() 抽象化で置き換えます。同プラットフォームでは Next.js、SvelteKit、Nuxt、Expo といった人気のあるフレームワークに対応しており、Server Components、ロード関数、プラグイン、SecureStore などの直感的なクライアントを通じて対応しています。デプロイ先には Vercel、Cloudflare Workers、Deno Deploy、データ用として Neon ホストの Postgres が含まれます。Typebase のインテリジェントなコンパイラはエンドツーエンドの型チェックを実行するため、セキュリティが不十分なポリシー(例えば、過剰に権限の広い UPDATE クロージスなど)がデータベースに到達することを防止し、Row Level Security のような一般的な課題をデータとの相互作用の前で認証を明示的にすることで解決します。現状ではストレージ機能は限られており将来のリリースのために予約されていますが、この宣言的モデルは深いインフラストラクチャ知識や物理サーバーの管理なしにロジックを直接コードにシフトすることを可能にします。エンジニアは簡単な手順で生産可能なコードを生成し、迅速な開発と向上したセキュリティを実現することで、サーバーレスアーキテクチャをよりシンプルで安全なワークフローへと進めています。本文
TypeBase: フルスタックバックエンドを 100 秒で構築・デプロイする
TypeBase は、
typebase/ ディレクトリへの配置だけでデータベーススキーマ、サーバーアクション、認証を完結させる新技術です。Next.js・SvelteKit・Nuxt・Expo のガイドと対応クライアントが用意されており、100 秒以内に開発からデプロイまでが可能です。
仕組み:2 つのコマンドでバックエンドへ
すべてはコードベース内で完結します。CLI がコード生成、スキーマプッシュ、デプロイを自動処理します。
01. スケルトン作成
既存プロジェクト内に
typebase/ フォルダを作成し、以下の機能を付与します。
- データベーススキーマの定義
- サンプルアクションの設定
- オプションの認証機能
- リアルタイム配信機能
外部リポジトリやダッシュボードは不要です。
$ npx typebase-io-cli init
02. TypeScript で記述
以下のファイルを記述・設定します。すべてのエクスポートが エンドツーエンドで型チェックされます。
: テーブル定義db/schema.ts
: アクションのエクスポートactions/
/auth.ts
/env.ts
: 認証・環境変数・配信設定の追加publisher.ts
03. デプロイ
フォルダを以下のプラットフォーム上のサーバーとしてデプロイ可能です。
- Vercel
- Cloudflare Workers
- Deno Deploy
バックエンドは Neon の PostgreSQL を使用します(必要に応じてサーバーコードの生成も可能)。TypeBase はゼロ台のサーバーを持っていません。
$ npx typebase-io-cli deploy
拡張された型安全性と認証
RLS の課題 vs TypeBase のアプローチ
-
RLS(行レベルセキュリティ)の限界
- 暗黙的な動作で、エディタによる型チェックが困難。
ポリシーに権限を与えると、追加されるすべてのカラムへの書き込みが許可されてしまいます。UPDATE- コンパイラが検知しないため、過剰な権限を持ったコードがレビューを通過するリスクがあります。
-
TypeBase の解決策
- 認可は明示的です。アクションで受け付けるカラムを宣言します。
- データベースへの到達前に、認証チェックをコード上で実行します。
- カラムを追加すると、コンパイラが「誰が書き込み可能か」を検知して警告を出します。
- エージェントが記述するコードそのものがコンパイラによって検証されます。
非安全なポリシーの排除
TypeBase は、
auth.role() = 'authenticated' ですべての認証済みユーザーに全カラムの更新を許可するような設計は行いません。
- 理念: コード内で実際に動作するバックエンド関数を提供します。
- 現状: ストレージ機能はまだ実装中(ロードマップ次のステップ)です。
業界を揺さぶる証言
「これらの人物はいずれも存在しません。確認しました。二回も。」
— 法務担当者
「四半期に REST の配管コード 4 万行を削除した。テクニカルリードは泣いた。幸福の涙だっただろうと思う。今はもう聞かなくなった。」
— Mariel Vonnegut(AI unicorn のプリンシパルエンジニア)
「TypeBase を使う前は、パイプラインに三つの頭字語:REST、gRPC、WHY がありました。今は一つだけ:
です。かつてないほど幸せで、私の Oura リングも同意しています。」fn()
— Dave Dave(シニアフルスタックエンジニア)
「Typebase について四人の別のセラピストに話しました。二人は私をクライアントとして受け付けなくなり、他の二人は今そのアプリを開発中です。」
— Clementine Ryu(セラピストの間にあるエンジニア)
「共同創設者に認証はどこにあるかと尋ねられ、『auth.ts というファイル』と答えました。以来何も話していません。私は彼は感心しているのだと思います。」
— Tomás Lindberg(インディーハッカー)
「14 のマイクロサービスを 1 つのフォルダに置き換えました。DevOps チームは私のためにパーティーを開いてくれました。パーティーは会議でした。会議はリストラについてでした。」
— 匿名
「10/10 でまたバックエンドをフォルダにします。」
— Hannah Pollard(シニアフォルダエンジニア)
すぐに始めよう
エージェントが読み込めるバックエンドを導入するのは、以下のコマンドで約 90 秒です(大半は
npm install)。
$ npm i typebase-io && npm i -D typebase-io-cli
詳細についてはドキュメントをご参照ください。
最新情報を追うには GitHub でスター登録してください。