ACCESSING DATABANKS...
システムを初期化しています...
[000%]
ACCESSING DATABANKS...
LIVE SITE · 非公開リポジトリ
next-intl が locale route と messages を担い、各 project はローカライズ済み MDX と文書化された英語 fallback を持つ。/api/chat は中立的な primary/fallback service routing、static portfolio data と深い MDX context、明示的な UI tools を使う。portfolio.read scope で保護する。next-intl がルート、messages、metadata、project MDX を扱い、存在しない項目は英語へフォールバックする。/api/chat に届き、static portfolio data と深い MDX context を受ける。streaming response は text や UI action を返し、対応 browser は任意で local voice を使える。成果: 速い方向付けと、背後の system を深く説明する読み物を両立した。
品質と検証: ESLint、TypeScript check、production build は再現可能な quality gate である。
セキュリティ controls: chat は signed temporary lockdown と rate boundary を、MCP は read-only scope と one-time authorization code を使う。
比較と進化: 以前の Portfolio: Glass から、ローカライズされた narrative と agent access を扱える modular portfolio へ進化した。
影響: creative frontend と、保守可能な content、integration、security、deployment の判断を同時に示す。
最初の画面でアイデンティティと内容を伝え、必要に応じて深い操作層へ進める。
Projects、Skills、Experience、Contact はアカウントなしで閲覧できる。
9 言語のルートで同じ情報階層を維持している。
Oz は検証済みの portfolio facts へ会話で案内する。
外部連携は必須条件ではなく、任意の拡張として扱う。
注目すべき詳細: CRT texture、glitch typography、Canvas、焦点化した 3D hero、music control、locale-aware content は、過剰な global state container なしに責務を分ける。
検証: lint、typecheck、production build を quality gate として実行し、responsive、reduced-motion、coarse-pointer branch を UI 変更時に確認する。
最適化: client-only shell が browser feature を隔離し、MDX、data module、modular component が不要な interaction の読み込みを避ける。
コード品質: TypeScript type、整理された handler、focused provider、narrow store、service/security module が ownership を明確にする。
リンクと参照: components/sections、components/ui、components/chatbot、components/providers、content/projects、messages、data、lib/mcp、lib/security、lib/services、stores を参照する。
/api/chat は multi-provider routing と制御された fallback による Oz のストリーミング応答を提供する。
アシスタントは静的 portfolio data と MDX context を明確な参照元として利用する。
browser voice は任意機能であり、speech が使えなくても text-first の体験を保つ。
MCP は read-only、主な transport は Streamable HTTP、認可は OAuth 2.1 Authorization Code と PKCE S256。
Vercel では Upstash Redis が atomic な one-time authorization-code redemption を担い、ローカル開発用の互換動作もある。
theme、provider state、component-local browser persistence、chatbot filter store は役割ごとに分離される。
異なる進め方: editorial personality を残しながら、負荷の高い visual path をさらに簡素化する。
成功: interface、localized narrative、assistant、music、discovery が一つの product として機能する。
学び: server integration、browser-only behavior、localized content の境界が明快なら rich interaction は維持しやすい。
コンテンツ階層を先に置くと、創造的な動きは体験を本当に強くできる。
連携を増やすことより client と server の境界を明確にすることが重要だった。
ローカライズされたケーススタディは、一度訳して終わりではなくコードと同期させる必要がある。
frontend と design: visual system、responsive section、HUD composition、Canvas、3D hero、content presentation を設計した。
AI と Oz: streaming assistant surface、primary/fallback routing、portfolio と MDX context、UI action を実装した。
interaction と animation: motion、scroll、reduced-motion、responsive interaction を調整した。
visual system、page structure、responsive interaction を設計・実装した。
localized content pipeline、project presentation、MDX components を構築した。
Oz assistant、AI provider fallback、security controls を統合した。
MCP discovery、OAuth、contact、media、analytics、deployment integration を実装した。
レイヤー構造: server component が locale と document structure を、client component が browser interaction を担い、API route は chat、contact、media、MCP を分離する。
機能モジュール: 機能単位の Next.js 構成により、content、UI、server integrations、machine-readable discovery を分離している。
レイヤー: route と server components が locale と document structure を管理し、client components が操作と browser-only APIs を管理する。
src/app/[locale]: localized pages、layouts、loading、error、project routes。
src/components/sections: Hero、About、Experience、Skills、Projects、Contact、Certification。
src/components/ui: GlitchText、Waves、CustomCursor、HeroModel、SkillGraph などの visual primitives。
src/components/layout: navigation、boot experience、scroll-to-top。
src/components/chatbot: widget、conversation UI、client chat services。
src/components/providers: client-only shells と music-player provider boundaries。
src/content/projects: locale ごとの project detail MDX。
src/data と src/messages: verified static facts と translation catalogs。
src/lib、src/hooks、src/stores: shared services、reusable behavior、scoped UI/filter state。
状態管理: provider は theme、国際化、music を所有し、chat preference と filter state は必要な範囲に限定する。
リファクタリングと改善: モジュール境界により visual feature、route handler、content、integration は独立して進化できる。
state は一つの global bucket ではない。themes と providers は各 context を持ち、chat preferences は必要なときだけ browser-local に保存し、filter store は自分の UI のためだけに使う。
このモジュール構成なら、localized content や server contracts に触れずに visual effect や provider を交換できる。
/[locale] と project paths が next-intl により locale-aware なページ階層を提供する。/api/mcp、OpenAPI、.well-known が read-only agent access を公開し、/api/chat が Oz stream surface となる。/api/chat、/api/chat/health、/api/gallery/[slug] が assistant のストリーミング、ヘルスチェック、rate-limited project-media surface を提供し、承認済み UI tools が navigation、project filtering、enabled gallery、contact review、music、theme、language actions を扱う。llms.txt、llms-full.txt、auth.md、public discovery documents が明確な context を提供する。layout が fonts、providers、localized metadata boundary を定義する。/api/gallery/[slug] は project media と対応 project gallery のための rate-limited surface である。/api/chat は same-origin requests を検証する。abuse controls が有効になると、別の signed temporary lockdown cookie が restriction を運び、request 自体は signed ではない。.well-known documents に置く。portfolio.read のままで、MCP を write surface にしない。ホスティング: このポートフォリオは franzdomingo.dev で公開され、Vercel を deployment target、Node.js 24 LTS を runtime とする。