This is the source code of https://martijnhols.nl, the website for my personal company from which I do freelance work (among other things). This site is greatly over-engineered for the fun of it.
Clone the repository, enable pnpm with corepack enable, and run pnpm install
in the root to install the dependencies. The pnpm version is pinned in
package.json.
Since this is a small project, the folder structure is minimal.
componentsThis folder contains the different components that we may use multiple times in other components, slices or pages. Each file should generally only contain a single component.pagesThis is a special Next.js folder (docs). Any components added here will automatically be available as routes. Only use for pages.publicStatic content that is served from the root (/).themeThis folder contains theming constants for the app.typesCustom TypeScript type definitions.utilsUtility functions that may be used across the app. Each file should generally only have a single purpose.
There are several things I am considering improving for this app, such as:
- Cypress. I am a big fan of Cypress E2E testing. While it would be overkill for this site, it would be a good opportunity to show off and polish my usual implementation.
- Add a page with local town names for Google indexing so I'm findable for "react developer amersfoort" etc (veenendaal, rhenen)