OSSの内部ツールビルダー比較:Appsmith vs Budibase vs Tooljet で管理画面を10倍速く作る
オープンソースラボ編集部 ・ 2026年6月14日
OSSの内部ツールビルダー比較:Appsmith vs Budibase vs Tooljet で管理画面を10倍速く作る
Retool(月$10/ユーザー〜)・Internal(月$299〜)に対して、Appsmith(最も豊富なウィジェット・Retool代替)・Budibase(低コード・データベース統合)・Tooljet(軽量・プラグイン豊富)はOSSの内部ツールビルダーです。
内部ツールビルダーが解決する問題
エンジニアが「管理画面」「内部ダッシュボード」「CS対応ツール」を作る際、毎回React/Vue/Angularでフロントエンドをゼロから書くのは時間の無駄です。内部ツールビルダーは:
- ドラッグ&ドロップUI: テーブル・フォーム・グラフ・ボタンを配置するだけ
- データソース統合: PostgreSQL・MySQL・REST API・GraphQL・Redis・S3をGUIで接続
- ロールベースアクセス: 管理者・CSチーム・オペレーターごとに表示項目を制御
- ワークフロー自動化: ボタンクリック→API呼び出し→Slack通知を連鎖実行
主要ツールの概要
Appsmith
2019年に公開されたOSSの内部ツールビルダーです。GitHubスター35k+。45種類以上のウィジェット(テーブル・フォーム・グラフ・カレンダー・マップ・メディア)と50以上のデータソース接続(PostgreSQL・MongoDB・Salesforce・Google Sheets・REST API・GraphQL等)を提供。JavaScriptで任意のロジックを記述でき、Retoolと同等の柔軟性があります。
# docker-compose.yml - Appsmith セルフホスト
version: '3.8'
services:
appsmith:
image: index.docker.io/appsmith/appsmith-ee:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./stacks:/appsmith-stacks
restart: unless-stopped
environment:
APPSMITH_ENABLE_EMBEDDED_DB: 1 # 内蔵MongoDB(本番は外部MongoDB推奨)
APPSMITH_MONGODB_URI: mongodb://localhost/appsmith
APPSMITH_ENCRYPTION_PASSWORD: your-encryption-password
APPSMITH_ENCRYPTION_SALT: your-encryption-salt
APPSMITH_MAIL_HOST: smtp.yourcompany.com
APPSMITH_MAIL_FROM: noreply@yourcompany.com
// Appsmithクエリ:PostgreSQLで注文一覧を取得
// Query Editor でSQLを記述
SELECT
o.id,
o.created_at,
o.status,
c.name AS customer_name,
c.email AS customer_email,
SUM(oi.price * oi.quantity) AS total_amount
FROM orders o
JOIN customers c ON o.customer_id = c.id
JOIN order_items oi ON o.id = oi.order_id
WHERE
o.status IN ({{StatusFilter.selectedOptionValues.map(s => "'" + s + "'").join(",") || "'pending','processing'"}}})
AND o.created_at >= {{moment(DateRangePicker.startDate).format('YYYY-MM-DD')}}
AND o.created_at <= {{moment(DateRangePicker.endDate).format('YYYY-MM-DD')}}
GROUP BY o.id, c.name, c.email
ORDER BY o.created_at DESC
LIMIT {{Table1.pageSize}}
OFFSET {{(Table1.pageNo - 1) * Table1.pageSize}};
// JavaScript transform(クエリ結果を加工)
// Query → Settings → Transform Result
return data.map(row => ({
...row,
total_amount: "¥" + parseInt(row.total_amount).toLocaleString(),
status_badge: {
pending: "🟡 処理待ち",
processing: "🔵 処理中",
completed: "🟢 完了",
cancelled: "🔴 キャンセル",
}[row.status] || row.status,
}));
// AppsmithのJavaScript API:注文ステータスを更新してSlack通知
// Button.onClick に設定するJSオブジェクト
export default {
async updateOrderStatus(orderId, newStatus) {
// 1. DBのステータスを更新
const updateResult = await UpdateOrderStatus.run({
orderId: orderId,
status: newStatus,
});
if (updateResult.rowsAffected > 0) {
// 2. Slack通知
await SlackWebhook.run({
text: "注文 #" + orderId + " のステータスが " + newStatus + " に変更されました",
});
// 3. テーブルを更新
await GetOrders.run();
showAlert("ステータスを更新しました", "success");
} else {
showAlert("更新に失敗しました", "error");
}
},
};
Budibase
2021年に公開されたOSSの低コードプラットフォームです。GitHubスター23k+。AppsmithよりもUI作成が簡単で、データベーステーブルから自動でCRUD画面を生成する機能が優れています。PostgreSQL・MySQL・MongoDB・REST API・S3等を接続でき、スクリーン間のナビゲーション・ロールベースアクセス・自動化ワークフロー(トリガー → アクション)を提供します。
# BudibaseをDockerで起動
docker run -d --name budibase -p 10000:10000 -v budibase_data:/data -e MINIO_ACCESS_KEY=your-minio-key -e MINIO_SECRET_KEY=your-minio-secret budibase/budibase:latest
# WebUI: http://localhost:10000
# ヘルスチェック: http://localhost:10000/health
// Budibaseの自動化ワークフロー(YAML形式の定義)
// 管理画面の「Automate」タブで設定可能
const workflow = {
name: "新規ユーザー登録時にWelcomeメール送信",
trigger: {
type: "row_saved",
table: "users",
filters: [{ field: "status", operator: "equals", value: "new" }],
},
actions: [
{
type: "execute_query",
query: "update_user_onboarding_status",
params: { userId: "{{ trigger.row.id }}", status: "email_sent" },
},
{
type: "send_email",
to: "{{ trigger.row.email }}",
subject: "ようこそ!アカウントが作成されました",
template: "welcome_email",
data: { name: "{{ trigger.row.name }}" },
},
{
type: "send_slack",
webhook: "{{ env.SLACK_WEBHOOK_URL }}",
message: "新規ユーザー登録: {{ trigger.row.email }}",
},
],
};
Tooljet
2021年に公開されたTypeScript/Node.js製のOSS内部ツールビルダーです。GitHubスター35k+。45種類以上のデータソース(PostgreSQL・MySQL・MongoDB・Redis・Elasticsearch・BigQuery・Stripe・HubSpot・Twilio等)に対応し、JavaScriptカスタムコンポーネントも使えます。軽量でDockerのセットアップが最も簡単なため、プロトタイピングから始めやすいです。
# docker-compose.yml - Tooljet
version: '3.8'
services:
tooljet:
image: tooljet/tooljet-ce:latest
ports:
- "3000:3000"
depends_on:
- postgres
environment:
TOOLJET_HOST: https://tools.yourcompany.com
LOCKBOX_MASTER_KEY: your-32-char-lockbox-key
SECRET_KEY_BASE: your-64-char-secret-key
PG_HOST: postgres
PG_DB: tooljet_production
PG_USER: tooljet
PG_PASS: tooljet_password
PG_PORT: 5432
DISABLE_SIGNUPS: "false"
postgres:
image: postgres:15-alpine
environment:
POSTGRES_DB: tooljet_production
POSTGRES_USER: tooljet
POSTGRES_PASSWORD: tooljet_password
volumes:
- tooljet_db:/var/lib/postgresql/data
volumes:
tooljet_db:
機能比較表
| 比較項目 | Appsmith | Budibase | Tooljet |
|---|---|---|---|
| ウィジェット数 | 45+ | 30+ | 45+ |
| データソース接続 | 50+ | 30+ | 45+ |
| 自動CRUD生成 | 限定的 | ✅(強力) | 限定的 |
| カスタムJSコンポーネント | ✅ | ✅ | ✅ |
| Git同期(バージョン管理) | ✅ | ✅ | ✅ |
| 言語 | TypeScript/React | Svelte/Node.js | TypeScript/Node.js |
| GitHub Stars | 35k+ | 23k+ | 35k+ |
内部ツールからSlackや外部APIへの通知・連携にはCommunicationカテゴリ/categories/communicationのSlack Webhookを使います。内部ツールに認証・SSOを追加するにはSecurityカテゴリ/categories/securityのKeycloak・Authentikと組み合わせてください。
FAQ
Q. AppsmithとRetoolの機能差を教えてください
A. Retoolが優れている点: ①より安定したエンタープライズサポート②細かいバグが少ない③Mobxベースの状態管理が直感的④豊富なエンタープライズ実績。Appsmithが優れている点: ①完全OSSでセルフホスト可能②Retoolより60〜80%コスト削減③コミュニティが活発で質問回答が早い④GitコネクターでCI/CDとのワークフロー統合。5人以下の小チームや予算制約がある場合はAppsmithのセルフホストが最適。10人以上のエンタープライズチームで安定性最優先ならRetoolも検討価値があります。
Q. Appsmithのアプリをバージョン管理(Git)で管理するには?
A. AppsmithのGit統合機能を使います。設定から「Connect Git」でGitHubリポジトリと接続すると、アプリの定義(JSON)がリポジトリに保存され、ブランチ・PR・マージが可能になります。開発者はfeatureブランチで変更し、レビュー後にmainにマージするワークフローが実現します。npm run appsmith exportなどのCLIツールも開発中です。
Q. Budibaseで既存のPostgreSQLにCRUD画面を最速で作るには?
A. Budibaseの自動生成が最速です。①Budibaseにログイン②Data → External Datasources → PostgreSQLで接続③テーブルを選択④Screens → Auto-generate Screens → テーブルを選ぶとCreate/Read/Update/Delete画面が60秒で自動生成されます。生成されたUIはドラッグ&ドロップで調整でき、フィールドの表示・非表示やバリデーションを追加できます。
Q. セルフホストの内部ツールビルダーのセキュリティで注意する点は?
A. ①認証必須: デフォルト設定でインターネットに公開しないこと(VPN内またはSSHトンネル経由でのみアクセス)②HTTPS必須: Let's EncryptやCloudflare Tunnelで必ずHTTPS化③最小権限の原則: 内部ツールに与えるDBアカウントは必要最小限の権限(SELECT/UPDATE対象テーブルのみ)④監査ログ: Appsmithは管理者画面でアクセスログを確認可能⑤OSS脆弱性スキャン: TrivyでDockerイメージをスキャンして定期的に最新版にアップデート。特にDBのパスワードを直接入力できる内部ツールはインターネット公開厳禁です。
まとめ
| ユースケース | 推奨ツール |
|---|---|
| Retool代替・豊富なウィジェット | Appsmith |
| 最速CRUD・データベース自動生成 | Budibase |
| 軽量・多様なデータソース | Tooljet |