o
odin.langpkg.dev
packages / library / Tatsuya-Portfolio-WasmOdin

Tatsuya-Portfolio-WasmOdin

130415alibrary

A modern, interactive portfolio website built with React 19, TypeScript, Three.js, and Odin, featuring stunning 3D animations and multi-language support.

No license ยท updated 1 day ago

TatsuyaM Portfolio (Hono && Bun && Odin edition)

Portfolio-FrameShot

A modern, interactive portfolio website built with React 19, TypeScript, Three.js, and Odin, featuring stunning 3D animations and multi-language support.

โœจ Features

  • ๐ŸŽจ Modern Design: Clean and professional portfolio interface with responsive layout
  • ๐ŸŒ Multi-language Support: English, Japanese, French, German, Chinese, Korean, and Italian with automatic language detection
  • ๐ŸŽญ 3D Graphics: Interactive 3D elements powered by Three.js and Odin
  • โœจ Smooth Animations: Beautiful transitions using Anime.js
  • ๐Ÿ“ฑ Responsive Design: Optimized for desktop, tablet, and mobile devices
  • โšก React 19 Compiler: Built with latest React features for optimized performance
  • ๐Ÿš€ Vite: Lightning-fast development and production builds
  • ๐Ÿ” Type-Safe: Full TypeScript support for robust code

๐Ÿ› ๏ธ Tech Stack

  • Frontend: React 19 with TypeScript (73.6%)
  • Styling: CSS (11.9%), Odin (14.5%)
  • Build Tool: Bun
  • Backend Framework: Hono
  • 3D Graphics: Three.js
  • Animations: Anime.js
  • Internationalization: i18next + react-i18next
  • Linting: ESLint

๐Ÿ“ฆ Dependencies

Core Dependencies

{
  "react": "^19.2.6",
  "react-dom": "^19.2.6",
  "hono": "^4.12.27",
  "three": "^0.184.0",
  "animejs": "^4.4.1",
  "i18next": "^26.3.1",
  "react-i18next": "^17.0.8",
  "odin": "^2.0.0"
}

Dev Tools

{
  "bun": "^1.3.14",
  "typescript": "~6.0.2",
  "eslint": "^10.3.0"
}

๐Ÿš€ Quick Start

Prerequisites

  • Bun (v1.3.14-canary.1 or higher)

Development

# Start dev server
bun run dev

Production

# Build for production
bun run build

๐Ÿ“Š Project Overview

Metric Value
Language TypeScript (73.6%)
Styling Odin (14.5%), CSS (11.9%)
Other Wasm, JS, Other (0.9%)
Build Tool Bun
React Version 19.2.6
Hono 4.12.27
Bun 1.3.14

๐Ÿ“ Project Structure

TatsuyaM-portfolio/
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ apps
โ”‚ย ย  โ””โ”€โ”€ api
โ”‚ย ย      โ”œโ”€โ”€ README.md
โ”‚ย ย      โ”œโ”€โ”€ package.json
โ”‚ย ย      โ”œโ”€โ”€ public
โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ static
โ”‚ย ย      โ”‚ย ย      โ””โ”€โ”€ style.css
โ”‚ย ย      โ”œโ”€โ”€ src
โ”‚ย ย      โ”‚ย ย  โ”œโ”€โ”€ index.tsx
โ”‚ย ย      โ”‚ย ย  โ””โ”€โ”€ renderer.tsx
โ”‚ย ย      โ”œโ”€โ”€ tsconfig.json
โ”‚ย ย      โ”œโ”€โ”€ vite.config.ts
โ”‚ย ย      โ””โ”€โ”€ wrangler.jsonc
โ”œโ”€โ”€ build.ts
โ”œโ”€โ”€ bun.lock
โ”œโ”€โ”€ core
โ”‚ย ย  โ””โ”€โ”€ main.odin
โ”œโ”€โ”€ eslint.config.js
โ”œโ”€โ”€ functions
โ”‚ย ย  โ””โ”€โ”€ api
โ”‚ย ย      โ””โ”€โ”€ [[path]].ts
โ”œโ”€โ”€ index.ts
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ postcss.config.js
โ”œโ”€โ”€ public
โ”‚ย ย  โ”œโ”€โ”€ ScreenShot.png
โ”‚ย ย  โ”œโ”€โ”€ _headers
โ”‚ย ย  โ”œโ”€โ”€ _redirects
โ”‚ย ย  โ”œโ”€โ”€ dist
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ main.css
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ main.js
โ”‚ย ย  โ”œโ”€โ”€ favicon.png
โ”‚ย ย  โ”œโ”€โ”€ icon.png
โ”‚ย ย  โ”œโ”€โ”€ index.html
โ”‚ย ย  โ””โ”€โ”€ main.wasm
โ”œโ”€โ”€ server
โ”‚ย ย  โ””โ”€โ”€ index.ts
โ”œโ”€โ”€ src
โ”‚ย ย  โ”œโ”€โ”€ App.css
โ”‚ย ย  โ”œโ”€โ”€ App.tsx
โ”‚ย ย  โ”œโ”€โ”€ assets
โ”‚ย ย  โ”œโ”€โ”€ components
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Background.tsx
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ NowPlaying.tsx
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ TerminalWindow.tsx
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ Typewriter.tsx
โ”‚ย ย  โ”œโ”€โ”€ hooks
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ useLanguage.tsx
โ”‚ย ย  โ”œโ”€โ”€ i18n.ts
โ”‚ย ย  โ”œโ”€โ”€ index.css
โ”‚ย ย  โ”œโ”€โ”€ locales
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ de.json
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ en.json
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ fr.json
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ it.json
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ja.json
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ko.json
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ zh.json
โ”‚ย ย  โ”œโ”€โ”€ main.tsx
โ”‚ย ย  โ”œโ”€โ”€ pages
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Contact.tsx
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Experience.tsx
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Home.tsx
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Projects.tsx
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Research.tsx
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ Skills.tsx
โ”‚ย ย  โ””โ”€โ”€ types
โ”‚ย ย      โ””โ”€โ”€ portfolio.ts
โ””โ”€โ”€ tsconfig.json

๐ŸŒ Language Support

The portfolio automatically detects your browser language:

  • ๐Ÿ‡ฌ๐Ÿ‡ง English - Default fallback language
  • ๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่ชž - Japanese support
  • ๐Ÿ‡ซ๐Ÿ‡ท Franรงais - French support
  • ๐Ÿ‡ฉ๐Ÿ‡ช Deutsch - Germany support
  • ๐Ÿ‡จ๐Ÿ‡ณ ็ฎ€ไฝ“ไธญๆ–‡ - Chinese support
  • ๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด - Korian support
  • ๐Ÿ‡ฎ๐Ÿ‡น Italiano - Itarian support

Language detection powered by i18next-browser-languagedetector.

๐ŸŽฏ Key Features Explained

React 19 Compiler

Leverages React 19's new compiler features for:

  • Automatic component optimization
  • Reduced re-renders
  • Better performance

3D Visualizations

Three.js integration provides:

  • Interactive 3D elements
  • Smooth camera animations
  • Custom shaders

Anime.js Animations

Creates fluid, professional animations for:

  • Page transitions
  • Element reveals
  • Interactive feedback

๐Ÿ“ Available Commands

bun run dev      # Start development server
bun run build    # Build for production

๐ŸŽจ Customization Guide

Update Portfolio Content

Edit content files in src/locales/ for multi-language updates.

Styling

Modify CSS files in src/styles/ to customize colors, fonts, and layout.

Add Projects

Add portfolio projects in the projects component located in src/components/.

Adjust Animations

Fine-tune Anime.js animations in animation configuration files.

Modify 3D Elements

Update Three.js scene setup in the appropriate component files.

๐Ÿ”— Links

๐Ÿ“„ License

This project is open source. See the LICENSE file for details.

๐Ÿค Contributing

We welcome contributions! To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/YourFeature)
  3. Commit changes (git commit -m 'Add YourFeature')
  4. Push to the branch (git push origin feature/YourFeature)
  5. Open a Pull Request

๐Ÿ“ˆ Performance

This portfolio is optimized for:

  • Fast load times with Vite
  • Smooth 60fps animations
  • Efficient 3D rendering with Three.js
  • Small bundle size through tree-shaking

Last Updated: July 2026
Built with โค๏ธ by Tatsuya M