{"id":28198717,"url":"https://github.com/tyecode/portfolio-uno","last_synced_at":"2026-04-16T18:06:37.073Z","repository":{"id":215747009,"uuid":"739472773","full_name":"tyecode/portfolio-uno","owner":"tyecode","description":"My web portfolio built with Next.js and powered by NextUI.","archived":false,"fork":false,"pushed_at":"2025-08-09T09:32:39.000Z","size":10743,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-13T03:40:15.919Z","etag":null,"topics":["developer-portfolio","frontend","mit","nextjs","personal","personal-site","portfolio","portfolio-site","responsive","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"https://tyecode.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tyecode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-05T16:44:54.000Z","updated_at":"2025-08-09T09:32:42.000Z","dependencies_parsed_at":"2024-01-27T11:53:30.556Z","dependency_job_id":"a6c43a73-2c0b-4fba-8346-58a01d91c4fb","html_url":"https://github.com/tyecode/portfolio-uno","commit_stats":null,"previous_names":["tyecode/portfolio-uno","tyecoder/portfolio-uno"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tyecode/portfolio-uno","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyecode%2Fportfolio-uno","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyecode%2Fportfolio-uno/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyecode%2Fportfolio-uno/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyecode%2Fportfolio-uno/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tyecode","download_url":"https://codeload.github.com/tyecode/portfolio-uno/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyecode%2Fportfolio-uno/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28724374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T08:27:05.734Z","status":"ssl_error","status_checked_at":"2026-01-24T08:27:01.197Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["developer-portfolio","frontend","mit","nextjs","personal","personal-site","portfolio","portfolio-site","responsive","tailwindcss","typescript"],"created_at":"2025-05-16T18:13:52.074Z","updated_at":"2026-04-16T18:06:37.068Z","avatar_url":"https://github.com/tyecode.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Portfolio Uno\n\nA modern, responsive portfolio website showcasing the work of Sengphachanh Chanthavong (tyecode), a passionate Front-end Developer. Built with Next.js 14 and featuring a unique Matrix-style animated background, dark theme, and smooth section transitions.\n\n## ✨ Features\n\n- **Matrix Background Animation**: Custom Canvas-based Matrix rain effect\n- **Responsive Design**: Optimized for all device sizes with mobile-first approach\n- **Dark Theme**: Sleek dark interface with custom color scheme\n- **Section Navigation**: Smooth transitions between About, Experience, and Projects sections\n- **Social Media Integration**: Direct links to GitHub, LinkedIn, Facebook, and email\n- **SEO Optimized**: Complete meta tags, Open Graph, and sitemap\n- **Testing**: Unit tests with Jest and React Testing Library\n- **Code Quality**: ESLint and Prettier for consistent code formatting\n\n## 🛠️ Tech Stack\n\n### Core Framework\n\n- **[Next.js 14](https://nextjs.org/)** - React framework with App Router\n- **[TypeScript](https://www.typescriptlang.org/)** - Type safety and developer experience\n- **[React 18](https://reactjs.org/)** - UI library with latest features\n\n### Styling \u0026 UI\n\n- **[Tailwind CSS](https://tailwindcss.com/)** - Utility-first CSS framework\n- **[NextUI](https://nextui.org/)** - Modern React UI library\n- **[shadcn/ui](https://ui.shadcn.com/)** - Re-usable component library\n- **[Framer Motion](https://www.framer.com/motion/)** - Animation library\n- **[FontAwesome](https://fontawesome.com/)** - Icon library\n- **[Radix UI](https://www.radix-ui.com/)** - Unstyled, accessible UI primitives\n\n### State Management \u0026 Utilities\n\n- **[Zustand](https://github.com/pmndrs/zustand)** - Lightweight state management\n- **[clsx](https://github.com/lukeed/clsx) \u0026 [tailwind-merge](https://github.com/dcastil/tailwind-merge)** - Conditional className utilities\n- **[class-variance-authority](https://github.com/joe-bell/cva)** - Component variant API\n\n### Development Tools\n\n- **[ESLint](https://eslint.org/)** - Code linting\n- **[Prettier](https://prettier.io/)** - Code formatting\n- **[Jest](https://jestjs.io/) \u0026 [React Testing Library](https://testing-library.com/react)** - Testing framework\n\n## 📁 Project Structure\n\n```\nportfolio-uno/\n├── app/                          # Next.js App Router\n│   ├── (root)/                   # Route group\n│   │   ├── layout.tsx           # Root layout\n│   │   └── page.tsx             # Home page\n│   ├── globals.css              # Global styles\n│   ├── layout.tsx               # App layout\n│   └── providers.tsx            # NextUI provider\n├── components/                   # React components\n│   ├── cards/                   # Card components\n│   ├── sections/                # Page sections\n│   ├── ui/                      # UI components\n│   ├── header.tsx               # Main header\n│   ├── footer.tsx               # Footer component\n│   ├── matrix-background.tsx    # Matrix animation\n│   └── navigation-bar.tsx       # Navigation\n├── constants/                    # Configuration \u0026 data\n│   ├── config.ts                # Site configuration\n│   ├── experience.ts            # Work experience data\n│   ├── nav-links.ts             # Navigation links\n│   └── projects.ts              # Projects data\n├── lib/                         # Utilities\n│   └── utils.ts                 # Helper functions\n├── stores/                      # Zustand stores\n│   └── use-section-store.ts     # Section state management\n└── __tests__/                   # Test files\n    └── header.test.tsx          # Component tests\n```\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js 18+ and pnpm (recommended) or npm\n\n### Installation\n\n**1. Clone the repository**\n\n```bash\ngit clone https://github.com/tyecode/portfolio-uno.git\ncd portfolio-uno\n```\n\n**2. Install dependencies**\n\n```bash\n# Using pnpm (recommended)\npnpm install\n\n# Using npm\nnpm install\n```\n\n**3. Run the development server**\n\n```bash\n# Using pnpm\npnpm dev\n\n# Using npm\nnpm run dev\n```\n\n**4. Open your browser**\n\nNavigate to [http://localhost:3000](http://localhost:3000) to see the application.\n\n## 📜 Available Scripts\n\n- **`dev`** - Start development server\n- **`build`** - Build for production\n- **`start`** - Start production server\n- **`lint`** - Run ESLint and Prettier checks\n- **`lint:eslint`** - Run ESLint only\n- **`lint:prettier`** - Run Prettier check only\n- **`fix`** - Auto-fix ESLint and Prettier issues\n- **`fix:eslint`** - Auto-fix ESLint issues only\n- **`fix:prettier`** - Auto-fix Prettier formatting\n\n## 🎨 Customization\n\n### Site Configuration\n\nUpdate personal information in `constants/config.ts`:\n\n```typescript\nexport const CONFIG = {\n  url: 'https://your-domain.com/',\n  name: 'Your Name',\n  skill: 'Your Title',\n  description: 'Your description...',\n}\n```\n\n### Theme Colors\n\nModify colors in `tailwind.config.ts` under the NextUI theme configuration.\n\n### Content Updates\n\n- **About Section**: Update `components/sections/about-section.tsx`\n- **Projects**: Modify `constants/projects.ts`\n- **Experience**: Update `constants/experience.ts`\n- **Social Links**: Edit the `SocialMedia` array in `components/header.tsx`\n\n## 🚀 Deployment\n\nThis project is optimized for deployment on Vercel:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/tyecode/portfolio-uno)\n\n### Other Platforms\n\nThe application can be deployed on any platform that supports Next.js:\n\n- Netlify\n- Railway\n- DigitalOcean App Platform\n- AWS Amplify\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📄 License\n\nLicensed under the [MIT License](https://github.com/tyecode/portfolio-uno/blob/main/LICENSE).\n\n## 👨‍💻 Author\n\n**Sengphachanh Chanthavong (tyecode)**\n\n- Website: [tyecode.dev](https://tyecode.dev/)\n- GitHub: [@tyecode](https://github.com/tyecode)\n- LinkedIn: [tyecode](https://www.linkedin.com/in/tyecode)\n- Email: [sengphachanh.dev@gmail.com](mailto:sengphachanh.dev@gmail.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftyecode%2Fportfolio-uno","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftyecode%2Fportfolio-uno","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftyecode%2Fportfolio-uno/lists"}