Repository navigation
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.
- 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.
-
Fork umutxyp/Personal-Website and clone your fork:
git clone https://github.com/<your-username>/Personal-Website.git cd Personal-Website
-
Install with Node.js 22.17+ or 24+:
npm install
-
Create a branch for your change:
git checkout -b fix/short-description
-
Run the site and make your change:
npm run dev
-
Format the code with Biome:
npm run biome-write
-
Lint it:
(
npx @biomejs/biome lint .npm run lintcallsnext lint, which Next.js 16 removed.) -
Build it, to catch type and build errors:
npm run build
- 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.
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.
| 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 |
- Push your branch to your fork.
- Open a pull request against
mainon umutxyp/Personal-Website. - Describe what you changed and why. Add before/after screenshots for visual changes.
- 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.
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 -vandnpm -v, - whether it happens with
npm run dev,npm run buildor on your host (for example Vercel), - the full error message or log lines (lines starting with
screenshot,live statsand 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.
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.
Personal Website is created and maintained by Umut Bayraktar of Codeshare.
Personal Website by Umut Bayraktar · MIT License · Codeshare
Start
Reference
Go live
Community