Skip to content

Contributing

umutxyp edited this page Oct 17, 2026 · 2 revisions

Contributing

Thank you for wanting to help. Fixes, clearer docs and improvements that make the template easier to personalise are all welcome.

Note: If you only want to change the site for your own portfolio, you do not need to contribute anything back. Fork it and edit your copy; see Make It Yours.


Ways to help

  • Report a bug you hit while setting the site up.
  • Fix a bug or a rough edge (for example a setting that is defined but not used yet).
  • Improve this wiki.
  • Suggest an improvement in an issue before writing a large change, so it can be discussed first.

Development setup

  1. Fork umutxyp/Personal-Website and clone your fork:
    git clone https://github.com/<your-username>/Personal-Website.git
    cd Personal-Website
  2. Install with Node.js 22.17+ or 24+:
    npm install
  3. Create a branch for your change:
    git checkout -b fix/short-description
  4. Run the site and make your change:
    npm run dev

Before you open a pull request

  1. Format the code with Biome:
    npm run biome-write
  2. Lint it:
    npx @biomejs/biome lint .
    (npm run lint calls next lint, which Next.js 16 removed.)
  3. Build it, to catch type and build errors:
    npm run build
  4. Click through the pages you touched in both light and dark mode, and at phone width.

The repository contains no automated tests, so these manual checks matter.

Code style

The settings come from biome.json and tsconfig.json:

Rule Value
Language TypeScript, strict mode
Indentation 2 spaces
Line width 100 characters
Quotes double quotes in JavaScript and TypeScript
Imports use the @/ alias for anything in src/ (for example @/resources)
Styles SCSS modules next to the component (Header.module.scss), shared layout CSS in src/resources/custom.css
UI build with Once UI components (@once-ui-system/core) where one exists

Keep content and configuration in src/resources/ and project files in src/app/work/projects/, so people who fork the site still find everything in one place.

Project layout

Path What is in it
src/app/ Pages (page.tsx), the root layout.tsx, sitemap.ts, robots.ts, not-found.tsx
src/app/api/ API routes: authenticate, check-auth, og/generate, rss
src/app/screenshots/[slug]/ The live screenshot route
src/app/work/projects/ Project MDX files
src/components/ Header, Footer, RouteGuard, ProjectCard, MDX components, gallery, blog components
src/lib/live-stats.ts Live numbers
src/resources/ Site data, page content, Once UI config, icons, custom CSS
src/types/ Types for the config and content
src/utils/ MDX reading (utils.ts) and date formatting
public/images/ Avatar and project covers

Opening the pull request

  1. Push your branch to your fork.
  2. Open a pull request against main on umutxyp/Personal-Website.
  3. Describe what you changed and why. Add before/after screenshots for visual changes.
  4. Keep each pull request to one topic.

Every pull request is reviewed by the maintainer before it is merged (.github/CODEOWNERS assigns all files to @umutxyp).

By contributing, you agree that your contribution is released under the project's MIT License.


Reporting a bug

Open an issue at github.com/umutxyp/Personal-Website/issues and include:

  • what you did, what you expected, and what happened instead,
  • your operating system, node -v and npm -v,
  • whether it happens with npm run dev, npm run build or on your host (for example Vercel),
  • the full error message or log lines (lines starting with screenshot, live stats and so on are useful),
  • the relevant part of your config, without passwords or other secrets.

Check Troubleshooting first; your problem may already be covered there.


Reporting a security problem

Please do not open a public issue for security problems.

Use GitHub's private vulnerability reporting instead: Report a vulnerability (or go to the repository's Security tab and click Report a vulnerability).

Include what you found, how to reproduce it, and what an attacker could do with it. Security fixes are made on the latest version in the main branch, so check that the problem still exists there first.

Your report stays private until it is fixed. The fix is then published together with a security advisory that credits you, unless you prefer otherwise. The full policy is in SECURITY.md.


Credits

Personal Website is created and maintained by Umut Bayraktar of Codeshare.

Clone this wiki locally