0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【個人開発】2週間でkintoneプラグインを36本作り、販売サイトまで自作した話

0
Last updated at Posted at 2026-10-04

はじめに

kintone のプラグインを 2 週間で 36 本作り、売る場所(Re:BASE)も自分で作りました。
シリーズ名は「ちょい足し kintone」です。経理の締め、派遣の抵触日、労災の報告期限のような、業務の決まりごとを kintone に持ち込むプラグインを作っています。

例えば、カスタマーハラスメントに関する組織機能をちょい足しするプラグイン例です。

設定イメージ モバイル対応
image.png image.png

全プラグインが日本語と英語に対応しています(画面は英語表示のプラグイン設定)

この記事の要点

  • kintone の「標準だとほんの少し届かない」を埋めるプラグインを、2 週間で 36 本出しました
  • 実装やレビューなど、いくつかの工程で AI も活用しています
  • 36 本の作りを揃えるため、全プラグインが守る決めごとを文書にしました
  • 販売サイトは Remix 3 + Cloudflare Workers + Stripe で自作しました。カード情報は持ちません

私は元々 EC 系のエンジニアで、いまは本業のかたわら、スキマ時間に小さなアプリやツールを作っています。

なぜ kintone のプラグインを作り始めたか

理由は 3 つあります。

1. 「それ、kintone でいけるやん」を口だけで終わらせていた

周りで kintone を使っている人から、困りごとがよく聞こえてきます。

  • 締めたあとに、先月の数字が変わる
  • 同じレコードを 2 人で直して、片方の入力が消える
  • 法令で決まった期限を、毎回手で計算している

聞くたびに「それ、kintone でいけるやん」と思っていました。思っていただけで、作ってはいませんでした。

口だけの期間がさすがに長くなったので、やってみることにしました。

2. プラグインの衝突は、ちゃんと作れば避けられるのでは

kintone のプラグインの話をすると、「プラグイン同士がぶつかる」という声もよく聞きます。入れたら別のプラグインが動かなくなった、保存できなくなった、というものです。

技術者としては、ここが気になりました。衝突の多くは、作り方で避けられるのではないか。たとえば次のようなものです。

  • 保存時のエラー(event.error)を、ほかのプラグインの分まで上書きしてしまう
  • 入力不可にしたフィールドを戻すときに、ほかのプラグインが止めたものまで戻してしまう
  • グローバルな名前や CSS が、ほかと被る

それなら、作法を決めて、全プラグインに守らせ、まとめて入れて確かめればいい。これを自分の手で確かめたくなりました。

3. kintone の可能性を、自分で検証したくなった

kintone は「ノーコードの業務アプリ」として語られることが多いです。でも、プラグインと JavaScript の API を使うと、かなりのことができます。

一方で、汎用の部品(レコードのロック、値のコピー、検索など)は、すでに良い製品がたくさんあります。そこで、部品ではなく業務の規則を持ち込むことに絞りました。派遣の抵触日や労災の報告期限のように、法令や業界の決まりごとを保存の場で判定するものです。計算フィールドで頑張ると、IF の入れ子が地獄になる領域です。

どこまで kintone の上でできるのか。それを、本数を作って確かめることにしました。

作ったもの

販売中のプラグインは、単品が 36 本、業務ごとのパックが 5 つです。一部を挙げます。

業務 プラグイン
経理・締め 締め済み期間ロック、入金消込、印紙税の判定
見積・受注 前回単価、適用単価、与信枠チェック
品質・設備 計測器校正管理、金型ショット管理、管理図
人と労務 派遣の抵触日、留学生の週 28 時間、労災の報告期限
kintone の管理者向け API モニター、フィールド一覧、権限の棚卸し

リポジトリは 1 つのモノレポで、TypeScript と Vitest で書いています。共通の部品(設定画面の型、多言語の判定、API の見積もり)は shared/ に置き、各プラグインから使います。

2 週間で 36 本作れた理由

実装やレビューなど、いくつかの工程で AI も活用しています。何を作るか、出してよいかは私が決めています。

2026-09-20 に始めて、2 週間でコミットは 1,160 件になりました。

36 本の作りを揃えるための決めごと

本数が増えると、放っておけばプラグインごとに違う色、違う書き方、違うボタンになります。そこで、全プラグインが守る決めごとを文書(docs/conventions/)にし、テストでも止めるようにしました。柱は 3 つです。

こだわり 具体的な決めごと
kintone 標準の世界を壊さない 独自の色・角丸・影を付けない(CSS をテストで検査)。設定画面に 1 日あたりの API 使用回数の見積もりを必ず出す
ほかのプラグインに迷惑をかけない 保存時の event.error は上書きせずにつなぐ。入力不可を戻すのは、自分が止めたフィールドだけ
日本で働く外国人も使える 画面の文字は日本語と英語を持つ。訳すのはラベルだけで、保存するデータは訳さない

さらに、全プラグインを 1 つのアプリにまとめて入れ、ぶつからないかを確かめてから出しています(全盛り検証と呼んでいます)。

販売サイト Re:BASE の技術

kintone 公式の連携サービス一覧に載るには、パートナーの認定が要ります。いまの私には、まだ届きません。そこで販売サイトも自作しました。

判断ポイント 選んだもの 諦めたこと
フレームワーク Remix 3(beta) 枯れた安定版。beta なので API の変化に付いていく必要がある
動かす場所 Cloudflare Workers Node.js 向けのライブラリを自由に使うこと
決済 Stripe 自前でのカードの扱い(持たないと決めた)
ライセンス 自前の API(kintone のドメインごとにトークンを発行) 既製のライセンス管理サービス

決めたことは 2 つです。

  • カード情報は Re:BASE に保存しない。 決済とサブスクの管理は Stripe に任せ、Re:BASE が持つのは「どの kintone ドメインで、どのプラグインを使えるか」というライセンスの情報だけにしました
  • ライセンスが切れても、業務のデータは止めない。 止まるのはプラグインの機能だけで、kintone の標準の機能と、入っているレコードはそのまま使えます

Remix 3 は外部の依存をほとんど持たない作りなので、「ライブラリを足さない」を自分のルールにしています。

苦労したこと

  • 全盛り検証のアプリが、20 本で満杯になった。 kintone は 1 アプリに入れられるプラグインが 20 本までです。36 本は入らないので、検証のアプリを 2 つに分けることにしました
  • 英語で見たら、設定画面だけ日本語だった。 レコードの画面は訳していましたが、設定画面が漏れていました。全盛り検証を英語の kintone で見て、ようやく気づきました
  • 言語のテストが、通ったり落ちたりした。 言語を決めずに文言を検査するテストが、同じ回に走った別のテストの後始末に左右されていました。今は、文言を検査するテストでは言語を明示しています
  • 試用 7 日間は短すぎた。 競合を調べると、主流は 30 日でした。業務のプラグインは、入れて設定して社内で確かめるだけで 7 日が終わります。14 日に延ばそうと思います

結果

  • 販売中: 単品 36 本、パック 5 つ、月額セット
  • 全プラグインが日本語と英語に対応(他も増やせます)
  • 衝突の検証: 1 アプリに 20 本まとめて入れても、互いにぶつからないことを確かめてから出しています(理由の 2 つ目への、今のところの検証方法)
  • ダウンロード数: 0 本 (自分の購入テストを除く)

はい、ゼロです。作ることに夢中で、誰にも知らせていませんでした。2 週間で 36 本作って、実績はまだありません。

なので、この記事から発信を始めます。当面の目標は、最初の 1 本が利用されることです。売れたら、この記事に追記します。

おわりに

学んだことは 2 つです。

  • 本数が増えるほど、決めごとを文書にしてテストで守らせることが重要になります
  • 実画面で、別の言語・別のプラグインと一緒に見ないと分からない不具合があります

「kintone でこういう業務に困っている」という話があれば、コメントで教えてもらえるとうれしいです。次に作るものの、いちばんの手がかりになります。

宣伝

作ったプラグインは Re:BASE で買えます。単品は無料で試せます(カードの登録は要りません)。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?