フリーランスとして働く人のための、手元で動く小さな道具箱。
よろずやは、フリーランスの仕事のまわりにある細かな作業を片づけるためのアプリです。いくつかの機能をひとつのアプリにまとめていて、機能はこれから順に増やしていきます。
- 手元だけで動く — データはパソコンの中の SQLite ファイルに保存されます。クラウドやアカウントは要りません。
- 印刷できる — 画面で見たままの A4 レイアウトで、印刷や PDF 保存ができます。
- macOS アプリにできる — ビルドすると
.appになり、Dock から起動できます。
| 機能 | できること |
|---|---|
| スキルシート | プロフィール・保有技術・職務経歴を入力し、書類選考で読みやすい A4 レイアウトでプレビューします。1 ページ目に人物・基本情報・強み(ハイライトと主要スキル)をまとめ、経験年数の自動計算、項目ごとの表示切り替え、印刷・PDF 保存、JSON の書き出し・読み込みに対応しています。手元のスキルシートから読み込み用の JSON を生成 AI に作ってもらうプロンプトも作れます。 |
起動するとトップページ(/)が開き、そこから各機能に移動できます。
製品の紹介は https://tkc310.github.io/yorozuya/、画面の部品は Storybook で見られます。
Releases から、お使いの Mac に合う zip をダウンロードします。
| Mac | ファイル |
|---|---|
| Apple シリコン(M1 以降) | Yorozuya-vX.Y.Z-macos-arm64.zip |
| Intel | Yorozuya-vX.Y.Z-macos-x64.zip |
展開した Yorozuya.app をアプリケーションフォルダに移して起動します。アプリは公証していないため、初回は Finder で右クリックして「開く」を選んでください。
.tool-versions に書かれたバージョンを使います。
- Node.js 24
- pnpm 10
- Bun 1.4
- make(macOS には標準で入っています)
mise か asdf を使っているなら、次のコマンドでまとめて入ります。
mise install # または asdf installgit clone https://github.com/tkc310/yorozuya.git
cd yorozuya
make install
make devhttp://127.0.0.1:46280 を開きます。初回起動時に data/yorozuya.db が作られ、見本のデータが入ります。
make build-appdist/Yorozuya.app ができます。起動するとサーバが裏で立ち上がり、ブラウザで http://127.0.0.1:4628 が開きます。Dock から終了するとサーバも止まります。
| 起動方法 | 保存先 |
|---|---|
make dev |
data/yorozuya.db |
| macOS アプリ | ~/Library/Application Support/Yorozuya/data/yorozuya.db |
データは外部に送られません。バックアップを取るには、このファイルを複製するか、スキルシートの「JSONを書き出す」を使ってください。data/yorozuya.db はコミットしないでください。
コマンドは make で実行します。make(または make help)で一覧が出ます。中身は package.json のスクリプトや pnpm exec を呼ぶだけなので、pnpm で直接実行してもかまいません。追加の引数は ARGS で渡します(例: make site-build ARGS=--skip-capture)。
| コマンド | 内容 |
|---|---|
make install |
依存パッケージを入れる |
make dev |
開発サーバを起動する |
make build-app |
macOS アプリを作る |
make storybook |
Storybook を起動する(http://127.0.0.1:6006) |
make prepare |
Panda CSS のスタイルを生成し、Git フックを入れる |
make browsers |
e2e と撮影に使う Playwright の Chromium を入れる |
make db-generate |
スキーマの変更からマイグレーションを生成する |
make release-version |
版を上げる Pull Request を作る(ARGS=patch / minor / major) |
make release-tag |
マージ後の main にタグを付けて公開する |
make branch-prune |
マージ済みのブランチを一覧する(ARGS=--apply で消す) |
make check |
型検査・静的検査・フォーマット検査・テストをまとめて実行する |
make test |
ユニットテストと Storybook の play を実行する |
make test-e2e |
Playwright で e2e テストを実行する |
make typecheck |
型を検査する |
make lint |
静的検査と境界検査を実行する |
make lint-boundary |
import の境界とデータベース操作の場所を検査する |
make fmt |
フォーマットを検査する |
make fmt-fix |
フォーマットを直す |
make site-build |
GitHub Pages の LP と Storybook を .site/ に組み立てる |
make site-preview |
組み立てた .site/ を手元で確かめる |
make brand-images |
ロゴから README のバナーと OGP 画像を作り直す |
make site-publish |
.site/ を GitHub Pages(gh-pages)に公開する |
git push の前に、lefthook が typecheck・lint・fmt を実行します。
.
├── shared/features/ # 画面とサーバで共有する純粋な計算(React や DB に依存しない)
├── src/
│ ├── routes/ # TanStack Router のファイルベースルーティング
│ ├── components/
│ │ ├── ui/ # どの画面でも使う共通部品
│ │ ├── layouts/ # 全画面に共通する枠(ヘッダー、パンくずリスト)
│ │ └── features/ # 1 ページ分の機能(Home、SkillSheet)
│ ├── server/
│ │ ├── features/ # サーバ関数(queries と commands)とリポジトリ
│ │ └── lib/db.ts # データベースを開く唯一の場所
│ ├── db/ # スキーマ、マイグレーション、見本データ
│ └── styles/ # デザイントークン
├── tests/ # e2e テスト
└── scripts/app/ # macOS アプリのビルドと起動
コンポーネントの置き方は src/components/COMPONENT_STRUCTURE.md にまとめています。
次のルールは make lint-boundary で機械的に検査します。詳しくは rules/security.md を参照してください。
- データベースはローカルファイルだけです。ホストされたデータベースや公開 HTTP API は置きません。
- 画面はサーバ関数を直接 import します。
src/dbの import とfetchの呼び出しはしません。 - 書き込み(
insert/update/delete)は、リポジトリと見本データの投入にしか書けません。 - 機能(
src/components/features/*)同士は import しません。 - 想定内の失敗は例外にせず、neverthrow の
Resultで返します。
| 分類 | 使っているもの |
|---|---|
| フレームワーク | TanStack Start / React 19 |
| 言語 | TypeScript |
| スタイル / UI | Panda CSS / Ark UI。トークンはデジタル庁デザインシステムに合わせています |
| フォーム | TanStack Form |
| データ取得 | TanStack Query / サーバ関数(createServerFn) |
| バリデーション | Valibot |
| エラー | neverthrow |
| データベース | bun:sqlite / Drizzle ORM |
| ビルド | Vite+ |
| 検査 | Oxlint / ESLint / Oxfmt |
| テスト | Vitest / React Testing Library / Storybook / Playwright |
| 配布 | Bun のシングルバイナリと AppleScript による macOS アプリ |
Issue や Pull Request を歓迎します。開発の流れ、テスト、リリースの手順は CONTRIBUTING.md を参照してください。改善の進め方(バックログ・改善ログ・設計判断の記録)は docs/ にまとめています。
MIT © tkc310
デザイントークンの値は @digital-go-jp/design-tokens(MIT License, Copyright (c) 2023 デジタル庁)に合わせています。