A portfolio site built using Nychthemeron
Find a file
Matthew L McPeak 29670b22ed
Some checks failed
ci / build (push) Failing after 10s
ci / publish (push) Has been skipped
Inital Commit
2026-06-18 10:53:05 -04:00
.forgejo/workflows Inital Commit 2026-06-18 10:53:05 -04:00
.vscode Inital Commit 2026-06-18 10:53:05 -04:00
docs/superpowers/specs Inital Commit 2026-06-18 10:53:05 -04:00
e2e Inital Commit 2026-06-18 10:53:05 -04:00
public Inital Commit 2026-06-18 10:53:05 -04:00
src Inital Commit 2026-06-18 10:53:05 -04:00
.dockerignore Inital Commit 2026-06-18 10:53:05 -04:00
.editorconfig Inital Commit 2026-06-18 10:53:05 -04:00
.gitattributes Inital Commit 2026-06-18 10:53:05 -04:00
.gitignore Inital Commit 2026-06-18 10:53:05 -04:00
.oxfmtrc.json Inital Commit 2026-06-18 10:53:05 -04:00
.oxlintrc.json Inital Commit 2026-06-18 10:53:05 -04:00
bun.lock Inital Commit 2026-06-18 10:53:05 -04:00
Dockerfile Inital Commit 2026-06-18 10:53:05 -04:00
env.d.ts Inital Commit 2026-06-18 10:53:05 -04:00
eslint.config.ts Inital Commit 2026-06-18 10:53:05 -04:00
global.d.ts Inital Commit 2026-06-18 10:53:05 -04:00
index.html Inital Commit 2026-06-18 10:53:05 -04:00
nginx.conf Inital Commit 2026-06-18 10:53:05 -04:00
package-lock.json Inital Commit 2026-06-18 10:53:05 -04:00
package.json Inital Commit 2026-06-18 10:53:05 -04:00
playwright.config.ts Inital Commit 2026-06-18 10:53:05 -04:00
README.md Inital Commit 2026-06-18 10:53:05 -04:00
sample.env Inital Commit 2026-06-18 10:53:05 -04:00
tsconfig.app.json Inital Commit 2026-06-18 10:53:05 -04:00
tsconfig.json Inital Commit 2026-06-18 10:53:05 -04:00
tsconfig.node.json Inital Commit 2026-06-18 10:53:05 -04:00
tsconfig.vitest.json Inital Commit 2026-06-18 10:53:05 -04:00
vite-env.d.ts Inital Commit 2026-06-18 10:53:05 -04:00
vite.config.ts Inital Commit 2026-06-18 10:53:05 -04:00
vitest.config.ts Inital Commit 2026-06-18 10:53:05 -04:00

portfolio

This template should help get you started developing with Vue 3 in Vite.

VS Code + Vue (Official) (and disable Vetur).

Type Support for .vue Imports in TS

TypeScript cannot handle type information for .vue imports by default, so we replace the tsc CLI with vue-tsc for type checking. In editors, we need Volar to make the TypeScript language service aware of .vue types.

Customize configuration

See Vite Configuration Reference.

Project Setup

bun install

Compile and Hot-Reload for Development

bun dev

Type-Check, Compile and Minify for Production

bun run build

Run Unit Tests with Vitest

bun test:unit

Run End-to-End Tests with Playwright

# Install browsers for the first run
npx playwright install

# When testing on CI, must build the project first
bun run build

# Runs the end-to-end tests
bun test:e2e
# Runs the tests only on Chromium
bun test:e2e --project=chromium
# Runs the tests of a specific file
bun test:e2e tests/example.spec.ts
# Runs the tests in debug mode
bun test:e2e --debug

Lint with ESLint

bun lint

Docker

The Dockerfile serves a pre-built dist/ directory via nginx, so build the app first:

bun run build
docker build -t portfolio .
docker run --rm -p 8080:80 portfolio

The site will be available at http://localhost:8080.

CI publishing

A Forgejo Actions workflow (.forgejo/workflows/docker-publish.yml) builds the image and pushes it to the Forgejo container registry whenever a v* tag is pushed (e.g. v1.2.3):

  • git.mcpeakdev.com/mcpeakml/portfolio:<version>
  • git.mcpeakdev.com/mcpeakml/portfolio:latest

This requires a REGISTRY_TOKEN repository secret containing a token with write:package permission for the registry.