I don't feel the need to update this as often as I once did. It's a static site, portfolio, and blog, currently being modernized with the latest Nuxt stack.
- Framework: Nuxt 4
- Content Engine: Nuxt Content v3
- Styling: Tailwind CSS (v6)
- Database: SQLite (dev) / Static JSON (prod)
- Templating: Pug & Vue 3 Composition API
- Package Manager: pnpm
This is a Static Site Generator. Markdown files go into the content/ folder, and HTML is generated for deployment.
During development, Nuxt Content v3 processes content into a local SQLite database for querying. When building, it generates static JSON payloads so the site loads instantly on GitHub Pages without a backend.
Standard Nuxt 4 setup:
/
├── app/ # Source code
│ ├── components/ # Vue components
│ ├── layouts/ # Page layouts
│ ├── pages/ # Routes (File-system based)
│ └── app.vue # Root component
├── content/ # Content (Markdown, JSON)
├── public/ # Static Assets (Images, Favicons)
├── content.config.ts # Content Schema Definitions
└── nuxt.config.ts # Nuxt Configuration
To run locally:
- Node.js (LTS)
- pnpm
- SQLite (for the local dev database)
-
Clone the repository:
git clone https://github.com/michaelpaulukonis/michaelpaulukonis.github.io.git cd michaelpaulukonis.github.io -
Install dependencies:
pnpm install
-
Run it:
pnpm dev
Go to
http://localhost:3000.
This project uses Vitest for testing. To run the tests:
pnpm testThis lives on GitHub Pages.
To build and deploy (if you are me):
pnpm publishThis script will:
- Clean the output directory.
- Generate the static site (
pnpm generate). - Deploy the
.output/publicfolder to thegh-pagesbranch.
- Blog Posts: New
.mdfiles go incontent/blog/. - Static Pages: New
.mdfiles go incontent/. - Authors: Metadata in
content/authors.json. - Schemas: Content structure is defined in
content.config.ts.
Additional documentation can be found in the docs/ directory:
-
Reference Snapshot: Technical overview.
-
Search Implementation: Details on the MiniSearch integration.
-
Migration Plans: Migration history.
Sure, why not. Just follow the existing mess patterns.
Maintained by Michael Paulukonis.
