ソフトウェア開発者のための OSS、まとめてみました!

ソフトウェア開発を行なっている自分が、個人的に面白いと思ったプログラムの最新技術や、オープンソースソフトウェア(OSS)をまとめています!

MENU

Node.js JavaScript 公式 Web サイトのソースコードを読んで Next.js について学ぼう!「nodejs.org」

概要

皆さまは Web アプリや Web サイトを作成する際は何の言語のどういったフレームワークを使用していますでしょうか?

私はもっぱらプログラミング言語としては JavaScript/TypeScript を使用しており、フレームワークとしては React.js/Next.js を採用して開発などを進めています。

developer.mozilla.org

www.typescriptlang.org

ja.legacy.reactjs.org

nextjs.org

React.js や Next.js といったフレームワークは非常に強力で Web アプリを簡単に作ることができる一方、できることが多くて毎日勉強の日々です。

そんな中、Node.js の JavaScript 公式 Web サイトのソースコードGitHub 上に上がっており、しかも Next.js で作成されているということがわかりましたので、今回はそのリポジトリについて簡単にご紹介したいと思います。

今回ご紹介する OSS は、Node.js JavaScript 公式 Web サイトのソースコードを読んで Next.js をさらに理解できるかもしれない「nodejs.org」になります。

Next.js を普段から利用している方にとっては、とてもよいサンプルになるのではないでしょうか?

それでは早速詳細についてみていきましょう!

目次

特徴

nodejs.org」ページの特徴としては、以下の点が挙げられます。

  • TypeScript を採用した Web ページ
  • SCSS/TailwindCSS を採用したデザイン
  • MDXv2 を採用
  • Next.js を使用して Web ページを構築

利用手順

利用方法としては、公式サイトに直接アクセスすることで Next.js で作成された Web ページを参照することが可能です。

nodejs.org

ただ、今回はソースコードを把握することが一番の目的であるため、ローカル環境にクローンして実際に動かしてみる以下の方法をお勧めします。

git clone https://github.com/nodejs/nodejs.org.git
cd nodejs.org
npm ci
npx turbo serve

ローカルサーバーが起動した後は http://localhost:3000/ にアクセスすることで Web ページを参照することが可能です。

使用感

早速私自身も「nodejs.org」を自分の環境下にクローンしてみてソースコードを見てみました。

ソースコードは Next.js で書かれているということなので、Next.js に知見のある方にとってはなじみの深いディレクトリ構成になっていると思います。

package.json を見るとあたりまえですが lintprettierstorybookjest などもきちんと定義されているため、さすが Node.js 公式サイトの Web ページだなと改めて思いました。

eslint.org

prettier.io

storybook.js.org

jestjs.io

こちらのソースコードを眺めるだけでも Next.js や TypeScript を使用したプロジェクトの構築について非常に学ぶことが多いため、とても勉強になりますね。

まとめ

今回は、Node.js JavaScript 公式 Web サイトのソースコードを読んで Next.js をさらに理解を深めるのにとても勉強になる「nodejs.org」についてご紹介しました。

Next.js を触って知見のある方にとってはとても勉強になるリポジトリではないでしょうか?

自分自身もこちらのリポジトリを見ながら、再度 Next.js の機能の再確認やディレクトリ構成、ソースコードの記述の仕方などを勉強していきたいと思いました!

こちらのリポジトリを眺めるだけでも非常に勉強になると思いますので、Next.js を勉強中の方などはぜひ一度こちらの「nodejs.org」を見てみてはいかがでしょうか?

ライセンス

MIT License

リンク

github.com

nodejs.org

Heroku、Netlify、Vercel などに代わる自己ホスト可能なOSS「Coolify」

概要

Web アプリやスマートフォンアプリ、ブラウザゲームなどを個人開発した後、デプロイ先はどこにしていますでしょうか?

私はよく GoogleGCP)を使っていたり、Next.js で Web ページなどを作成しているので Netlify などにあげ、基本的に利用料が無料になるようにしています。

個人開発となるとなるべく金額を抑えたいので、できるだけ無料のサービス、もしくは仕方がない場合は金額が低く収まるようにデプロイ先を決めたりしています。

最近では Heroku の無料枠がなくなったことで、デプロイ先をどこにしようか迷っている方も多くいるのではないでしょうか?

そんな中、自己ホスト可能で Web アプリなどをデプロイすることが容易な OSS について見つけましたので、今回はこちらについてご紹介したいと思います。

今回ご紹介する OSS は、Heroku や Netlify、Vercel など人気のあるデプロイ先に代わる自己ホスト可能な「Coolify」になります。

それでは早速こちらの「Coolify」についてみていきましょう!

目次

特徴

Coolify」の大きな特徴としては以下の点が挙げられていました。

  • 多くのプログラミング言語に互換性がある
  • 独自のサーバーでも任意のサーバーでもデプロイ可能
  • 要件に応じて単一サーバーから複数サーバーまでデプロイ可能
  • 無料の SSL 証明書を保持
  • ベンダーのロックインなどはなく、自身でデータ管理可能
  • Webhook などカスタム統合機能を保持
  • 監視機能・通知機能が豊富

その他にも特徴が多くみられますので、詳細を把握したい場合は公式ドキュメントを参照ください。

coolify.io

利用手順

Coolify」を自己ホストとして利用したい場合は、以下コマンドを入力することで利用可能です。

curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

使用感

今回は自分のほうではインストールはしていませんが、「Coolify」を使用してみた方の記事や説明書き、採用に至ったかどうかの記事などが以下のようにまとめられていました。

zenn.dev

takulog.dev

こちらの記事を確認すると、以下の点が言及されていました。

  • 良い点
    • セルフホスト型で管理用の UI あり
    • CapRover 程ではないものの、ワンクリックアプリがあり簡単にデプロイが可能
    • Nixpacks を使用できるので、対応アプリであれば簡単にデプロイ可能
    • ポートマッピングが管理パネルから簡単に可能
  • 微妙な点
    • 定義ファイルのボリュームに相対パスが使用不可
    • 細かいところに不具合があり
    • 他プロダクトと比較してマイナー

まだまだ駆け出しの OSS ということで至らない部分も多そうということですが、大変注目を浴びている OSS でもありますので、今後の開発に期待したいと思います!

まとめ

今回は、Heroku や Netlify、Vercel など人気のあるデプロイ先に代わる自己ホスト可能な OSSCoolify」について簡単にご紹介しました。

様々なデプロイ先がインターネット上には多くあるのですが、自分の環境下で Web アプリなどをホスティングして自分のサービスとして確立していくのもの、個人開発の楽しみの一つでもあるかもしれませんね。

インターネット上でも作成した Web アプリをデプロイして公開してもよいですが、料金が気になってしまう方や、せっかく個人開発で作成した Web アプリだから自分の環境下にホスティングしてみたいという方は、ぜひ一度こちらの「Coolify」を試してみてはいかがでしょうか。

ライセンス

Apache License 2.0

リンク

github.com

coolify.io

coolify.io

ポケモンバトルをひたすらに行えるブラウザベースゲーム!「PokeRoGue」

概要

今回は、ポケモンバトルをひたすらに行えるブラウザベースのポケモンファンが作成したゲーム「PokeRoGue」になります。

PokeRoGue」では様々な野生ポケモンと戦いつつ、トレーナーやボスとも戦いながら、ひたすらにポケモンバトルを楽しむというゲームになっております。

それでは早速詳細についてみていきましょう!

目次

特徴

大きな特徴としては、ポケモンの BGM やゲームグラフィック、効果音、背景、UI、ゲームロゴ、アニメーションが公式のものを利用しており、ゲームボーイ版(3DS 時代)のポケモンバトルをまるで公式のポケモンゲームのように遊ぶことができる点です。

利用手順

PokeRoGue」を実際に使用するには、以下の公式サイトにアクセスするか、ローカル環境にクローンして動作させます。

公式サイト

pokerogue.net

ローカル起動手順

前提として、Node.js v18.3.0 が必要となります。

以下コマンドを実行し、localhost:8000 にアクセスすることで、実際に動かすことができます!

git clone https://github.com/pagefaultgames/pokerogue.git
cd pokerogue
npm install
npm run start:dev

使用感

早速私のほうでもこちらの「PokeRoGue」を触ってみました。

上記の動画のように、ゲームボーイ時代のポケモンではありますが実際にポケモンバトルを楽しむことができます!

最初にゲームをプレイするときは各世代の御三家からポケモンを選択することができ、途中でモンスターボールも手に入るので、野生ポケモンを捕まえて手持ちにすることもできます!

本当にポケモンバトルをブラウザ上で楽しむことができるので、気になった方は試してみてください!

まとめ

今回は、ポケモンバトルをひたすらに行えるブラウザベースのポケモンファンが作成したゲーム「PokeRoGue」の OSS についてご紹介しました。

ポケモン好きでポケモンバトルをしたい!という方にとっては最高の OSS になると思います!

ポケモン好きな方もそうでない方も、ぜひ一度こちらの「PokeRoGue」に触れてみてはいかがでしょうか!

ライセンス

GNU Affero General Public License v3.0

リンク

github.com

pokerogue.net

UI コンポーネントを簡単に素早く作成したいなら!「OpenUI」

概要

Web アプリを作成していく中で大変な作業として、UI コンポーネントの構築や整備があると思います。

CSS やデザイン、細かい挙動などを整備していくと本当にきりがないですよね。

そんな UI コンポーネントの構築を AI プロンプトの力を借りて素早くお香ことができる OSS がありましたので今回はこちらについてご紹介したいと思います。

今回ご紹介する OSS は、UI コンポーネントの構築プロセスを楽しく、早く、そして柔軟に行うことができる「OpenUI」になります。

こちらの「OpenUI」を使用することで、これまで大変だったフロントエンドサイドのデザイン構築をとても簡単に行うことができます。

それでは早速詳細についてみていきましょう!

目次

特徴

OpenUI」の大きな特徴としてはやはりチャット形式で UI の構築を行うことができるところかと思います。

基本は英語だけですが、簡単な英語でもそれなりの UI コンポーネントを構築することができます!

利用手順

デモ版

デモ版を利用したい場合は、以下のデモサイトを参照することで利用可能です。

openui.fly.dev

ローカル環境起動(Python

ローカル環境に資材をクローンして利用することが可能です。

以下のコマンドを入力してください(Python が必要になりますので、まだの方は Python をインストールしてきましょう)。

www.python.org

git clone https://github.com/wandb/openui
cd openui/backend
pip install .
export OPENAI_API_KEY=xxx
python -m openui

起動後は http://localhost:7878/ にアクセスすることで、「OpenUI」を利用することが可能です。

ローカル環境起動(Docker Compose)

Docker Compose を利用する場合は、資材をクローンした後、以下コマンドを入力することで利用可能です。

docker-compose up -d
docker exec -it openui-ollama-1 ollama pull llava

起動後は http://localhost:7878/ にアクセスすることで、「OpenUI」を利用することが可能です。

ローカル環境起動(Docker)

Docker を利用して動作させたい場合は /backend ディレクトリから docker ファイルを手動で構築して起動することができます。

docker build . -t wandb/openui --load
docker run -p 7878:7878 -e OPENAI_API_KEY wandb/openui

起動後は http://localhost:7878/ にアクセスすることで、「OpenUI」を利用することが可能です。

使用感

早速自分のほうでも「OpenUI」を使って UI コンポーネントを作成してみました。

試しに「コールセンター向けのダッシュボード画面を作成して!」と入力してみたところ、以下の画面が数秒で作成されました!

上記の画面に対して「背景色を赤色にして!」とプロンプトで入力したところ、以下のような画面が表示されました!

こんな感じで簡単に UI を構築することができました!

今回は簡単なことしか記載していませんが、もっと複雑な指示を出すことでより魅力的な UI を構築することができると思いますので、ぜひ使いこなしてみてください。

まとめ

今回は、UI コンポーネントの構築プロセスを楽しく、早く、そして柔軟に行うことができる「OpenUI」という OSS についてご紹介しました。

ChatGPT が最近とても流行っており、プロンプトで UI 資材を構築することができる時代になりました!

こちらを使用することでこれまで時間のかかっていたフロンエンド側の構築が簡単に素早く行えるため、気になった方はぜひ一度、こちらの OSSOpenUI」を使ってみてはいかがでしょうか?

ライセンス

Apache License 2.0

リンク

github.com

openui.fly.dev

Windows を Docker 上に配備して利用可能な OSS!「Windows」

概要

皆様はパソコンの OS は普段何をメインで使用されていますでしょうか?

私は普段 Windows を利用しており、本日も Windows 11 を利用しています。

ただ、私事になるのですが最近 macOS のパソコンも購入しており、これまで Mac でしか触れなかったアプリなどが触れるようになってきました!

外出するときなどは macOS などを持ち運んで作業などをしているのですが、逆に Mac だと Windows 専用のアプリなどが触れない状況があり、困る時があります。

そんな中、OSSWindows サービスを無料で利用することができるものがあったので、今回こちらについてご紹介したいと思います。

今回ご紹介する OSS は、Docker コンテナ上に Windows を配備して利用することができる「Windows」になります。

名前はそのままですが、実際に Windows の機能を触ることができます!

それでは早速詳細についてみていきましょう!

目次

特徴

特徴はやはり、Docker のコンテナ上に、Windows 環境を構築して実際に動かすことができる点にあります!

現時点では以下の Windows 環境をコンテナ上にデプロイすることが可能ということです。

利用手順

前提条件

Docker をインストールしておく必要があります。

まだの人は以下のサイトから Docker をインストールしておきましょう。

www.docker.com

利用方法

docker-compose.yml ファイルを作成し、以下の内容を記載します。

version: "3"
services:
  windows:
    image: dockurr/windows
    container_name: windows
    environment:
      VERSION: "win11"
    devices:
      - /dev/kvm
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    stop_grace_period: 2m
    restart: on-failure

その後、Docker CLI で以下コマンドを実行するだけで動作させることができます!

docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows

起動後は http://localhost:8006/ にアクセスすることで、Docker 上で動いている Windows 環境にアクセスすることができます。

使用感

私のほうでも実際に今回の OSSWindows」を動かしてみました!

初めて Docker からイメージをダウンロードしてきて動かし始める際は時間がかかりましたが、動かした後はとてもサクサク動いていました。

私の場合、デフォルトの Windows をコンテナ上で動かしていたので、画像は Windows 11 のものになります。

通常の Window と同じようにスタートメニューやエクスプローラー、Edge などは普通に使用できました!

試しに Edge で YouTube を視聴してみました。

画面側はサクサク動いており、ネットワークも問題なく接続できていましたが、README にあるように、コンテナ上で動いているサーバーの音声などは聞くことはできません。

ただ、ネットサーフィンができるので、普通に Windows を使用する分には十分かと思います。

今回はさわりだけですが、ほかにもできることがたくさんあったり、オプション機能が充実していますので、興味がある方は README に目を通してみるのもよいかと思います。

まとめ

今回は、Docker コンテナ上に Windows を配備して利用することができる「Windows」という OSS をご紹介いたしました。

Docker 上に配備できるので、テスト環境として作成したり、サブ機として使用するのもよさそうですね。

macOS しか持っていない方にとっても、Docker 上で簡易的に Windows を触る分には問題ないかと思います。

気になった方は是非一度、こちらの OSS を触ってみてください!

ライセンス

MIT License

リンク

github.com

Robert C.Martin 氏が執筆した「Clean Code」を JavaScript 向けに適応した「clean-code-javascript」

概要

Robert C.Martin 氏が執筆した「Clean Code -アジャイルソフトウェア達人の技-」という本をご存じでしょうか?

https://www.amazon.co.jp/Clean-Code-%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%AB%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%81%94%E4%BA%BA%E3%81%AE%E6%8A%80-Robert-C-Martin/dp/4048930591www.amazon.co.jp

「Clean Code」は、洗練されたコード(Clean Code)を書くことが必要とされているプロのプログラマーにとっては必須の本として有名で、Clean Code を書くための原則・法則、パターン、実践例などが数多く収録されています。

ただ、内容がやや難しく Java 言語よりに記載がされているため、取っつきづらい部分もあるかと思います。

そんな中、「Clean Code」を JavaScript 言語に適応して紹介してくれている OSS があったので、今回はこちらについてご紹介したいと思います。

今回ご紹介する OSS は、Robert C.Martin 氏が執筆した「Clean Code -アジャイルソフトウェア達人の技-」を JavaScript 向けに適応した「clean-code-javascript」になります。

JavaScript を主に使用している方にとってはとても有益な OSS となるのではないでしょうか?

それでは早速詳細についてみていきましょう!

目次

特徴

clean-code-javascript」の特徴としては、以下の内容について JavaScript 向けに説明がされていることでしょうか。

  • 変数
  • 機能
  • オブジェクトとデータ構造
  • クラス
  • SOLID
  • テスト
  • 同時実行性
  • エラー処理
  • 書式設定
  • コメント

利用手順

clean-code-javascript」を利用するには、以下の GitHub ページの README ページを参照することで利用可能です。

github.com

使用感

早速私も「clean-code-javascript」について目を通してみました!

「変数」に関するところを見ると、以下の画像のように、変数宣言やメンタルマッピングに関する BAD/GOOD の記載がありました。

その他にも具体的な例とその良し悪しが記載されており、プログラマーなら常識と思われる内容があったり、そんなこともまで考慮する必要があるのか、などといった新しい発見などもありました。

自分自身もそれあたりまえだよ~という内容が多かった印象ですが、一部新たな発見などもあったので、今回を機に JavaScriptソースコードを書く際のあたりまえを見直してみようと思いました。

まとめ

今回は、Robert C.Martin 氏が執筆した「Clean Code -アジャイルソフトウェア達人の技-」を JavaScript 向けに適応した「clean-code-javascript」という OSS についてご紹介いたしました。

本来の「Clean Code -アジャイルソフトウェア達人の技-」はソースコード一般的な内容について書かれているため、なかなか取り組みにくい部分も多いかと思いますが、JavaScript 向けの「Clean Code」の本というようにジャンル分けされていれば、読みやすくなりますね!

JavaScript を使用して仕事をされている方や JavaScript についてよりもっと詳細に勉強してみたいという方にとってはこちらの OSSclean-code-javascript」はとても良いかもしれません!

気になった方は是非一度こちらの「clean-code-javascript」を参照してみてください!

ライセンス

MIT License

リンク

github.com

Next.js、TailwindCSS、TypeScript のボイラープレート!「SaaS-Boilerplate」

概要

みなさまは Web アプリを作成したことはありますでしょうか?

Web アプリを作成というと、最近では HTML、JavaScriptCSS を駆使して作成したものや、PHPRuby、Node.js などで作成される方多いかもしれません。

私自身、Node.js を使用して Web アプリを作成していますがその中でも React.js や Next.js を使用して Web アプリを使用しています。

ja.react.dev

nextjs.org

React.js や Next.js はとても便利ですが、初めて使用する方にとってはやや敷居が高いかもしれません。

そんな敷居を取り払い、Next.js で Web アプリや Web ページを作成するためのテンプレートを提供してくれる OSS を見つけましたので、今回はこちらについてご紹介いたします。

今回ご紹介する OSS は、Next.js 14 系以上、TailwindCSS 3.4系、TypeScript で構築されたボイラープレート「SaaS-Boilerplate」になります。

Next.js に地検がない方でも、こちらの「SaaS-Boilerplate」をまずは利用することで Next.js を使用することができます。

それでは早速詳細についてみていきましょう!

目次

特徴

SaaS-Boilerplate」の大きな特徴としては以下の点が挙げられていました。

  • AppRouter をサポートする Next.js を採用
  • TailwindCSS および Shadcn UI を採用
  • TypeScript および React.js 18 系を採用
  • 店員による認証機能を搭載(サインイン、サインアウト、サインアップ、パスワードリセットなど)
  • ESLint による Linter 機能を搭載
  • 多言語対応可能

その他、まだまだ数多くの特徴が挙げられていましたので、詳細は GitHub の README や公式ページを確認ください。

利用手順

利用手順としては、以下のコマンドを実行することで可能です(Node.js の事前インストールは必要)。

git clone --depth=1 https://github.com/ixartz/SaaS-Boilerplate.git my-project-name
cd my-project-name
npm install

その後、以下のコマンドでローカルサーバー上で動作確認することが可能です。

npm run dev

コマンド実行後、http://localhost:3000/ にアクセスすることで、Web アプリの実際の動作を確認することができます。

使用感

早速私もこちらの「SaaS-Boilerplate」を試してみました!

ローカル環境で動作させると上記の画像のような Web アプリが表示されており、動作も非常に軽快でかつデザインなども整理されており非常に見やすくきれいなものとなっておりました。

SaaS-Boilerplate」自体は、起動直後は企業の紹介トップページのデモ画面になっており、以下のように「特徴」ページや「料金」ページ、そして「FAQ」ページなどのサンプル画面が表示されております。

デザインなどはすでに完成されているので、中身のコンテンツ整備や言語対応などすればすぐにでも使用可能な感じでした!

まとめ

今回は、Next.js 14 系以上、TailwindCSS 3.4系、TypeScript で構築されたボイラープレート「SaaS-Boilerplate」という OSS についてご紹介いたしました。

Next.js を初めて使用する方にとって Web アプリや Web ページを作成することは簡単ではないと思いますが、こちらのボイラープレートを使用することで、簡単に作成することが可能になります。

ぜひ一度気になった方はこちら「SaaS-Boilerplate」を GitHub からクローンしてみて、利用してみてはいかがでしょうか?

ライセンス

MIT License

リンク

github.com

react-saas.com