A responsive static portfolio built with plain HTML, CSS, and JavaScript. It is available in English, Russian, and Finnish, supports light and dark themes, and highlights current internship work plus two featured public projects.
- Hiring-oriented hero with CV download and LinkedIn
- About section with background and current focus
- Current Work card for the private EllarionTales internship project
- Two featured public projects with live demos, repo links, and screenshots
- Footer contact links for email, LinkedIn, and GitHub
- EN / RU / FI language switching
- Light and dark themes with saved preference
- Burger navigation and back-to-top button
- Basic accessibility and social preview metadata
Private internship project for a LARP registration flow.
- Site: https://ellariontales.com/
- Focus: backend availability rules, character-group capacity, premium handling, transactional registration saves, and CI/tooling
- Tech: Node.js, Express, PostgreSQL, Sequelize, Jest
Featured full-stack app from my Full Stack Open coursework.
- Repo: https://github.com/mashalink/FullStack
- Demo login:
demo/demopass - Focus: React frontend with a Node.js/Express API and MongoDB, authenticated create/like/comment/delete-own-blog flow, persisted auth, routing, state management, and automated test coverage
- Tech: React, Redux Toolkit, React Router, Node.js, Express, MongoDB
Full-stack employee management app with a separate React/Vite frontend and Express API backed by PostgreSQL and Sequelize.
- Repo: https://github.com/mashalink/hrApp
- Focus: browsing employees, adding and editing records, and highlighting probation and anniversary reminders in a clean admin interface
- Tech: React, Vite, React Router, Material UI, Node.js, Express, PostgreSQL, Sequelize
GitHub Actions runs on every push and pull request to main.
It checks:
- JavaScript syntax with
node --check - JavaScript linting with ESLint
- formatting with Prettier
- HTML structure with
html-validate - local links, images, and key section ids in
index.html - Lighthouse scores for performance, accessibility, best practices, and SEO
This keeps the repo honest without adding a build system. For a static site, that is enough to catch broken files, invalid markup, broken paths, and accidental regressions early.
The main branch is protected by required checks.
No build tools are required.
-
Clone the repository:
git clone https://github.com/mashalink/web-portfolio.git cd web-portfolio -
Open
index.htmlin a browser, or use VS Code Live Server.
This site is deployed through GitHub Pages with a dedicated GitHub Actions
workflow that publishes the static files from main.
This project is licensed under the MIT License. See LICENSE.
