Replaces the static portfolio with a resume site that reads /data/resume.json: the text comes from data/resume.json in this repo, and the projects are the public Gitea repos tagged `resume`. Merges in the content of the hh.ru resume (backend/DevOps skills, experience, languages) without personal details. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Emil Shanayev — resume site
Live at https://shanaty.ru/resume/. A static Next.js site whose content is loaded live from Gitea:
- Text (name, bio, skills, experience, education, contacts, …) comes from
data/resume.jsonin this repo. - Projects are the public repos on Gitea (
git.shanaty.ru/Emil_Shanaty) that carry the topicresume. Tag a repo and it appears within about a minute; remove the topic and it disappears. - Optional
projectNotesindata/resume.json(keyed by repo name) enrich a project with a title, kind, longer description, highlights, tech tags, extra links and arank(lower ranks first; the rest are newest first). Without a note a project shows its Gitea description, language and topics.
How it works
A systemd timer on the server (resume_sync.py, in the auto repo) rebuilds https://shanaty.ru/data/resume.json every minute from the main branch of this repo plus the topic search. The page fetches that file on load and falls back to the copy bundled at build time if it is unreachable. A broken data/resume.json (invalid JSON, missing fields, non-http links) is rejected and the previous published data stays.
To update content: edit data/resume.json, commit, and push to Gitea (git push gitea main). No rebuild or deploy is needed.
Development
npm install
npm run dev # http://localhost:3000, data from the public https://shanaty.ru/data/resume.json
npm run build # static export in out/
BASE_PATH sets the URL prefix (default /Emil_Shanayev_Resume, for GitHub Pages) and NEXT_PUBLIC_DATA_URL the data URL.
Deploy
./deploy-shanaty.sh builds and publishes the site to shanaty.ru (needs the ssh key ~/.ssh/MyGitea). Only needed after changing code or styles.
Not published on purpose
The official resume on hh.ru holds more personal details (phone, date of birth, salary expectations). This site only carries the professional content.