# Shogo Toyoshima Portfolio > Shogo Toyoshima (Product Engineer / Designer) のポートフォリオ。Cloudflare スタックで個人プロダクトを出荷している26歳。プロジェクト事例 (個人プロダクト・業務改善・デザイン)、ブログ、プロフィールを含む。各ページは末尾に .md を付けることで生のMarkdownとして取得できます。 ## Works - [AIChatClip](https://toyoshima.work/works/aichatclip.md): ChatGPT / Claude / Gemini / Grok の回答を、ワンクリックで Obsidian / Notion / Webhook に投げ込む個人開発の SaaS。企画から実装、ストア審査、運用、マーケまで一人でやっています。 - [ロゴ・ビジュアルアイデンティティ](https://toyoshima.work/works/aichatclip/logo.md): なぜこのロゴにしたのか — 見栄えより先に「各AIチャットのアイコン列に並んで浮かないこと」を最優先に設計したから。 - [技術構成と設計判断](https://toyoshima.work/works/aichatclip/architecture.md): なぜ全部 Cloudflare に乗せたのか — 変動費ほぼ0円・運用負荷最小で、一人でも長く回し続けられる形にするため。 - [運用と改善](https://toyoshima.work/works/aichatclip/ops.md): リリース後、何を根拠に直したのか — 「完了」の定義をユーザーの実態に合わせ直したら、登録後の離脱が目に見えて減った。 - [こだいらつながりフェス](https://toyoshima.work/works/kodaira-tsunagari-fes.md): 小平市の地域包括支援センターが企画したイベントのパンフレット裏面マップ制作。小平市内に分散する60〜70団体の会場情報を1枚の地図にまとめた。 - [Figma で入稿データを作る判断](https://toyoshima.work/works/kodaira-tsunagari-fes/tool.md): なぜ入稿データを Illustrator ではなく Figma で作ったのか — 参加団体数が最後まで動く前提で、行数・列数の変更にオートレイアウトで耐える必要があったから。 - [60団体を1枚に収める情報設計](https://toyoshima.work/works/kodaira-tsunagari-fes/map.md): A4 4枚に60〜70団体を、説明なしで迷わず読ませるには — マテリアルデザインを型に、地図のピン番号と説明カードの一致を最優先ヒエラルキーに固定し、色を「地域の識別」に転用した。 - [原稿量とクライアントワーク](https://toyoshima.work/works/kodaira-tsunagari-fes/process.md): デザインのクオリティを左右したのは何だったか — 団体から集まる原稿の文章量。60〜70団体を1枚に収めるには、クライアントに削減を交渉するコミュニケーションが不可欠だった。 - [Swept](https://toyoshima.work/works/swept.md): 前半1年はユーザーインタビューをひたすら回して撤退、後半1年はロゴ / 名刺 / Web を設計から実装まで一気通貫で担当しました。 - [リーンスタートアップを手で回した1年](https://toyoshima.work/works/swept/research.md): 仮説検証を、どこまで自分たちの手でやり切ったか — ペルソナ・エンパシーマップ・カスタマージャーニー・リーンキャンバスを Figma で自作し、通算100人超のインタビューにかけた。旅行テーマは撤退したが、その判断に迷いはなかった。 - [ロゴ・名刺・ブランド](https://toyoshima.work/works/swept/logo.md): なぜ卵をモチーフに選んだのか — 愛着だけでなく、チームの性質や将来のビジョンまで抱え込める「抽象度の高いモチーフ」が卵だったから。 - [コーポレートサイト](https://toyoshima.work/works/swept/web.md): なぜ Astro で作ったのか — 情報要件自体はシンプルなのでフレームワークは最小構成にし、その軽い土台の上にブランド表現として 3D を乗せる、という組み方が Astro + Cloudflare に一番きれいに収まったから。 - [小平ウォーキングでゴミ拾いの会](https://toyoshima.work/works/kodaira-walking-gomihiroi.md): ゴミ拾いを競技化する小平市の地域団体のロゴ制作。7種類のゴミアイコンでスニーカーを象り、ロゴガイドラインまで納品しました。 - [参考書を片手に、初めての外部案件](https://toyoshima.work/works/kodaira-walking-gomihiroi/approach.md): なぜ最初の実績をコンペではなく地域団体への無料提案で作ったのか — 『ロゴデザインラブ』の「コンペはクライアントとの対話が抜ける。地域の団体に提案せよ」を、そのまま現場で試したから。 - [7つのゴミでスニーカーを組む](https://toyoshima.work/works/kodaira-walking-gomihiroi/logo.md): なぜ「分かりやすく説明的」なロゴに振り切ったのか — 認知度が高くなく年1回のイベントだから、日常的に記憶させるより「見れば何の団体かわかる」を優先した。 ## Blog - [AIで音楽が作れる時代でも、結局僕は作らなかった話](https://toyoshima.work/blog/ai-doesnt-make-me-want-things.md): 転職活動のカジュアル面談で何度も聞かれる『AI時代のキャリア』の話。答えを重ねているうちに、AIがあってもなくても興味のないことはやらない、という当たり前だけど大事な事実に行き着きました。 - [ブログのサムネイルをAIで自動生成できるようにしたら、ノイズとの戦いになった話](https://toyoshima.work/blog/ai-thumbnail-generation-noise-fight.md): サムネイル画像をClaude Codeのスキルとして自動化してみたら、モデル選びより「生成AI特有のノイズ」の方がずっと厄介だった。二段階でAIに通すことで一応の決着がついた話。 - [全然使われなかった社内ツールを作って、人の仕事を奪う怖さを知った話](https://toyoshima.work/blog/internal-tools-that-get-used.md): 先輩の売上管理表を作り直したら誰にも使われず、単純作業を自動化したツールはめちゃくちゃ感謝された。同じ「便利にする」でも受け入れられ方が全然違った話。 - [どうせ誰もちゃんと読まないだろうな、と思いながらllms.txtを置いた話](https://toyoshima.work/blog/llms-txt-for-busy-recruiters.md): 忙しい採用担当者はきっとサイトを熟読しない。だったらAIに読ませればいい、と思ってllms.txtとMarkdown版を用意した話です。 - [熱38℃でAtCoderデビューしてから、3ヶ月経ちました](https://toyoshima.work/blog/atcoder-continued-fever-debut.md): 夏風邪で高熱を出しながら初参加したAtCoder、あれから毎週土曜続いてます。5回目でついにD問題が解けた話。 - [ポートフォリオサイトが進捗80%で止まってたのに、名刺は1日で終わった話](https://toyoshima.work/blog/business-card-before-website.md): サイト制作がずっと停滞していたので気分転換に名刺デザインを作ってみたら1日で完成。順番を間違えたなと後から気づいた話です。 - [「所詮チャットGPTとおしゃべりしてるだけやん」に何も言い返せなかった](https://toyoshima.work/blog/competitive-programming-vibe-coding-native.md): vibe codingネイティブとしてコーディングとほぼ無縁に過ごしてきた自分が、競技プログラミングを始めた理由。コンプレックスと、Rustと、AtCoder。 - [OOUIの本を読んでいたのに、使いにくいUIに気づけなかった話](https://toyoshima.work/blog/ooui-blind-spot.md): バイト先の基幹システム刷新で目撃した、「慣れ」がいかに認知を歪めるか。 - [「とりあえず出す」ができるようになったのは前職のおかげだなと思った話](https://toyoshima.work/blog/just-ship-it.md): 納得いくまで出せないタイプだった自分が、Web制作会社で「まず出す」を叩き込まれた。このサイトも全然納得いってない部分があるけど、出してます、という話。 - [IT用語を聞かれると早口オタクになってしまう癖、いい加減直したい](https://toyoshima.work/blog/it-hayakuchi-otaku.md): 「Dockerなんで入れるんですか?」と聞かれてPythonのバージョン管理の話まで始めてしまった自戒の話。 - [認証を自前で実装した後にCloudflare Zero Trustの存在を知った話](https://toyoshima.work/blog/cloudflare-zero-trust-too-late.md): 社内ツールにGoogle OAuth認証をコードベースで実装し終えてから、Cloudflare Zero Trustを使えばよかったと気づいた話。 - [Claude Codeにクソみたいなhookを書かせて、個人開発のバカデカいコミット問題をなんとかしている話](https://toyoshima.work/blog/claude-code-hook-commit.md): 個人開発で巨大コミットが量産されがちな問題を、Claude Codeのstop hookで力技解決している話。 - [jQueryが現役のWeb制作チームにAstroを導入したら、割とハマった話](https://toyoshima.work/blog/astro-for-legacy-team.md): フレームワーク未使用・jQuery現役のチームに自分がAstroを提案して通った話。なぜAstroだったのか、なぜNext.jsじゃなかったのか。 - [ベンダーロックインを避けるためにCloudflareを選んだら、Cloudflareにベンダーロックインされていた](https://toyoshima.work/blog/cloudflare-vendor-lockin.md): コードは別にどこでも動く。でもCloudflare以外を選ぶ気がしない。これベンダーロックインじゃないのか、という話。 - [「いい感じにして」で全然いい感じじゃないものが来てから気づいたこと](https://toyoshima.work/blog/vibe-coding-and-designer.md): トップページをAIにお任せしたら、思ってたのと全然違うものが上がってきた。そこから自分とAIの関係と、デザイナーってなんだっけという話になった。 - [4回目のポートフォリオを作りながら、ずっと自分じゃない誰かのことを書いていた話](https://toyoshima.work/blog/why-i-built-this-site.md): 就活のためにサイトを作り直したはずが、完成したのは自分が見ていられないサイトだった。4度目にしてやっと「これでいいか」と思えた話。 ## Pages - [Shogo Toyoshima Portfolio](https://toyoshima.work/index.md): Product Engineer / Designer. Cloudflare スタックで個人プロダクトを出荷している26歳。 - [About](https://toyoshima.work/about.md): 1999年生まれ、埼玉県出身。Cloudflare が好きで、個人プロダクトを作っています。 - [Contact](https://toyoshima.work/contact.md): 気軽な連絡フォーム。記事の感想や表示崩れの報告も歓迎。 - [System Guide](https://toyoshima.work/system.md): ポートフォリオサイトのデザインシステムガイド (v4.0.0)。 - [Works](https://toyoshima.work/works.md): Works 一覧ページ。デザイン・エンジニアリング案件のケーススタディ集。 - [Blog](https://toyoshima.work/blog.md): 開発・思考の記録 (System Logs)。 ## Optional - [Full content](https://toyoshima.work/llms-full.txt): 全ページの生Markdownを1ファイルに連結したもの - [RSS feed](https://toyoshima.work/rss.xml): プロジェクト・ブログ更新の購読用フィード