Monorepo

Stack

The main technologies I use to build this project are HTML, CSS, Svelte (with TypeScript), and Markdown. There are also some WebGL shaders, that I add as I continue to learn, and I might add a backend at some point.

Packages Overview

The repository is organized into three workspaces (these are top-level directories in the repository):

  • apps : contains client facing code, organized by project. It contains apps/doc which is this site!
  • infra : contains infrastructure code. This is WIP and in private repos for the moment
  • packages : contains UI, web graphics, logic and experiments libraries, as well as common config

You can learn more about individual packages in the Packages section.

Requirements

  • Node.js
  • pnpm and Turborepo to manage the packages and builds
  • Svelte, recently upgraded to Svelte 5 that I use to build UI components
  • SvelteKit, which helps me develop, build and package my sites or apps
  • Verdaccio, which allows me to create a private registry and use these packages in other projects

The initial guide I used for this setup was Turborepo’s workspaces conventions and evolves as necessary.

How to ...

Use a private NPM Registry with Verdaccio

  • Install verdaccio: Verdaccio Doc - Installation

  • Launch the private registry with the command: verdaccio

  • To publish a package to the private registry, run the following command in the package’s root directory:

    pnpm publish --registry http://localhost:4873
  • Use the package in another repository that has access to the private registry:

    pnpm i your-package --registry http://localhost:4873

WIP

🚧 These items are work in progress

  • Testing
  • Workflow Tools
  • Infrastructure and Backend I’m exploring backend technologies and architecture, but this site does not use a backend server besides what is provided by SvelteKit