{"id":23704098,"url":"https://github.com/getssh/portfolio","last_synced_at":"2026-06-18T12:32:32.540Z","repository":{"id":67996569,"uuid":"514570422","full_name":"getssh/portfolio","owner":"getssh","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-16T10:47:56.000Z","size":17855,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-16T12:57:15.077Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/getssh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-07-16T12:20:04.000Z","updated_at":"2025-08-16T10:48:00.000Z","dependencies_parsed_at":"2025-02-21T19:40:48.313Z","dependency_job_id":"c582cb69-f85b-4ada-8693-be0f50f840ff","html_url":"https://github.com/getssh/portfolio","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/getssh/portfolio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getssh%2Fportfolio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getssh%2Fportfolio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getssh%2Fportfolio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getssh%2Fportfolio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getssh","download_url":"https://codeload.github.com/getssh/portfolio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getssh%2Fportfolio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34491228,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-18T02:00:06.871Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-12-30T13:23:42.151Z","updated_at":"2026-06-18T12:32:32.526Z","avatar_url":"https://github.com/getssh.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Getayawkal Tamrat - Portfolio\n\nA modern, responsive portfolio website built with React, Vite, and Tailwind CSS, optimized for SEO and performance.\n\n## 🚀 Features\n\n- **SEO Optimized**: Comprehensive meta tags, structured data, and semantic HTML\n- **Responsive Design**: Mobile-first approach with Tailwind CSS\n- **Performance**: Optimized build configuration and lazy loading\n- **Accessibility**: ARIA labels, semantic HTML, and keyboard navigation\n- **PWA Ready**: Manifest file and service worker support\n- **Modern Tech Stack**: React 19, Vite, Framer Motion\n\n## 🛠️ Tech Stack\n\n- **Frontend**: React 19, Tailwind CSS, Framer Motion\n- **Build Tool**: Vite\n- **Styling**: Tailwind CSS with custom components\n- **Animation**: Framer Motion for smooth interactions\n- **Routing**: React Router DOM\n- **SEO**: Custom hooks and structured data\n\n## 📱 SEO Features\n\n### Meta Tags\n- Comprehensive meta descriptions and keywords\n- Open Graph tags for social media sharing\n- Twitter Card optimization\n- Canonical URLs and robots.txt\n\n### Structured Data\n- JSON-LD schema markup for Person, Organization, and Website\n- Rich snippets support for search engines\n- Professional credentials and skills markup\n\n### Performance\n- Optimized build configuration with code splitting\n- Lazy loading for images and components\n- Preconnect to external domains\n- PWA manifest for mobile experience\n\n## 🚀 Getting Started\n\n### Prerequisites\n- Node.js 18+ \n- npm or yarn\n\n### Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/getssh/portfolio.git\ncd portfolio\n```\n\n2. Install dependencies:\n```bash\nnpm install\n```\n\n3. Start development server:\n```bash\nnpm run dev\n```\n\n4. Build for production:\n```bash\nnpm run build\n```\n\n5. Preview production build:\n```bash\nnpm run preview\n```\n\n## 📁 Project Structure\n\n```\nportfolio/\n├── public/\n│   ├── robots.txt          # Search engine crawling instructions\n│   ├── sitemap.xml         # XML sitemap for SEO\n│   ├── manifest.json       # PWA manifest file\n│   └── favicon files       # Various favicon sizes\n├── src/\n│   ├── components/         # React components\n│   ├── hooks/             # Custom hooks including SEO\n│   ├── config/            # Configuration files\n│   └── assets/            # Static assets\n├── index.html              # Main HTML with SEO meta tags\n└── vite.config.js          # Build configuration\n```\n\n## 🔧 SEO Configuration\n\n### Structured Data\nJSON-LD structured data is automatically included for:\n- Person schema (developer profile)\n- Organization schema (portfolio business)\n- Website schema (portfolio site)\n\n### Social Media\nOpen Graph and Twitter Card tags are optimized for:\n- LinkedIn sharing\n\n## 📊 Performance Optimization\n\n### Build Configuration\n- Code splitting for vendor libraries\n- Optimized chunk sizes\n- Tree shaking for unused code\n\n### Image Optimization\n- Proper alt text for all images\n- Lazy loading for better performance\n- Responsive image sizing\n\n### CSS Optimization\n- Tailwind CSS with PurgeCSS\n- Critical CSS inlining\n- Optimized class generation\n\n## 🌐 Deployment\n\n### Build Process\n```bash\nnpm run build\n```\n\n## 📈 SEO Best Practices Implemented\n\n1. **Semantic HTML**: Proper use of `\u003cheader\u003e`, `\u003csection\u003e`, `\u003carticle\u003e`, `\u003cnav\u003e`\n2. **Heading Hierarchy**: Logical H1-H6 structure\n3. **Alt Text**: Descriptive alt text for all images\n4. **Meta Descriptions**: Unique, compelling descriptions for each section\n5. **Structured Data**: JSON-LD markup for rich snippets\n6. **Performance**: Fast loading times and Core Web Vitals\n7. **Mobile-First**: Responsive design for all devices\n8. **Accessibility**: ARIA labels and keyboard navigation\n\n## 📚 Resources\n\n- [Google SEO Starter Guide](https://developers.google.com/search/docs/beginner/seo-starter-guide)\n- [Schema.org Documentation](https://schema.org/)\n- [Web.dev Performance](https://web.dev/performance/)\n- [MDN Web Docs](https://developer.mozilla.org/)\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Test thoroughly\n5. Submit a pull request\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## 📞 Contact\n\n- **Portfolio**: [getayawkal.com](https://getayawkal.com)\n- **LinkedIn**: [linkedin.com/in/getayawkal-tamrat](https://www.linkedin.com/in/getayawkal-tamrat/)\n- **GitHub**: [github.com/getssh](https://github.com/getssh)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetssh%2Fportfolio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetssh%2Fportfolio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetssh%2Fportfolio/lists"}