Skip to content

TimJJTing/Personal-Website

Repository files navigation

Personal Website

A personal website built with SvelteKit, Tailwind CSS, and mdsvex. Features a portfolio of works, articles written in Markdown, and an about page. Deployed on Netlify.

Getting Started

Install / Activate the correct Node version and dependencies:

nvm use
pnpm install

Development

# preferred, if netlify-cli is installed
netlify dev
# otherwise use pnpm dev, however, it will not work properly
# because it cannot use Netlify Image CDN
pnpm dev

Build

pnpm build
pnpm preview

Testing & Linting

pnpm check
pnpm lint
pnpm test

Tech Stack

Category Technology
Framework SvelteKit (Svelte 5)
Styling Tailwind CSS v4 + @tailwindcss/typography
Markdown mdsvex — renders .md/.svx files as Svelte components
Markdown plugins remark-footnotes
CMS Sveltia CMS (Git-based, GitHub backend)
Deployment Netlify via @sveltejs/adapter-netlify (SSG + prerender)
Image CDN Netlify Image CDN (requires netlify dev for local use)
Testing Vitest (unit) + Playwright (e2e)
Linting ESLint + Prettier (with prettier-plugin-svelte and prettier-plugin-tailwindcss)
Runtime Node 22 (see .nvmrc)
Package manager pnpm

Project Structure

src/
├── lib/
│   ├── components/       # Reusable Svelte components (nav, footer, item, tag, img)
│   ├── markdown-layouts/ # Svelte layout wrappers for mdsvex content (article, work, links, default)
│   ├── attachments/      # Svelte action utilities (e.g. portal)
│   └── utils/            # Shared utility functions
└── routes/
    ├── +page.svelte      # Home page
    ├── about/            # About page with Markdown content
    ├── articles/         # Article listing and [slug] detail pages (Markdown)
    ├── works/            # Works listing and [slug] detail pages (Markdown)
    ├── api/              # JSON endpoints for articles and works
    ├── sitemap.xml/      # Dynamic sitemap endpoint
    ├── config.md         # Site-wide config (title, description, etc.)
    └── links.md          # Links page content

static/
├── admin/                # Sveltia CMS config and UI
└── uploads/              # Media uploaded via CMS

e2e/                      # Playwright end-to-end tests

About

My Personal Website

Resources

Stars

Watchers

Forks

Contributors