nixos-config/configs/home-manager/foo-dogsquared/files/homepage
2024-09-03 15:11:42 +08:00
..
assets users/foo-dogsquared/programs/browsers: init and set custom homepage 2024-09-03 15:11:42 +08:00
config/_default users/foo-dogsquared/programs/browsers: init and set custom homepage 2024-09-03 15:11:42 +08:00
data/foodogsquared-homepage users/foo-dogsquared/programs/browsers: init and set custom homepage 2024-09-03 15:11:42 +08:00
layouts users/foo-dogsquared/programs/browsers: init and set custom homepage 2024-09-03 15:11:42 +08:00
.gitignore users/foo-dogsquared/programs/browsers: init and set custom homepage 2024-09-03 15:11:42 +08:00
default.nix users/foo-dogsquared/programs/browsers: init and set custom homepage 2024-09-03 15:11:42 +08:00
go.mod users/foo-dogsquared/programs/browsers: init and set custom homepage 2024-09-03 15:11:42 +08:00
go.sum users/foo-dogsquared/programs/browsers: init and set custom homepage 2024-09-03 15:11:42 +08:00
Makefile users/foo-dogsquared/programs/browsers: init and set custom homepage 2024-09-03 15:11:42 +08:00
package.nix users/foo-dogsquared/programs/browsers: init and set custom homepage 2024-09-03 15:11:42 +08:00
README.adoc users/foo-dogsquared/programs/browsers: init and set custom homepage 2024-09-03 15:11:42 +08:00
shell.nix users/foo-dogsquared/programs/browsers: init and set custom homepage 2024-09-03 15:11:42 +08:00

Table of Contents

My custom homepage intended to be deployed alongside my home-manager configuration. In theory, you could deploy this outside of the home-manager config but thats on you (READ: anyone that is not foodogsquared) to figure out. It should be fairly easy to do that though since all you need is the following list of components to successfully build the website:

  • GNU Make for its build automation. This is structured in this way to make building consistent either with Nix and non-Nixd environments.

  • Hugo is the site generator mainly designed to be deployed with one binary.

  • Panapton to compile the stylesheet with my custom scheme. In place of this, you could use other Base16 builders but youll have to recreate the stylesheet template for that particular builder.

There are some design constraints when developing this website.

  • This homepage is pretty much designed to be completely possible to use entirely offline. As such, it has a design constraint of using less (zero as much as possible) remote resources such as a CDN. Usage of third-party libraries are fine as long as it is bundled nicely (well probably use something like Bun for this).

  • We cannot use anything within the site generator requiring a network access mostly because were relying on the Nix which has sandboxing by default including networking isolation. [1] As a neat side effect, it also strengthens the previous goal of keeping it as offline as possible.

Development

It is recommended to set up the development environment with Nix package manager. In case it isnt possible to use it, youll have to install the following tools.


1. While we can remove it ourselves, it isnt really good practice.