Skip to content

Shramkoweb/Portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

989 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

shramko.dev

Portfolio · blog · digital garden

Live demo →

CI Lighthouse Maintainability Test Coverage License: MIT

🇺🇦 Українською

Contents

Tech Stack

Layer Tools
Framework Next.js 16, React 19
Language TypeScript
Styling Tailwind CSS v4
Content MDX, next-mdx-remote, Shiki
Data Prisma 7, Postgres
State / Fetch SWR
Monitoring Sentry, Checkly, UptimeRobot, Vercel Analytics, Speed Insights
Testing Jest, Testing Library
Tooling oxlint, oxfmt, commitlint, pnpm
Hosting Vercel

Getting Started

Prerequisites

  • Node 24.x
  • pnpm 10.x
  • Postgres database (local or hosted, e.g. Neon)

Setup

git clone https://github.com/Shramkoweb/Portfolio.git
cd Portfolio
pnpm install
cp .env.example .env
# fill in DATABASE_URL, SENTRY_*, GITHUB_TOKEN
pnpm dev

App runs at http://localhost:3000.

Scripts

Command Purpose
pnpm dev start dev server
pnpm build production build + sitemap
pnpm start start production server
pnpm lint / pnpm lint:fix oxlint
pnpm format / pnpm format:check oxfmt
pnpm test / pnpm test:coverage Jest
pnpm article scaffold a new blog post

Testing

Tests use Jest with Testing Library. Run pnpm test for the full suite or pnpm test:coverage for a coverage report. Tests live in __tests__/. CI uploads coverage to Code Climate.

Deployment

Deploys automatically to Vercel on push to main. The postbuild script regenerates the sitemap via next-sitemap. Pull requests run a Lighthouse budget check defined in .github/workflows/lighthouse.yml.

Monitors

Contributing

  • Commits follow Conventional Commits (Angular convention). Enforced by commitlint.config.ts.
  • A pre-commit hook auto-formats staged JS/TS via oxfmt (installed by pnpm install through the prepare script).
  • Run pnpm pre-push before pushing — it runs lint and format checks.

License

MIT — see LICENSE.