My website's frontend.
Note: this repository/project is UNLICENSED. If you don't know what that means, Google it.
Also: the "website-projectile-pixels" dependency is pointed to a private repository, so it will always fail to install for anyone but me.
Be sure that Git >= 2
is installed.
Open a command line at, or change directory (cd
) to where you'd like the project to exist (as a sub-directory).
Checkout the repository:
git clone [email protected]:stevenvachon/website-frontend.git
Open the project directory:
cd website-frontend
Be sure that Node.js >= 23
is installed.
Install all dependencies:
npm install
A development build can be performed automatically as files change via:
npm run dev
A production build can be performed manually via:
npm run build
A lint for all JavaScript files via:
npm run lint
The test suite can be ran manually via:
npm test
… or as files are changed via:
npm run test:watch
Deployment will be performed automatically when pushing/merging to the "main" branch.
- Remove comments and TODOs.
- Add a--simple math or honeypot--captcha to the contact form or switch to JS submission to prevent any abuse from bots.
- Use GitHub Packages instead of private repository for
website-projectile-pixels
. - Switch from Nunjucks to JSX (or TSX) when it supports front matter.
Move blog posttitle
s from their front matter to#
header when possible.- Move
title
concatenations fromindex
layout to their respective chained layouts' front matter when possible. - Remove
build:clean:post
npm script when possible. - Add print CSS; maybe use
@media print {}
. - Try using
display: grid
instead offlex
because it was blockingcontainer-type
. - Add
@container
query to remove blog sidebar when too narrow (primarily for user-set larger fonts). - Add
site.version
to styles.css and scripts.js. - Try using
parcelesbuild or Vite instead of webpack. - Try element-ready again when possible: sindresorhus/element-ready#52.
- Clean up text effects suffering from mattboldt/typed.js#624.
- Add HTML and [sitemap] XML validator to build--
npm run validate:html
,npm run validate:sitemap
,npm test
(runs both). - Inline code demos with some widget.
- Fix
<figcaption>
issue. Blog archives.- Exclude atom/rss feed from sitemap: 11ty/eleventy-plugin-rss#62
- Make tags list in content/blog/category.njk dynamic somehow and strip the "blog-category-" prefix from generated output: