分散型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




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

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


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

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


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

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


君のアプリにヨッシーを。CopilotKitが拓く新しいユーザー体験

昔々、遥か遠いキノコ王国(あなたのWebアプリケーション)に、可愛らしいピーチ姫(ユーザー)が住んでいました。しかし、ある日、宿敵クッパ(ユーザーの複雑な操作や課題)にピーチ姫がさらわれてしまいました。 マリオ(あなた)はピーチ姫を救うため、冒険に出ます。その冒険の道のりは長く険しいもので、ただジャンプ(コードを書く)するだけでは、すべての敵を倒し、すべての謎を解くことはできません。


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

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


【エンジニア必携】AIコードアシスタントを「一元管理」!cc-switchで開発フローを劇的に効率化

コントのようなやり取りで解説するのは少し難しいですが、「farion1231/cc-switch」というツールの、ソフトウェアエンジニアにとっての価値、導入方法、そしてサンプルコードの考え方を、コンビニ店員と常連のお客さんのようなフレンドリーな会話調で、分かりやすく丁寧にお伝えしますね!


freeCodeCamp:あなたのキャリアを変える無料プログラミング学習の決定版!

突然ですが、あなたはこんな風に思っていませんか?「プログラミングを学びたいけど、何から始めたらいいか分からない…」 「スキルアップしたいけど、お金がかかるのはちょっと…」 「実戦で使えるコードを書きたいけど、どこで経験を積めばいいの?」もし、一つでも当てはまるなら、今日の放送はあなたのためにあります!


ウェブの無駄を斬る!uBlock Originで快適開発環境を構築する親父の教え

よし、坊主、この頑固親父が、ソフトウェアエンジニアのお前さんに、この「uBlock Origin」ってやつがどう役に立つのか、そしてどうやって俺の秘伝のタレみたいに使いこなすか、とことん教えてやるよ!耳かっぽじってよく聞け!「uBlock Origin」?ああ、一言で言えば「ウェブの無駄をぶった切る、最高の包丁」ってとこだな!


面倒なSNS投稿はコードで解決。Postizを使って開発に集中できる環境を手に入れよう

今日は「SNSの投稿管理が面倒で、開発に集中できない」…そんなお悩みにぴったりの「Postiz」という一杯(ツール)をご用意しました。これ、ただの予約投稿ツールじゃないんです。中身は TypeScript と Redis で構成された、フルスタックなオープンソース界の期待の新星ですよ。


Motiaの魔法の杖で開発の悩みを解決!API、ワークフロー、AIを統合する現代のバックエンドフレームワーク

今回は、すごい魔法アイテムを紹介するよ!その名も「MotiaDev/motia」!まるで、魔法少女の変身アイテムみたいに、あなたの開発を華やかに彩ってくれる、素敵な魔法の杖なんだ。昔々、あるところに、たくさんの魔法使いが住んでいました。彼らは、それぞれ得意な魔法を持っていました。