世界を動かす技術を、日本語で。

HNに表示: 私は過去3年間、製造業向けのERPを開発してきました

概要

  • Carbonは、既存ERPの課題を解決するために開発されたAPIファーストの製造業向けプラットフォーム
  • 柔軟な拡張性とベンダーロックインの排除を重視
  • モノレポ構成でアプリとパッケージを整理
  • Dockerベースのローカル開発環境をサポート
  • 豊富な機能と最新技術スタックを採用

Carbon: 新しいERPは必要か?

  • 従来のERP では、APIファーストの近代的ツールが存在しない現状
  • ベンダーロックイン が深刻で、コストや柔軟性の問題
  • 各企業固有の業務要件 に「完璧なERP」は存在しないという認識
  • Carbonはこれらの課題を解決するために設計

アーキテクチャと拡張性

  • APIを通じたアプリ拡張 を前提とした設計
  • examplesフォルダ にサンプルアプリを同梱
  • 独自アプリ開発 を容易にするプラットフォーム

主な機能

  • ERP、MES、QMSなど 製造業向け主要機能 を網羅
  • カスタムフィールド、ネスト型BoM、トレーサビリティ、MRP、MCPクライアント/サーバAPI、Webhook対応
  • 会計、容量計画、シミュレーション 等の拡張機能

技術的ハイライト

  • 認証・権限管理 の統一
  • フルスタック型の型安全性 (DBからUIまで)
  • リアルタイムDB購読、ABAC/RBAC/RLSによる多層アクセス制御
  • ユーザーグループの柔軟な構成、オペレーション依存グラフ
  • サードパーティ連携 の充実

採用技術スタック

  • Remix (フレームワーク)
  • Typescript (言語)
  • Tailwind (スタイリング)
  • Radix UI (UI挙動)
  • Supabase (DB・認証)
  • Upstash (キャッシュ)
  • Trigger.dev (ジョブ管理)
  • Resend/Novu (通知・メール)
  • Vercel (ホスティング)
  • Stripe (課金)

モノレポ構成

  • /apps :各アプリ(ERP, MES, Academy, Starter等)
    • npm run devで個別起動
  • /packages :共通ライブラリや設定
    • eslint-config, database, integrations, logger, react, stripe, utils等

開発セットアップ

  • GitHubリポジトリのクローン (AGPLv3準拠、商用はライセンス取得)
  • Docker必須、外部サービス(Upstash, Trigger.dev, Posthog)設定
  • .envファイル作成、各種APIキー・トークン設定
  • npm run db:start/build でDBセットアップ、 npm run build/dev でアプリ起動
  • 初期ログイン :usernameにメールアドレス、passwordはcarbon

アプリケーションURL(ローカル環境)

  • ERP: http://localhost:3000
  • MES: http://localhost:3001
  • Academy: http://localhost:4111
  • Starter: http://localhost:4000
  • Postgres: postgresql://postgres:postgres@localhost:54322/postgres
  • Supabase Studio: http://localhost:54323/project/default
  • Mailpit: http://localhost:54324
  • Edge Functions: http://localhost:54321/functions/v1/

運用コマンド

  • DBコンテナ停止・削除 :npm run db:kill
  • DB再起動・再シード :npm run db:build
  • 特定アプリのみ起動 :npm run dev -w @carbon/react など

APIの利用方法

  • ERPアプリ内で自動生成されるAPIドキュメント (${ERP}/x/api/js/intro)
  • 外部コードベース からSupabaseクライアント経由で利用可能
    • Javascript、Flutter、Python、C#、Swift、Kotlin対応
    • APIキーはERPの設定画面で発行
  • モノレポ内パッケージ から直接利用
    • getCarbonServiceRole()で全社データ取得や会社単位の絞り込みが可能

まとめ

  • Carbonは 現代的なAPIファーストERP を目指し、柔軟な拡張性と強力な機能群を提供
  • ベンダーロックインの排除独自開発の容易さ最新技術の統合 が特徴
  • 製造業の多様なニーズに応える 次世代ERPプラットフォーム

Hackerたちの意見

まずはおめでとう!これは簡単なことじゃないから、よくやったね。質問なんだけど、私の(限られた)経験からすると、ERPは統合を基に作られてると思うんだ。データモデルが最優先で、次が統合、あとはその次かなって思うんだけど、どう思う?ここでの目標は何なの?それと、フィードバックも一つ。Carbonは多くの自己ホスティング可能なSaaS系製品と同じ罠にはまってる気がするんだ(私のも含めて!)。一つのホスティング用に設計されたソフトウェアは、展開が複雑になりがちで、自己ホスティング用に主に設計されたソフトウェアはずっとシンプルに見えるよね。例えば、WordpressやOdooのインストールは比較的簡単で、基本的なフロントエンドのウェブサーバー設定と簡単に動かせるオープンソースのデータベースで済む。でもCarbonは、いくつかの異なるコンポーネントがあって、多くの依存関係があるみたいで、その中にはSaaS製品も含まれてるし、データベース(Supabase)も全体がマイクロサービスのエコシステムになってて、展開にはかなりの労力がかかるんだ。ここでの戦略は何なの?スキルはあるけど、Carbonを自己ホスティングすることは考えないかも。それがCarbonにとってビジネスとしては良いことかもしれないけど、エコシステムにはあまり良くないよね。

Carbonは、いくつかの異なるコンポーネントがあって、多くの依存関係があるみたいで、その中にはSaaS製品も含まれてるし、データベース(Supabase)も全体がマイクロサービスのエコシステムになってて、展開にはかなりの労力がかかるんだ。これをPulumiやTerraformのプログラムで解決できるかも?

私たちはERPの外で多くのカスタムERP関連システムを構築したよ。財務は大手に任せて、ERPとだけ話す感じ。すごくうまくいってる。

最近、2社の中堅製造業のお客さんのためにOracleの財務システムを置き換えたよ。年商約100億ドルの企業なんだけど、私たちはかなり小さいから、こんな大きな仕事を信頼してもらえて感謝してる。

同意だね。SAPが国ごとの異なる規制に合わせて複数の元帳を維持しているのは本当にすごい。これをすぐに置き換えるつもりはないよ。テスラも会計にSAPを使っているみたいだけど、他の部分には別のものを使ってるんじゃないかな。

ERPはAPIアクセスを許可してるの?それともCSVのアップロード/ダウンロードが必要なの?

発表おめでとう!現代の製造システムを見るのが好きだよ。サプライヤーマスターデータの管理はどうしてる?調達チームがERPで重複したベンダーに苦労してるのを見てるんだ。同じサプライヤーが5通りの方法で入力されて、支出分析やサプライヤー関係がめちゃくちゃになっちゃう。私たちはビジネスデータのクリーンアップのためにAIエージェントを作ってるところ(まだ秘密だけど、ドキュメントはそのうち出す予定)。製造業やサプライチェーンの顧客は、他の業界よりもサプライヤーデータが一番混乱してる気がする。Carbonでもこれを考えてるか気になるな。(CTOだけど、話せたら嬉しい)

サプライヤーの問題については、タイプアヘッド/コンボボックスコンポーネントを使ってるよ。でも原材料については、こんな感じでIDを自動生成してる:https://x.com/barbinbrad/status/1947682873416221184 それとエージェントも作ってるところ:https://x.com/barbinbrad/status/1903047303180464586 話せたら嬉しいな、brad@carbon.ms まで連絡してね。

これは医療業界で大きな問題だね。前の会社の収益の一部は、大手メドテック向けのMDMをやってたから。

もうユーザーはいるの?ターゲットとしてる製造会社の規模はどれくらい?私は産業ソフトウェアの分野にしばらくいるけど、大手製造業ではSAPが一番一般的だよね。ここ5年くらいで「UNS」っていう概念が出てきて、注目を集めてる(統一名前空間、ググれば見つかるよ)。技術的には穴があるけど、工場データと一緒にどう機能するかを示せれば注目されると思う。もし手伝えることがあれば言ってね。今、工場のデータを出入りさせるデータオペレーションの会社で働いてるよ。

もっとあなたの考えを聞きたいな。もしよかったら、私たちのDiscordに参加しない?市場はこんな感じに見てるよ:- 小規模なジョブショップやスタートアップが今使ってる(今5社が運用に使ってる) - 従業員200人くらいの中堅製造業がターゲットなんだけど、多くは会計が組み込まれてるのを求めてて、まだ進行中なんだ - 大手は複数の台帳があるから会計にはSAPを使わなきゃいけないけど、これは良い「カスタムMESのスタート地点」だと思ってる。

小規模な家具メーカーのオーナーなんだ。従業員は約15人。うちのプロセスに合うものがなかったから、オーダーマネジメントシステムは自分で作ったよ。サイトを見たけど、このソフトがどう役立つのかはよく分からないな。後でデスクトップで見てみるけど、まずはランディングページにもう少し良いデモ動画やGIFがあったらいいなと思う。

そうだね、いい指摘だ。ドキュメントは確かに改善の余地があるよ。興味があればこれをチェックしてみて。完全ではないけど、ソフトウェアのことをかなりよく説明してるよ:https://learn.carbon.ms カスタムのものを作っているかは分からないけど、うちはコンフィギュレーターがあるよ。

“ERP”って具体的に何なの?読んだり製品のウェブサイトを見たりすると、あまりにも曖昧で広範すぎて「全部」って感じがする。ビジネスはどうやってこの製品が必要かを知るんだろう?大手のERPには、具体的に何をするのかを示すスクリーンショット付きの明確なガイドがあるのかな?

基本的な機能は在庫の管理、仕入れ注文の管理、販売注文の管理だね。一般的には会計ともリンクしてるから、物を買ったり売ったりするたびに、会計元帳とつながってるんだ。それからMRP(製造のM)っていうのがあって、これはオプションなんだけど、売ってるものと買ってるものが違う時に使うんだ。だからERP/MRPは部品表(基本的には部品リスト)を管理して、何かを売りたい時には販売注文を作って、実際に作るための在庫があるかを確認する。もし在庫がなければ、仕入れ注文を生成できるし、全部揃ったら作業指示書を作成して、工場の人に部品を製品に変えるように指示するんだ。請求書は販売注文から作成されて、作業者の時間は仕入れ注文で追跡されるから、商品のコストや労働時間が自動的に財務報告に反映されるよ。

これは、ビジネスがコアプロセスを一つの統合システムで管理・自動化できるソフトウェアの一種だね。通常、財務・会計と営業、在庫、製造といった業務をリンクさせるんだ。

ERPにちょっと関わったことがあるけど、正直まだよくわからない。周りの無駄なことが本当にすごい量だよね。今、大きな会社で新しいERPシステムを導入しようとしてて、数十億も投資してるし、ベンダーロックインもすごいことになってる。でも、ERPが機能するように社内も変革してるのに、C++20にアップグレードするための2日間の作業が必要だって言っても、今はそれにお金をかけられないんだよね。

おめでとう!面白いね。私はしばらく縦型ERPに取り組んでるけど、製造業とは全然関係ないし、私の知る限り、会計がどのERPでもコアになってることが多いよ。ターゲットグループの会社では、誰があなたのICPなの?オペレーションマネージャー?私は主にCFOがERP購入の推進者になってるのを見てきたけど。

これ全部クールだけど、伝統的なERPシステムはOptifye.aiみたいなソフトウェアに食われると思う。視覚を使ってカウントして、手動データ入力で認証するって感じ。もしあなたのERPにビジョンが統合されてなかったら、そういうシステムを使っている競合にどんどん追い抜かれちゃうよ。

今、大規模な製造オペレーションを立ち上げてるところなんだけど、あなたのサイトにはいくつかの赤信号があるね。(a) セールスオーダーベースのプロセスを前提にしているように見える。(b) Stripeを通じたB2C販売を前提にしているように見える。(c) 層がたくさんあるけど、実際のユーザーの視点がない。最初に「前提条件」っていうページを作った方がいいと思う。その中で、あなたが仮定したことを全部リストアップして。それから、ERP、MES、その他のエリアごとにセクションを作って、スクリーンショットを一つか二つと、他のツールとの簡単な表形式の比較を載せるといいよ。最後に、使った層についてと、それが何をするのかを含めて。正直、誰もその辺のことには興味ないから、ほとんど開発者向けのドキュメントみたいになっちゃってるよ。

これは開発者向けのビンゴみたいなもの? ;-) 「Techstack Remix – framework Typescript – language Tailwind – styling Radix UI - behavior Supabase - database Supabase – auth Upstash - cache Trigger - jobs Resend – email Novu – notifications Vercel – hosting Stripe - billing」冗談じゃなくて、あなたの製品におめでとう!