本物の PostgreSQL
使い慣れた SQL とトランザクションがそのまま動きます。アプリからは env.db、ターミナルからは psql・pgAdmin・使い慣れた ORM で同じデータベースに触れます。
$ psql
runlot=# select * from users limit 4;
| id | name | active |
|---|---|---|
| 1 | jiwoo | true |
| 2 | minseo | true |
| 3 | haneul | true |
| 4 | seojun | false |
users · 4 rows
ホスティングから PostgreSQL、ログイン、ファイルストレージ、メール、Git リポジトリまで一つのプロジェクトで使えます。Next.js アプリも小さな API も、サーバー設定なしでデプロイできます。

runlot deploy
Bundling…
Bundled 12 files, 84.2 KiB
Uploading… (84.2 KiB)
Deploying…
v3 9f2c… 2026-09-16T04:12Z
→ https://my-app.me.runlot.dev
作って、デプロイして、必要な機能を足す。CLI をインストールしてログインしたあとは、この三つのコマンドだけです。
$ npm create runlot my-appNext.js、Hono、静的サイトから選んでください。runlot.json と必要な設定は最初から入っています。
デプロイが終わると、すぐアクセスできる URL が発行されます。
$ runlot deploymy-app はプロジェクト、me は個人組織です。

runlot.json に 1 行ずつ書けば、デプロイが作ります。アプリのコードからは env で使えます。
{
"database": true,
"auth": true,
"storage": true,
"email": true
}有効にするコマンドはありません。必要なものだけ書いて構いません。
プロジェクトを作れば、下のものが一緒についてきます。別に申し込むものも、つなぐものもありません。
使い慣れた SQL とトランザクションがそのまま動きます。アプリからは env.db、ターミナルからは psql・pgAdmin・使い慣れた ORM で同じデータベースに触れます。
$ psql
runlot=# select * from users limit 4;
| id | name | active |
|---|---|---|
| 1 | jiwoo | true |
| 2 | minseo | true |
| 3 | haneul | true |
| 4 | seojun | false |
users · 4 rows
メールと GitHub・Google のソーシャルログイン、セッション管理を提供します。サーバーコードでは env.auth.user() でユーザーを確認し、データへのアクセス権を決められます。
env.storage で画像や添付ファイルをアップロードし、有効期限つきの署名 URL で共有できます。認証情報がワーカーのコードに露出することはありません。
プロジェクトごとにメールアドレスが用意されます。env.email.send で送り、そのアドレス宛のメールはワーカーの email() ハンドラーが受け取ります。送受信したメールはダッシュボードで確認できます。
プロジェクトの中にリポジトリを作って HTTPS か SSH で push すると、コミットとファイルがそのままダッシュボードに見えます。
お持ちのドメインに CNAME と TXT レコードを設定すればつながります。証明書は自動で発行され、更新されます。
すべてのコミットを約 1 分ごとに暗号化して保管します。ダッシュボードでバックアップ・コミット・時刻のいずれかを選び、その時点に復元できます。

リクエストが来ない間は実行を止め、次のリクエストで自動的に立ち上がります。データと設定はそのまま残ります。
import { Hono } from "hono";import { Pool } from "@runlot/pg"; const app = new Hono<{ Bindings: Env }>(); app.get("/posts", async (c) => { const user = await c.env.auth.user(c.req.raw); const db = new Pool({ db: c.env.db }); const { rows } = await db.query( "select id, title from posts where owner = $1 limit 20", [user.id], ); return c.json(rows);}); app.post("/upload", async (c) => { const form = await c.req.formData(); const file = form.get("file") as File; const url = await c.env.storage.put("covers/" + file.name, file); return c.json({ url });}); export default app;env. からそのまま使う接続文字列や API キーを設定する必要はありません。env でアクセスして、使い慣れたフレームワークと ORM をそのまま使ってください。
$1 のようなプレースホルダで安全に渡されますenv API を使いますサービスごとに設定して運用していたものが、一つのプロジェクトの中にあります。


2026年9月時点で各サービスの公開ドキュメントと料金ページをもとにまとめました。定期的に再確認はしていないので、変わっている点があればお知らせください。
AI コーディングツールで社内ツールを作るのは簡単になりましたが、デプロイは今も誰かに頼む必要があります。runlot では誰が作り、どのデータを使うのかが最初から記録されているので、セキュリティ担当者に改めて説明することがありません。

組織を作ってメンバーを招待してください。管理者・メンバー・閲覧者のロールで、誰がデプロイし誰が見るだけかを決めます。
プロジェクトへのアクセスを組織のメンバーのみにすると、ログインしたメンバー以外はアクセスできません。アプリのコードが動く前に確認するので、アプリごとにログイン画面を作り直す必要はありません。
社内ツールが何十個あっても、それぞれが自分の PostgreSQL を使います。どのデータがどこにあるかは、プロジェクト一覧を見れば分かります。
データを社外に置けない場合、自社のインフラに導入する形はロードマップにあります。時期はお問い合わせください。
チーム・組織の導入について無料プランの範囲では請求されません。カードを登録していても同じです。
個人のプロジェクトやサイドプロジェクトには十分です。
$0/ 月
作ったサービスを自分のドメインで運用する方に向いています。
$20/ 月
複数のメンバーが社内ツールを出していく会社のためのプランです。
お問い合わせ
無料プランでは 料金には変わりません。その日はそれ以上リクエストを受け付けず、翌日から受け付けを再開します。プロは含まれる量を超えた分だけ従量で請求し、月の支出上限が標準で設定されているので、それ以上には上がりません。上限に近づくと先にお知らせします。
はい。既存のリポジトリで runlot deploy を実行してください。フレームワークを判別して必要な設定を用意します。データベースは pg_dump で取ったファイルをそのまま取り込めます。
はい。標準の PostgreSQL なので pg_dump がそのまま動きます。ファイルはただのオブジェクトで、env.storage.presign で署名付きの URL を発行できます。閉じ込めるような形式は使いません。
今はソウルリージョンの一か所で動いています。アプリとデータベースが同じ場所にあるため、データベース呼び出しがネットワークをまたぎません。ただし、ソウルから遠い場所では応答がその分遅くなります。ほかのリージョンは準備でき次第お知らせします。