Personal website and portfolio of Roman Travnikov, a senior frontend developer with 10+ years of experience.
- Interactive 3D animations using Three.js
- Responsive design with Mantine UI
- Blog with MDX support
- Project showcase
- Web experiments gallery
- Strapi CMS integration
- SEO optimization with structured data
- Automated deployment via GitHub Actions
- Frontend Framework: Gatsby
- UI Framework: Mantine UI
- 3D & Animation: Three.js (via React Fiber)
- Headless CMS: Strapi
- Deployment: GitHub Pages
- CI/CD: GitHub Actions
-
Clone the repository:
git clone https://github.com/TravnikovDev/travnikov.dev.github.io.git cd travnikov.dev.github.io
-
Install dependencies:
npm install
-
Set up environment variables: Create a
.env.development
file with the following variables:STRAPI_API_URL=http://localhost:1337 STRAPI_TOKEN=your_strapi_token_here
-
Start the development server:
npm run develop
-
Open http://localhost:8000 to view the site in your browser.
Content for blog posts, projects, and experiments can be managed in two ways:
- Markdown/MDX files: Add files to the
src/content/
directory - Strapi CMS: Set up Strapi CMS for dynamic content management
The site is automatically deployed to GitHub Pages when changes are pushed to the main branch. The deployment process is handled by GitHub Actions.
To manually deploy:
-
Build the site:
npm run build
-
Deploy to GitHub Pages:
npm run deploy
The site includes several SEO optimizations:
- JSON-LD structured data
- Social media meta tags
- Sitemap generation
- Schema.org markup for blog posts and projects
This project is licensed under the ISC License. See the LICENSE file for details.