{"id":50904070,"url":"https://github.com/ontech7/www.andrealosavio.com","last_synced_at":"2026-06-16T05:30:59.819Z","repository":{"id":360303783,"uuid":"1133408048","full_name":"ontech7/www.andrealosavio.com","owner":"ontech7","description":"Personal website for my freelance activity.","archived":false,"fork":false,"pushed_at":"2026-05-25T20:45:43.000Z","size":26645,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-25T22:24:49.155Z","etag":null,"topics":["freelance-work","lead-generation","motion","next-intl","nextjs","nuqs","personal-website","react","resend","shadcn-ui"],"latest_commit_sha":null,"homepage":"https://www.andrealosavio.com","language":"TypeScript","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/ontech7.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-13T09:59:11.000Z","updated_at":"2026-05-25T20:45:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ontech7/www.andrealosavio.com","commit_stats":null,"previous_names":["ontech7/www.andrealosavio.com"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ontech7/www.andrealosavio.com","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ontech7%2Fwww.andrealosavio.com","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ontech7%2Fwww.andrealosavio.com/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ontech7%2Fwww.andrealosavio.com/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ontech7%2Fwww.andrealosavio.com/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ontech7","download_url":"https://codeload.github.com/ontech7/www.andrealosavio.com/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ontech7%2Fwww.andrealosavio.com/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34393301,"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-16T02:00:06.860Z","response_time":126,"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":["freelance-work","lead-generation","motion","next-intl","nextjs","nuqs","personal-website","react","resend","shadcn-ui"],"created_at":"2026-06-16T05:30:59.255Z","updated_at":"2026-06-16T05:30:59.815Z","avatar_url":"https://github.com/ontech7.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"public/images/cover.jpg\" alt=\"Coolify Manager Screenshot\"\u003e\n\u003c/p\u003e\n\n# Andrea Losavio - Portfolio Website\n\nPersonal portfolio website designed to generate leads and attract potential\nclients.\n\n## Tech Stack\n\n- **Next.js 16.1.6** (App Router)\n- **TypeScript**\n- **Tailwind CSS**\n- **shadcn/ui** (only required components)\n- **next-intl** for internationalization (IT / EN)\n- **Resend API** for contact form emails\n- **Motion** for animations\n- **nuqs** for query params state management\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 20+\n- npm\n\n### Installation\n\n```bash\nnpm install\n```\n\n### Environment Variables\n\nCopy `.env.sample` to `.env` and configure the variables:\n\n```bash\ncp .env.sample .env\n```\n\n**Required variables:**\n\n- `NEXT_PUBLIC_SITE_URL` - Your domain (without https://)\n- `RESEND_API_KEY` - API key from [Resend](https://resend.com)\n- `OWNER_EMAIL` - Email to receive contact form submissions\n- `FROM_EMAIL` - Sender email for notifications\n- `CSRF_SECRET` - Secret for CSRF protection (generate with\n  `openssl rand -hex 32`)\n- `CAT_API_KEY` - (Optional) API key from [The Cat API](https://thecatapi.com)\n\n**Deployment (Vercel):**\n\nSet these environment variables in your Vercel project settings:\n\n1. Go to your project → Settings → Environment Variables\n2. Add all variables from `.env.sample`\n3. **Make sure to set `NEXT_PUBLIC_SITE_URL` to `www.andrealosavio.com`**\n   (without https://)\n4. Deploy!\n\n### Development\n\n```bash\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) in your browser.\n\n### Build\n\n```bash\nnpm run build\nnpm start\n```\n\n## Project Structure\n\n```\nsrc/\n├── app/                    # App Router pages and layouts\n│   └── [locale]/           # Internationalized routes\n│       ├── (homepage)/     # Homepage route group\n│       │   ├── components/ # Page-scoped components\n│       │   └── sections/   # Page sections\n│       └── components/     # Locale-specific shared components\n├── components/             # Shared reusable components\n│   └── ui/                 # Primitive components (shadcn)\n├── constants/              # Shared constants\n├── libs/                   # External libraries and vendor logic\n│   └── i18n/               # Internationalization config\n├── translations/           # i18n dictionaries\n│   ├── en/                 # English translations\n│   └── it/                 # Italian translations\n└── utils/                  # Utility functions\n```\n\n## Design\n\nThe design system is defined in Figma:\n[Andrea Losavio 2.0 - Design System](https://www.figma.com/design/1f4uJbwdNlmM1lAxob0hn2/Andrea-Losavio-2.0---Design-System)\n\n## License\n\nAll rights reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fontech7%2Fwww.andrealosavio.com","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fontech7%2Fwww.andrealosavio.com","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fontech7%2Fwww.andrealosavio.com/lists"}