perchristianberg.com
October 27, 2025 ยท View on GitHub
Website featuring Per Christian Berg, a musician in many genres and disciplines.
Developer goals
My goals with this website was to:
-
Create a more or less vanilla website using only HTML (handlebars in this case, DRY and all that), CSS and javascript. No frameworks or fancy reacts, or vues.
-
I chose
webpackas my build tool, and that was the second goal. Get to grips withwebpack. I've been using it for a long time but only through different added layers built on top, or indirectly. -
I wanted to learn tailwind, seemed like an intresting library, and a perfect fit for a project like this.
Installation
Clone this repository and run pnpm install
# Https
git clone https://github.com/roosta/perchristianberg.com
# Or using ssh
git clone git@github.com:roosta/perchristianberg.com.git
cd perchristianberg.com && pnpm install
Developing
To start a server that will host a live reload serve of the page:
pnpm start
The dev config will try to open google-chrome-unstable with
a forced device scale factor due to my personal screen setup, and will webpack
warn about this. Can be ignored, or changed.
Deploying
Included in the repo is a Dockerfile, you could use that to deploy the app with nginx. I personally use Dockerfiles and dokku setup on a digital ocean droplet, but you can just run
pnpm run dist
to have the website compiled to the ./dist folder, then deploy however you
like.
Assets
The images used for the carousel is images.json, and there are some images hardcoded into the HTML. If you are forking this project for whatever reason, these assets are not included in the GPL license and are not free to use, and are under different licenses.
License
Copyright (c) 2021 Daniel Berg
Source code distributed under GNU General Public License v3.0 or later.
Copyright (c) 2021 for original creative works and images featured on perchristianberg.com are held by Per Christian Berg.