ことの発端
ちょっと個人利用目的で1個Webアプリを作りたいなと思って、どんな仕組みにしようかなーと考えてました。
で、「よーし流行りのGraphQLでデータを返してReactで作るかー」と思って、じゃあデータをどこに格納しようかなーと考えてたんですが、あんまりガリガリ作ったりするのもやだし、データベース作らないといけないので編集とかしやすいのないかなーと考えて、「そうだAirtableにしよう」と思いつきました。
実はAirtable、GraphQLも対応してます。
正確にいうと「BaseQL」というサービスを経由するのですが…
これで…
- Airtableでデータを保持する
- Airtableとアプリ側の接続インターフェースはbaseQLを利用してGraphQL接続で
- アプリ側はReactベースの何かで接続して作る
これでうまくいきそうだ!と思ったんですが…ちょっと…高い…
このBaseQLとかのApps機能を使おうとすると20$/month(年払いで)なんですよね。
なので、年間240$はちょっと高いなと思って…躊躇。
なんか似たような代替サービスないかなーとおもってちょっと探してました。
で、調査してみたメモがこちらとなります。(前置きが長い)
調査してみたサービス
Airtable
Airtableはノーコード+クラウド型データベースサービスになります。
イメージはデータベースを非エンジニアでも使いやすく、管理画面をくっつけてくれた感じ。
こんな感じでおしゃれな画面も提供されてデータ管理がしやすい。
もちろんこれにいろんな機能がついてて、REST API等使ってデータを取り出すことが可能です。
この編集画面も結構秀逸でちゃんとコピペや計算処理、別テーブルデータからのLookupも可能です。
まぁやはりこれ系サービスの雄ではあります。
Google Spreadsheet
ん、表計算のツールここで出すんかい!という話ですが、Airtableがデータベース側からインターフェースとか便利な機能を盛り込んでいったのであれば、Google Spreadsheetは表計算アプリからデータベース側に歩み寄ってる感じ。
Google SpreadsheetでAPIできるんかい!ってことですができます。
なんせ無料ですしね…ある意味管理画面は当然のごとくついてます。
ただ、リクエスト制限が結構あります。
baserow
オープンソース+無料?でホスティングもあるAirtableと同じ思想のノーコードデータベースアプリ。
画面も似てるしやれることも似てます。
中身のアーキテクチャはDjangoとNuxt.js+PostgreSQLの模様。
オープンソースなので置けばタダというのはいいっちゃいいですね。
管理画面は最低限の機能はある感じ。ただ、Airtableほどの機能は全然ないです。
これからだなぁという感じ。
NocoDB
これもオープンソースで開発してる同じようなソリューション。
ここはホスティングサービス無いので自分で設置です。
Herokuとかに展開すればとりあえず使えます。
NocoDBの特徴は、最初から作る時のProjectの外部インターフェースでGraphQLが使えるところ。
そして機能もbaserowよりも豊富です。カラム定義も多いし、インターフェースとしてこっちの方がいい感じ。
ということで調査結果
難しいな…Airtable優秀だな…という結果に。
素直にREST APIでAirtableを使おうかな…。
サービス名 | 金額体系 | データ編集機能 | 周辺機能 | 接続IF機能 | Import/Export | 制限 |
---|---|---|---|---|---|---|
Airtable | × (Free〜) GraphQLとかを使おうとすると月20$〜 |
◎ コピペや多くのデータタイプに対応 | ◎ Apps機能で色々追加可能(ただし有料) | ○ Apps機能使えばGraphQL、DefaultでREST API | ◎ CSV ExportやImport対応 | ? 特に無い模様 |
Google Spreadsheet | ○ 基本無料 | ◎ 文句なし | ◎ 一通りの機能あり | ○ 連携できるのいっぱい。GAS使える | ○ Excelファイル等 | △ 同時リクエスト数30やFetchサイズ制限がありややこしい |
baserow | ○ 設置する場所次第 | △ やや使いにくい。データタイプも基本のみ | △ あまり周辺機能なし | △ REST APIのみ | × Exportのみ | ○ 設置する場所次第 |
NocoDB | ○ 置く場所次第 | ○ 最低限必要なのは揃ってる感 | △ Webhook機能やZapierなどとの連携が可能 | ○GraphQLとREST API選べる | △ やや特殊だができる模様 | ○ 設置する場所次第 |
2022/05/11:追加
昨今この領域はCloudCMSと呼ばれる製品群も似たようなサービスになります。
Contentfulとか。かなり高機能にデータを格納することができるものの、割とお高いので使い分けですね。