分散型Webアプリの新境地!HeyPuter/puterで始める次世代開発


分散型Webアプリの新境地!HeyPuter/puterで始める次世代開発

HeyPuter/puter

2025-08-22

「HeyPuter/puter」は、一言で言うと「ブラウザ上で動くオペレーティングシステム(OS)」です。でも、ただのOSじゃありません。これはインターネットを基盤とした、分散型Webアプリケーションを構築するためのオープンソースのフレームワークなんです。JavaScriptを書いて、ブラウザ上で動くOSのような環境を作り、ファイルシステム、ウィンドウ管理、GUIツールキットなどを活用することができます。これは、まるでブラウザの中に、自分だけの「パソコン」を作るようなイメージですね。

これは、ソフトウェア開発の新しい可能性を広げてくれるツールです。以下にいくつかのメリットを挙げてみましょう。

GUIアプリケーション開発の簡素化
GUI(グラフィカル・ユーザー・インターフェース)を持つアプリケーションを開発するのは、通常はかなり大変です。しかし、このフレームワークを使うと、ファイルシステムやウィンドウ管理などの基盤がすでに用意されているため、非常に効率的にGUIアプリケーションを開発できます。

Webアプリケーションの新しい可能性
従来のWebアプリは単一のページやサービスとして存在することが多いですが、これを使えば、複数のアプリケーションが連携し、ファイルやデータを共有する、よりリッチな「エコシステム」を構築できます。まるで、ブラウザ上で動くデスクトップ環境をまるごと作ってしまうような感覚です。

分散型アプリケーションの開発
「puter」は、分散型のアーキテクチャを持つことができます。これは、単一のサーバーに依存しない、より強固でスケーラブルなアプリケーションを構築する上で非常に有利です。

フルスタック開発者のスキルアップ
フロントエンド開発者が、ファイルシステムやGUIコンポーネントといったOSの概念に触れる良い機会になります。バックエンド開発者も、ブラウザ上でのロジックの構築や、新しいアーキテクチャの可能性を学ぶことができます。

導入はとてもシンプルです。今回は、npmを使った導入方法を説明します。

Node.js と npm のインストール
まず、開発環境にNode.jsとnpmがインストールされているか確認しましょう。

プロジェクトの作成
ターミナルで以下のコマンドを実行し、新しいプロジェクトを作成します。

mkdir my-puter-project
cd my-puter-project
npm init -y

「puter」のインストール
次に、puter を依存関係としてインストールします。

npm install @puter/core

これで、プロジェクトの準備が整いました!

簡単な「Hello World」アプリケーションを作ってみましょう。

index.html の作成

まず、アプリケーションの実行基盤となるHTMLファイルを作成します。

<!DOCTYPE html>
<html>
<head>
    <title>My first puter app</title>
</head>
<body>
    <div id="root"></div>
    <script src="main.js"></script>
</body>
</html>

このHTMLは、JavaScriptで構築されるGUIアプリケーションの「土台」となります。

main.js の作成

次に、アプリケーションのメインロジックを記述するJavaScriptファイルを作成します。

import { createApplication } from '@puter/core';

// アプリケーションを非同期で初期化
async function main() {
    const app = await createApplication({
        root: document.getElementById('root'), // HTMLのどこに描画するか指定
        apps: {
            'hello-app': async () => {
                // アプリケーションのコードをここに記述
                return {
                    name: 'Hello App',
                    icon: 'path/to/icon.png', // アプリのアイコン
                    main: async (context) => {
                        // ウィンドウを作成
                        const window = context.createWindow({
                            title: 'Hello',
                            width: 400,
                            height: 300
                        });

                        // ウィンドウにコンテンツを追加
                        const content = document.createElement('div');
                        content.innerText = 'Hello, puter!';
                        content.style.padding = '20px';
                        window.appendChild(content);

                        // ウィンドウを表示
                        window.show();
                    }
                };
            }
        }
    });

    // アプリケーションを起動
    app.run();
}

main();

このコードでは、createApplication 関数を使って、新しいアプリケーションを定義しています。'hello-app' という名前のアプリを登録し、その中でウィンドウを作成して「Hello, puter!」というテキストを表示しています。

アプリケーションの実行

このHTMLファイルとJavaScriptファイルを用意して、live-serverなどのローカルサーバーで実行すれば、ブラウザでOSのような環境が表示され、その中に「Hello App」が動くのが確認できます。


HeyPuter/puter




ダイエット中の俺が解説!Frappe/HRMSで実現するスマート人事!

今日はね、みんながソフトウェアエンジニアとしてバリバリ働く上で、とっても役に立つかもしれない強力なツール、その名も「frappe/hrms」について、コント風に解説していくぞ!ダイエット中の俺と一緒に、この素晴らしいオープンソースHR・給与計算ソフトウェアの魅力に迫ってみよう!


【エンジニア向け】Nextcloud導入の極意:データの主権を取り戻す方法

まず、コントに入る前に、Nextcloudが一体何なのか、そしてなぜソフトウェアエンジニアにとって重要なのかを簡単に解説します。Nextcloudは、一言で言えば「自分でホストできるプライベートクラウドストレージ」です。DropboxやGoogle Driveといったサービスと機能は似ていますが、決定的に違うのは、データがあなたの管理下にあるサーバーに置かれるという点です。


ラーメン屋の親父が語る!Pythonだけで作るWebアプリ「Reflex」

なんだか、小難しい顔してパソコンいじってるな。WebアプリをPythonだけで作ろうとしてるのかい? え? 難しくてなかなか前に進めない、だと?ったく、最近の若いもんは、すぐ諦めるからいけねぇ。だが安心しな。俺がとっておきの秘策を教えてやる。


Rust製ゲームエンジン「Bevy」入門:シンプルなレシピで始めるゲーム開発

Bevyは、Rustという銘柄の最高級スピリッツを使って作られた、とびきりシンプルで爽やかなゲームエンジンです。普通のゲームエンジンは、いろいろな素材が混ざり合って、ちょっと複雑で重たいカクテルになりがちですが、Bevyはまるでジンとトニックのように、シンプルだけど奥深い味わいが特徴です。


【エンジニア必見】Cinnamon/kotaemonでドキュメント管理を自動化する魔法

Cinnamon/kotaemonは、オープンソースのRAG(Retrieval-Augmented Generation)ベースのツールで、自分のドキュメントとチャットできる優れものなんだ。簡単に言うと、大量のドキュメントの中から関連情報を探し出して、それを基にAIが回答を生成してくれる仕組みだよ。


既存スタックを活かす!ソフトウェアエンジニアが知るべきPlayCanvas Engineの魅力と実践

PlayCanvas Engineは、一言で言えば「ウェブベースのパワフルなグラフィックスランタイム」です。WebGL、WebGPU、WebXRといった最新のウェブ技術を駆使して、ブラウザ上で高性能な3Dコンテンツやゲームを実現するための心臓部となるライブラリです。


名探偵の技術解析:巨大リポジトリ「mdn/content」を解析してWeb標準のプロになる

おっと、失礼。名探偵の助手くん、君もこの『mdn/content』という謎に包まれたリポジトリの正体が気になりますか?世界中のエンジニアが毎日お世話になっている「MDN Web Docs」の心臓部。これをエンジニアが「読み物」としてではなく「ツール」として使いこなすとどうなるか……。私の推理を聞いていただけますか?


サヨナラ属人化!Markdown対応知識ベースで爆速開発チームへ変貌

「うおおおお!またこのバグ!?」「え、この仕様どこに書いてあるの…?」「前に誰か解決してた気がするんだけどな…」皆さん、よくある光景ですよね?炎上プロジェクトでは、情報が散乱し、ナレッジが共有されず、同じような問題に何度もぶつかることが日常茶飯事です。そんなカオスを打開し、チームを救う切り札となるのが、今回ご紹介する「爆速知識ベース」です!


「bobeff/open-source-games」は宝の山!現場で役立つゲームループと状態管理の設計図

この「bobeff/open-source-games」は、単なるゲームのリストではありません。ソフトウェアエンジニアにとっては、知識と技術を磨くための「オープンソース・ゲームの宝庫」なんです!高品質なコードベース 実際に動いているゲームのコードは、設計パターン、アルゴリズム、データ構造がどのように適用されているかの生きた教材です。


より良いNode.js開発のために:nodebestpracticesを読み解く

Node. js開発の「ゴールドスタンダード」とも言える、goldbergyoni/nodebestpracticesという素晴らしいガイドについて、ソフトウェアエンジニアの視点から、キャンプ場の設営になぞらえて、分かりやすくご説明しますね。