A simple, lightweight one-page website for tracking household items and furniture. Built with Vue 3 and Vite.
- Table of items and furniture, loaded from
public/items.json - Search by name (case-insensitive, fuzzy)
- Filter by category
- NEW badge for items from the past month
- Responsive layout for desktop and mobile
Edit only public/items.json to add, change, or remove items:
[
{
"name": "Bank",
"category": "Woonkamer",
"date": "10-06-2026"
}
]- name: name of the item
- category: category (e.g. Woonkamer, Eetkamer)
- date: date in
DD-MM-YYYYformat (not shown in the table, but determines sorting and the NEW badge)
Items are sorted from newest to oldest; when dates match, alphabetically by name.
npm install
npm run devOpen http://localhost:5173 in your browser.
npm run buildThe production build is in dist/.
Preview locally:
npm run preview- Push the code to the
mainbranch on GitHub. - In the repository, go to Settings → Pages.
- Under Build and deployment, choose GitHub Actions as the source.
- On every push to
main, the workflow in.github/workflows/deploy.ymlbuilds and deploys automatically.
The site is available at:
https://huisje.mathijsnabbe.nl/
The build uses VITE_BASE_PATH=/ because a custom domain serves the site from the root. Asset paths like /HouseInventory/assets/... return 404 (HTML) on a custom domain, which causes MIME-type errors and a blank page.
If you are not using a custom domain but are using username.github.io/HouseInventory/, set this in .github/workflows/deploy.yml:
VITE_BASE_PATH: /HouseInventory/VITE_BASE_PATH=/ npm run build├── public/
│ ├── items.json # Item data (edit here)
│ └── CNAME # Custom domain for GitHub Pages
├── src/
│ ├── App.vue # Main component
│ ├── main.js
│ └── style.css
├── .github/workflows/
│ └── deploy.yml # GitHub Pages deployment
├── index.html
├── vite.config.js
└── package.json