A portfolio site built using Nychthemeron
Find a file
2026-06-17 16:21:54 -04:00
.forgejo/workflows fix: portfolio 2026-06-17 16:21:54 -04:00
.vscode Initial Commit 2026-06-10 16:07:12 -04:00
docs/superpowers/specs fix: portfolio 2026-06-17 16:21:54 -04:00
e2e Initial Commit 2026-06-10 16:07:12 -04:00
public Initial Commit 2026-06-10 16:07:12 -04:00
src fix: portfolio 2026-06-17 16:21:54 -04:00
.dockerignore feat: docker 2026-06-10 17:03:17 -04:00
.editorconfig Initial Commit 2026-06-10 16:07:12 -04:00
.env fix: portfolio 2026-06-17 16:21:54 -04:00
.gitattributes Initial Commit 2026-06-10 16:07:12 -04:00
.gitignore Initial Commit 2026-06-10 16:07:12 -04:00
.oxfmtrc.json Initial Commit 2026-06-10 16:07:12 -04:00
.oxlintrc.json Initial Commit 2026-06-10 16:07:12 -04:00
bun.lock fix: portfolio 2026-06-17 16:21:54 -04:00
bunfig.toml fix: portfolio 2026-06-17 16:21:54 -04:00
Dockerfile feat: docker 2026-06-10 17:03:17 -04:00
env.d.ts Initial Commit 2026-06-10 16:07:12 -04:00
eslint.config.ts Initial Commit 2026-06-10 16:07:12 -04:00
index.html [claudesquad] update from 'portfolio' on 10 Jun 26 16:31 EDT (paused) 2026-06-10 16:31:50 -04:00
nginx.conf feat: docker 2026-06-10 17:03:17 -04:00
package-lock.json [claudesquad] update from 'portfolio' on 10 Jun 26 16:31 EDT (paused) 2026-06-10 16:31:50 -04:00
package.json fix: portfolio 2026-06-17 16:21:54 -04:00
playwright.config.ts Initial Commit 2026-06-10 16:07:12 -04:00
README.md feat: docker 2026-06-10 17:03:17 -04:00
sample.env fix: portfolio 2026-06-17 16:21:54 -04:00
tsconfig.app.json fix: portfolio 2026-06-17 16:21:54 -04:00
tsconfig.json fix: portfolio 2026-06-17 16:21:54 -04:00
tsconfig.node.json fix: node TS 2026-06-11 15:57:03 -04:00
tsconfig.vitest.json fix: portfolio 2026-06-17 16:21:54 -04:00
vite-env.d.ts fix: portfolio 2026-06-17 16:21:54 -04:00
vite.config.ts fix: portfolio 2026-06-17 16:21:54 -04:00
vitest.config.ts fix: portfolio 2026-06-17 16:21:54 -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.