chore: initial commit

This commit is contained in:
Jake Hamilton 2024-04-29 10:34:05 -07:00
commit d697f2daf3
Signed by untrusted user: jakehamilton
GPG key ID: 9762169A1B35EA68
25 changed files with 8639 additions and 0 deletions

24
.gitignore vendored Normal file
View file

@ -0,0 +1,24 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# jetbrains setting folder
.idea/

4
.vscode/extensions.json vendored Normal file
View file

@ -0,0 +1,4 @@
{
"recommendations": ["astro-build.astro-vscode"],
"unwantedRecommendations": []
}

11
.vscode/launch.json vendored Normal file
View file

@ -0,0 +1,11 @@
{
"version": "0.2.0",
"configurations": [
{
"command": "./node_modules/.bin/astro dev",
"name": "Development server",
"request": "launch",
"type": "node-terminal"
}
]
}

54
README.md Normal file
View file

@ -0,0 +1,54 @@
# Astro Starter Kit: Basics
```sh
npm create astro@latest -- --template basics
```
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/basics)
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/basics)
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/basics/devcontainer.json)
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
![just-the-basics](https://github.com/withastro/astro/assets/2244813/a0a5533c-a856-4198-8470-2d67b1d7c554)
## 🚀 Project Structure
Inside of your Astro project, you'll see the following folders and files:
```text
/
├── public/
│ └── favicon.svg
├── src/
│ ├── components/
│ │ └── Card.astro
│ ├── layouts/
│ │ └── Layout.astro
│ └── pages/
│ └── index.astro
└── package.json
```
Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
Any static assets, like images, can be placed in the `public/` directory.
## 🧞 Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
| :------------------------ | :----------------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:4321` |
| `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying |
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
| `npm run astro -- --help` | Get help using the Astro CLI |
## 👀 Want to learn more?
Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).

9
astro.config.mjs Normal file
View file

@ -0,0 +1,9 @@
import { defineConfig } from 'astro/config';
import tailwind from "@astrojs/tailwind";
import react from "@astrojs/react";
// https://astro.build/config
export default defineConfig({
integrations: [tailwind(), react()]
});

134
flake.lock Normal file
View file

@ -0,0 +1,134 @@
{
"nodes": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils-plus": {
"inputs": {
"flake-utils": "flake-utils"
},
"locked": {
"lastModified": 1696331477,
"narHash": "sha256-YkbRa/1wQWdWkVJ01JvV+75KIdM37UErqKgTf0L54Fk=",
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"rev": "bfc53579db89de750b25b0c5e7af299e0c06d7d3",
"type": "github"
},
"original": {
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1714272655,
"narHash": "sha256-3/ghIWCve93ngkx5eNPdHIKJP/pMzSr5Wc4rNKE1wOc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "12430e43bd9b81a6b4e79e64f87c624ade701eaf",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"snowfall-lib": "snowfall-lib",
"unstable": "unstable"
}
},
"snowfall-lib": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils-plus": "flake-utils-plus",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1696432959,
"narHash": "sha256-oJQZv2MYyJaVyVJY5IeevzqpGvMGKu5pZcCCJvb+xjc=",
"owner": "snowfallorg",
"repo": "lib",
"rev": "92803a029b5314d4436a8d9311d8707b71d9f0b6",
"type": "github"
},
"original": {
"owner": "snowfallorg",
"repo": "lib",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"unstable": {
"locked": {
"lastModified": 1714253743,
"narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

27
flake.nix Normal file
View file

@ -0,0 +1,27 @@
{
description = "aux website";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
snowfall-lib = {
url = "github:snowfallorg/lib";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs:
inputs.snowfall-lib.mkFlake {
inherit inputs;
src = ./.;
alias.packages.default = "website";
snowfall = {
root = ./nix;
namespace = "aux";
};
};
}

View file

@ -0,0 +1,24 @@
{
lib,
writeScriptBin,
buildNpmPackage,
...
}: let
json = lib.importJSON (lib.snowfall.fs.get-file "package.json");
in
buildNpmPackage {
pname = "aux-website";
inherit (json) version;
src = lib.snowfall.fs.get-file "/";
npmDepsHash = "sha256-qvpwlPY0dFZX0VAnEdNsJxK5W8MU1twzaShUPyqbpF4=";
npmFlags = ["--ignore-scripts"];
installPhase = ''
mkdir -p $out
cp -r ./dist/* $out/
'';
}

View file

@ -0,0 +1,8 @@
{
mkShell,
nodejs,
bun,
}:
mkShell {
packages = [nodejs bun];
}

7281
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

24
package.json Normal file
View file

@ -0,0 +1,24 @@
{
"name": "website",
"type": "module",
"version": "0.0.1",
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro check && astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"@astrojs/check": "^0.5.10",
"@astrojs/react": "^3.3.1",
"@astrojs/tailwind": "^5.1.0",
"@types/react": "^18.3.1",
"@types/react-dom": "^18.3.0",
"astro": "^4.7.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"tailwindcss": "^3.4.3",
"typescript": "^5.4.5"
}
}

218
public/aux.svg Normal file
View file

@ -0,0 +1,218 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="500"
height="500"
viewBox="0 0 132.29166 132.29167"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="aux.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="false"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="1.0569912"
inkscape:cx="-133.87056"
inkscape:cy="271.99849"
inkscape:window-width="2776"
inkscape:window-height="1404"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer4"
showguides="true" />
<defs
id="defs1">
<linearGradient
id="linearGradient25"
inkscape:collect="always">
<stop
style="stop-color:#eceff4;stop-opacity:1;"
offset="0"
id="stop25" />
<stop
style="stop-color:#77808d;stop-opacity:1;"
offset="1"
id="stop26" />
</linearGradient>
<inkscape:path-effect
effect="perspective-envelope"
up_left_point="42.094218,26.261607"
up_right_point="89.416542,29.08246"
down_left_point="27.882612,28.306134"
down_right_point="77.296508,31.858256"
id="path-effect17"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="false"
overflow_perspective="false" />
<inkscape:path-effect
effect="perspective-envelope"
up_left_point="89.416542,70.262396"
up_right_point="101.53658,64.65997"
down_left_point="89.416542,103.46845"
down_right_point="101.53658,92.718766"
id="path-effect16"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="false"
overflow_perspective="false" />
<inkscape:path-effect
effect="perspective-envelope"
up_left_point="89.416542,60.657256"
up_right_point="101.53658,64.767037"
down_left_point="83.356525,66.145832"
down_right_point="89.416542,75.833993"
id="path-effect15"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="false"
overflow_perspective="false" />
<inkscape:path-effect
effect="perspective-envelope"
up_left_point="77.296508,31.858256"
up_right_point="89.416542,29.08246"
down_left_point="77.296508,114.21813"
down_right_point="89.416542,103.46845"
id="path-effect14"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="false"
overflow_perspective="false" />
<inkscape:path-effect
effect="perspective-envelope"
up_left_point="25.962329,28.470818"
up_right_point="75.376225,32.02294"
down_left_point="25.962329,95.161217"
down_right_point="75.376225,114.38281"
id="path-effect13"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="false"
overflow_perspective="false" />
<inkscape:path-effect
effect="perspective-envelope"
up_left_point="119.7201,50.130834"
up_right_point="136.44687,51.333237"
down_left_point="119.7201,72.705762"
down_right_point="136.44687,79.212335"
id="path-effect12"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="false"
overflow_perspective="false" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="-182.42647 : 119.10362 : 1"
inkscape:vp_y="0 : 2954.1799 : 0"
inkscape:vp_z="202.48071 : 129.10378 : 1"
inkscape:persp3d-origin="-35.187505 : -13.216794 : 1"
id="perspective3" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient25"
id="linearGradient26"
x1="27.882612"
y1="60.584068"
x2="203.06371"
y2="122.20982"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.2254343,0,0,1.2254343,-16.048072,-18.993138)" />
</defs>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="back"
style="display:inline;opacity:1">
<path
style="display:inline;opacity:1;fill:none;stroke:#2e3440;stroke-width:3.09639;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m 104.37586,87.560277 c 0,0 8.09871,0.883586 10.54531,9.15154 1.38588,4.909313 1.51131,11.266493 -5.01041,15.872393 -4.00274,3.03892 -9.45845,2.43784 -13.501685,0.45532"
id="path21-1"
sodipodi:nodetypes="cccc"
inkscape:label="cable_back" />
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="trace"
style="display:inline;opacity:1">
<path
style="opacity:1;fill:url(#linearGradient26);stroke-width:3.09639;stroke-linecap:round;stroke-linejoin:round"
d="m 39.025507,13.396767 48.281365,2.878021 c 3.711859,0.353201 6.219154,1.81161 6.219154,7.806152 v 26.166651 c 0.108459,5.006243 1.28555,5.963351 2.694393,6.782949 l 5.001741,3.14131 c 3.19402,2.255358 3.03661,4.730486 3.03661,6.877426 l 0.11709,24.889476 c 0,5.791245 -1.57996,7.518222 -4.3522,10.143798 l -14.4162,12.75593 c -4.613172,4.09678 -7.41796,5.86961 -16.8017,2.29665 L 23.76933,99.616328 C 18.614687,97.783063 18.115648,93.269186 18.120238,89.961413 V 20.535911 c 0.03862,-4.900201 1.807041,-4.969176 3.712022,-5.375762 l 11.233967,-1.616156 c 2.72269,-0.464622 3.127028,-0.316055 5.95928,-0.147226 z"
id="path17"
sodipodi:nodetypes="ccccccccccccccccc"
inkscape:label="shell" />
<path
style="fill:#2e3440;stroke-width:3.09639;stroke-linecap:round;stroke-linejoin:round"
d="m 24.544789,23.293448 44.847798,4.435718 c 1.916019,0.247654 3.38356,0.926396 3.401686,4.945175 v 50.993421 c 2.8e-5,3.950891 -1.123711,4.293068 -3.401686,3.616644 L 24.544789,74.204716 C 22.672358,73.703001 22.108642,72.42745 22.108642,69.633252 V 26.913464 c -0.0044,-2.923044 0.590047,-3.819356 2.436147,-3.620016 z"
id="path18"
sodipodi:nodetypes="ccccccccc"
inkscape:label="screen" />
<path
style="fill:#2e3440;stroke-width:3.09639;stroke-linecap:round;stroke-linejoin:round"
d="m 53.12288,90.389231 18.240352,5.808873 c 0.798183,0.285074 0.858384,0.755481 0.854266,1.422103 v 2.722693 c 0.02759,0.86164 -0.434796,1.01376 -0.854266,0.86424 L 53.12288,95.104445 c -0.424855,-0.159584 -0.754097,-0.431602 -0.75297,-1.32877 v -2.54939 c 0.02124,-0.344058 0.05106,-1.031159 0.75297,-0.837054 z"
id="path19"
sodipodi:nodetypes="ccccccccc"
inkscape:label="disk" />
<path
style="fill:#2e3440;stroke-width:3.09639;stroke-linecap:round;stroke-linejoin:round"
d="m 49.216427,89.340871 c -0.731617,-0.07699 -1.384065,0.92147 -1.462356,1.65295 -0.106061,0.990993 0.471715,2.498645 1.462356,2.60794 0.733313,0.0809 1.397711,-0.91463 1.477313,-1.648086 0.107948,-0.99467 -0.482297,-2.508096 -1.477313,-2.612804 z"
id="path20"
sodipodi:nodetypes="sssss"
inkscape:label="power" />
<path
style="display:inline;fill:none;stroke:#2e3440;stroke-width:3.09639;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m 109.91076,112.58421 c -3.86125,3.16991 -9.19482,2.56712 -13.501685,0.45532 -4.306881,-2.1118 -7.200283,-5.39072 -7.432017,-11.78184 -0.231733,-6.391116 6.282906,-10.111269 7.541776,-16.461178 1.028721,-5.189087 -3.392701,-9.452146 -3.392701,-9.452146"
id="path21"
sodipodi:nodetypes="czzsc"
inkscape:label="cable_front" />
<g
id="g26"
style="fill:#2e3440;stroke:#2e3440"
transform="matrix(1.2254344,0,0,1.2254344,-16.048072,-18.993138)">
<path
style="fill:#2e3440;stroke:#2e3440;stroke-width:2.52677;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m 82.421173,74.62589 5.801059,-4.823746 c 0,0 3.767634,4.823167 0.867981,7.180768 -2.899653,2.357601 -6.66904,-2.357022 -6.66904,-2.357022 z"
id="path23"
sodipodi:nodetypes="cczc"
inkscape:label="plug" />
<path
style="fill:#2e3440;stroke:#2e3440;stroke-width:2.52677;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="M 84.070924,73.254075 82.134023,70.975187"
id="path24"
inkscape:label="prong"
sodipodi:nodetypes="cc" />
<path
style="fill:#2e3440;stroke:#2e3440;stroke-width:2.52677;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="M 86.755752,71.021564 84.84774,68.793079"
id="path25"
inkscape:label="prong"
sodipodi:nodetypes="cc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.2 KiB

259
public/favicon.svg Normal file
View file

@ -0,0 +1,259 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="500"
height="500"
viewBox="0 0 132.29166 132.29167"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="favicon.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="false"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="1.0569912"
inkscape:cx="-133.87056"
inkscape:cy="300.38093"
inkscape:window-width="2776"
inkscape:window-height="1404"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1"
showguides="true" />
<defs
id="defs1">
<linearGradient
id="linearGradient2"
inkscape:collect="always">
<stop
style="stop-color:#242424;stop-opacity:1;"
offset="0"
id="stop2" />
<stop
style="stop-color:#242424;stop-opacity:1;"
offset="1"
id="stop3" />
</linearGradient>
<linearGradient
id="linearGradient25"
inkscape:collect="always">
<stop
style="stop-color:#eceff4;stop-opacity:1;"
offset="0"
id="stop25" />
<stop
style="stop-color:#77808d;stop-opacity:1;"
offset="1"
id="stop26" />
</linearGradient>
<inkscape:path-effect
effect="perspective-envelope"
up_left_point="42.094218,26.261607"
up_right_point="89.416542,29.08246"
down_left_point="27.882612,28.306134"
down_right_point="77.296508,31.858256"
id="path-effect17"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="false"
overflow_perspective="false" />
<inkscape:path-effect
effect="perspective-envelope"
up_left_point="89.416542,70.262396"
up_right_point="101.53658,64.65997"
down_left_point="89.416542,103.46845"
down_right_point="101.53658,92.718766"
id="path-effect16"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="false"
overflow_perspective="false" />
<inkscape:path-effect
effect="perspective-envelope"
up_left_point="89.416542,60.657256"
up_right_point="101.53658,64.767037"
down_left_point="83.356525,66.145832"
down_right_point="89.416542,75.833993"
id="path-effect15"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="false"
overflow_perspective="false" />
<inkscape:path-effect
effect="perspective-envelope"
up_left_point="77.296508,31.858256"
up_right_point="89.416542,29.08246"
down_left_point="77.296508,114.21813"
down_right_point="89.416542,103.46845"
id="path-effect14"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="false"
overflow_perspective="false" />
<inkscape:path-effect
effect="perspective-envelope"
up_left_point="25.962329,28.470818"
up_right_point="75.376225,32.02294"
down_left_point="25.962329,95.161217"
down_right_point="75.376225,114.38281"
id="path-effect13"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="false"
overflow_perspective="false" />
<inkscape:path-effect
effect="perspective-envelope"
up_left_point="119.7201,50.130834"
up_right_point="136.44687,51.333237"
down_left_point="119.7201,72.705762"
down_right_point="136.44687,79.212335"
id="path-effect12"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="false"
overflow_perspective="false" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="-182.42647 : 119.10362 : 1"
inkscape:vp_y="0 : 2954.1799 : 0"
inkscape:vp_z="202.48071 : 129.10378 : 1"
inkscape:persp3d-origin="-35.187505 : -13.216794 : 1"
id="perspective3" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient25"
id="linearGradient26"
x1="27.882612"
y1="60.584068"
x2="203.06371"
y2="122.20982"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.98419911,0,0,0.98419911,4.0659981,-2.2329462)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2"
id="linearGradient3"
x1="66.145836"
y1="132.29167"
x2="66.145836"
y2="0"
gradientUnits="userSpaceOnUse" />
</defs>
<rect
style="display:inline;opacity:1;fill:url(#linearGradient3);fill-opacity:1;stroke:none;stroke-width:2.52677;stroke-linecap:round;stroke-linejoin:round"
id="rect2"
width="132.29167"
height="132.29167"
x="0"
y="0"
rx="23.649122"
ry="23.649122" />
<ellipse
style="display:inline;opacity:1;fill:#b48ead;stroke:none;stroke-width:2.96592;stroke-linecap:round;stroke-linejoin:round"
id="path1"
cx="50.005844"
cy="96.093887"
rx="57.690987"
ry="32.789791"
transform="matrix(0.93852099,-0.34522214,0.22114536,0.97524085,0,0)" />
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="back"
style="display:inline;opacity:1" />
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="trace"
style="display:inline;opacity:1">
<g
id="g1"
transform="translate(-1.2460925)">
<path
style="display:inline;opacity:1;fill:none;stroke:#2e3440;stroke-width:2.48684;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m 100.78365,83.344695 c 0,0 6.50442,0.709646 8.46939,7.349996 1.11306,3.942881 1.2138,9.048606 -4.02407,12.747799 -3.21478,2.44069 -7.596493,1.95794 -10.843789,0.36569"
id="path21-1"
sodipodi:nodetypes="cccc"
inkscape:label="cable_back" />
<path
style="opacity:1;fill:url(#linearGradient26);stroke-width:2.48684;stroke-linecap:round;stroke-linejoin:round"
d="m 48.297964,23.780783 38.776845,2.311463 c 2.981154,0.283671 4.994871,1.454982 4.994871,6.269457 v 21.015565 c 0.08711,4.02073 1.03248,4.789424 2.163983,5.447679 l 4.017114,2.522921 c 2.565253,1.811376 2.438833,3.799258 2.438833,5.523558 l 0.094,19.989811 c 0,4.651198 -1.268935,6.038208 -3.49544,8.146921 L 85.709938,105.25299 c -3.705037,3.29031 -5.957683,4.71414 -13.49417,1.84454 L 36.04507,93.027429 C 31.905154,91.555055 31.504354,87.929766 31.508041,85.273151 V 29.514537 c 0.03102,-3.935562 1.451312,-3.990959 2.981285,-4.317506 l 9.022483,-1.298004 c 2.18671,-0.373158 2.511451,-0.253838 4.786155,-0.118244 z"
id="path17"
sodipodi:nodetypes="ccccccccccccccccc"
inkscape:label="shell" />
<path
style="fill:#2e3440;stroke-width:2.48684;stroke-linecap:round;stroke-linejoin:round"
d="m 36.667875,31.729234 36.0192,3.562516 c 1.538837,0.198902 2.717482,0.744029 2.73204,3.971684 v 40.955014 c 2.3e-5,3.173131 -0.902501,3.447948 -2.73204,2.904683 L 36.667875,72.618268 C 35.164045,72.215319 34.7113,71.190869 34.7113,68.946728 V 34.636625 c -0.0035,-2.347623 0.473892,-3.067489 1.956575,-2.907391 z"
id="path18"
sodipodi:nodetypes="ccccccccc"
inkscape:label="screen" />
<path
style="fill:#2e3440;stroke-width:2.48684;stroke-linecap:round;stroke-linejoin:round"
d="m 59.620172,85.61675 14.649613,4.665356 c 0.641055,0.228955 0.689405,0.606759 0.686097,1.142152 v 2.186712 c 0.02216,0.692021 -0.349203,0.814195 -0.686097,0.694109 L 59.620172,89.403741 c -0.34122,-0.128168 -0.605648,-0.346638 -0.604743,-1.067192 v -2.047525 c 0.01706,-0.276328 0.04101,-0.828168 0.604743,-0.672274 z"
id="path19"
sodipodi:nodetypes="ccccccccc"
inkscape:label="disk" />
<path
style="fill:#2e3440;stroke-width:2.48684;stroke-linecap:round;stroke-linejoin:round"
d="m 56.482731,84.774767 c -0.587593,-0.06183 -1.111603,0.740072 -1.174481,1.327555 -0.08518,0.795909 0.378854,2.006769 1.174481,2.094549 0.588955,0.06497 1.122562,-0.734579 1.186493,-1.323649 0.0867,-0.798862 -0.387353,-2.01436 -1.186493,-2.098455 z"
id="path20"
sodipodi:nodetypes="sssss"
inkscape:label="power" />
<path
style="display:inline;fill:none;stroke:#2e3440;stroke-width:2.48684;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m 105.22897,103.44249 c -3.10114,2.54589 -7.38476,2.06177 -10.843789,0.36569 -3.459042,-1.69608 -5.782858,-4.329518 -5.968974,-9.462502 -0.186114,-5.132981 5.046073,-8.120796 6.057126,-13.220682 0.82621,-4.167579 -2.724825,-7.591426 -2.724825,-7.591426"
id="path21"
sodipodi:nodetypes="czzsc"
inkscape:label="cable_front" />
<g
id="g26"
style="fill:#2e3440;stroke:#2e3440"
transform="matrix(0.98419919,0,0,0.98419919,4.0659982,-2.2329462)">
<path
style="fill:#2e3440;stroke:#2e3440;stroke-width:2.52677;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m 82.421173,74.62589 5.801059,-4.823746 c 0,0 3.767634,4.823167 0.867981,7.180768 -2.899653,2.357601 -6.66904,-2.357022 -6.66904,-2.357022 z"
id="path23"
sodipodi:nodetypes="cczc"
inkscape:label="plug" />
<path
style="fill:#2e3440;stroke:#2e3440;stroke-width:2.52677;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="M 84.070924,73.254075 82.134023,70.975187"
id="path24"
inkscape:label="prong"
sodipodi:nodetypes="cc" />
<path
style="fill:#2e3440;stroke:#2e3440;stroke-width:2.52677;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="M 86.755752,71.021564 84.84774,68.793079"
id="path25"
inkscape:label="prong"
sodipodi:nodetypes="cc" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

1
result Symbolic link
View file

@ -0,0 +1 @@
/nix/store/3wwg63597p90v1rcnl4mgnx698f3l517-aux-website-0.0.1

61
src/components/Card.astro Normal file
View file

@ -0,0 +1,61 @@
---
interface Props {
title: string;
body: string;
href: string;
}
const { href, title, body } = Astro.props;
---
<li class="link-card">
<a href={href}>
<h2>
{title}
<span>&rarr;</span>
</h2>
<p>
{body}
</p>
</a>
</li>
<style>
.link-card {
list-style: none;
display: flex;
padding: 1px;
background-color: #23262d;
background-image: none;
background-size: 400%;
border-radius: 7px;
background-position: 100%;
transition: background-position 0.6s cubic-bezier(0.22, 1, 0.36, 1);
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}
.link-card > a {
width: 100%;
text-decoration: none;
line-height: 1.4;
padding: calc(1.5rem - 1px);
border-radius: 8px;
color: white;
background-color: #23262d;
opacity: 0.8;
}
h2 {
margin: 0;
font-size: 1.25rem;
transition: color 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
p {
margin-top: 0.5rem;
margin-bottom: 0;
}
.link-card:is(:hover, :focus-within) {
background-position: 0;
background-image: var(--accent-gradient);
}
.link-card:is(:hover, :focus-within) h2 {
color: rgb(var(--accent-light));
}
</style>

View file

@ -0,0 +1,85 @@
---
---
<section id="goals">
<h2 class="title">Goals</h2>
<ol>
<li class="goal">
<h3 class="name">Independent</h3>
<p class="description">
We will fork and maintain Nix, NixPkgs, and NixOS. Additional support
for projects such as Nix Darwin and Home Manager will be considered.
</p>
</li>
<li class="goal">
<h3 class="name">Governance</h3>
<p class="description">
A democratic model of governance with elected positions will be used to
manage the project. A steering committee will provide direction with
additional committees handling specific logistical tasks. Features or
individual projects will be owned by Special Interest Groups. SIGs will
collaborate within Working Groups to achieve their goals. Each committee
and group will have its goals, requirements, and management process
clearly defined.
</p>
</li>
<li class="goal">
<h3 class="name">Stabilization</h3>
<p class="description">
User-friendly features such as the Nix v3 CLI will be enabled by
default. Nix Flakes are used too heavily to remove or change and will
instead be stabilized as a v0 in its current state with any future work
being handled by a Special Interest Group.
</p>
</li>
<li class="goal">
<h3 class="name">Infrastructure</h3>
<p class="description">
We will build and maintain the tools and infrastructure necessary to
keep the ecosystem healthy, including Continuous Integration and Binary
Caching.
</p>
</li>
<li class="goal">
<h3 class="name">Education</h3>
<p class="description">
Unified documentation, tutorials, guides, and examples will provide a
better onboarding experience for newcomers and a faster iteration cycle
for experts.
</p>
</li>
</ol>
</section>
<style>
section {
max-width: 800px;
margin: 0 auto;
padding: 4rem 1rem;
padding-left: 2.5rem;
}
.title {
text-align: center;
font-size: 2rem;
font-weight: bold;
}
.section ol {
}
.goal {
margin-top: 2rem;
font-size: 1.5rem;
list-style-type: decimal;
}
.goal .name {
font-size: 1.5rem;
}
.goal .description {
font-size: 1rem;
}
</style>

View file

@ -0,0 +1,80 @@
---
interface Props {}
---
<header>
<div class="left">
<a href="https://aux.computer" class="brand">
<img class="icon" src="/aux.svg" />
<span class="title">aux.computer</span>
</a>
</div>
<div class="right">
<!-- TODO: Enable these once the pages are ready. -->
<!--
<nav>
<ul>
<li><a href="https://aux.computer/documentation">Documentation</a></li>
<li><a href="https://aux.computer/contribute">Contribute</a></li>
<li><a href="https://aux.computer/community">Community</a></li>
</ul>
</nav>
-->
</div>
</header>
<style>
header {
position: sticky;
display: flex;
justify-content: space-between;
top: 0;
background: rgb(var(--background));
padding: 0.5rem 0;
}
.left {
display: flex;
align-items: center;
padding-left: 0.5rem;
}
.left .brand {
display: flex;
align-items: center;
font-size: 1.5rem;
}
.left .brand .title {
padding-left: 0.5rem;
}
.icon {
width: 48px;
height: 48px;
}
.right {
display: flex;
justify-content: flex-end;
align-items: center;
padding-right: 1rem;
}
.right nav {
display: flex;
align-items: center;
}
.right nav ul {
display: flex;
list-style: none;
}
.right nav ul li {
}
.right nav ul li:not(:last-child) {
margin-right: 1rem;
}
</style>

64
src/components/Hero.astro Normal file
View file

@ -0,0 +1,64 @@
---
---
<div class="hero">
<div class="content">
<div class="icon">
<img src="/aux.svg" alt="" />
</div>
<h1 class="title">aux.computer</h1>
<div class="description">An alternative to the Nix ecosystem</div>
</div>
</div>
<style>
.hero {
display: flex;
justify-content: center;
max-width: 600px;
margin: 0 auto;
}
.content {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
padding: 2rem;
}
.content .icon {
position: relative;
}
.content .icon::before {
content: "";
display: block;
position: absolute;
width: 100%;
height: 60%;
background: rgb(var(--accent));
border-radius: 50%;
bottom: 0;
left: 0;
transform: rotateZ(-5deg) skewX(-8deg) skewY(-8deg);
z-index: -1;
}
.content .icon img {
width: 250px;
height: 250px;
}
.content .title {
padding-top: 1.5rem;
text-align: center;
font-size: 2rem;
}
.content .description {
text-align: center;
font-size: 1rem;
}
</style>

View file

@ -0,0 +1,134 @@
---
---
<section id="roadmap">
<h2 class="title">Roadmap</h2>
<ol>
<li class="phase">
<h3 class="name">Soft Fork</h3>
<p class="description">
This initial phase will involve an ad-hoc management structure due to
its bootstrapping nature. As such, the project's stated Values, Goals,
and Roadmap serve to keep all contributors aligned and safe knowing that
the work they have committed to will not change.
</p>
<p class="description">
The initial forking off of Nix and NixPkgs will be performed in this
phase and new contributors will be given roles for handling package
maintenance and pulling changes from upstream. We intend to move on from
this phase once enough contributors have joined for the project to be
capable of transitioning into a hard fork.
</p>
</li>
<li class="phase">
<h3 class="name">Hard Fork</h3>
<p class="description">
Like the Soft Fork phase, management structure will still be ad-hoc, but
Committees, Special Interest Groups, and Working Groups may start to be
formed. Due to there being necessary bootstrapping steps for each,
elections will only begin once the Alignment phase has been reached.
</p>
<p class="description">
At this point we will have enough contributors to safely maintain
NixPkgs (or a reasonable subset) and Nix ourselves. We will begin
allowing divergence from the upstream repository and changes to the
repository structure to improve development can be introduced.
</p>
<p class="description">
An initial release of the packages repository will be created and
migration from `nix` to `aux` naming will begin to reduce confusion and
errors now that the two projects have diverged.
</p>
</li>
<li class="phase">
<h3 class="name">Organization</h3>
<p class="description">
The packages repository will have sets extracted to allow for Special
Interest Groups to more easily manage their lifecycles. For example,
`pythonPackages` will be moved to a separate repository that will be the
reponsibility of a Python SIG if there is interest.
</p>
<p class="description">
Flakes will be standardized with its current implementation as a v0.
While not ideal, the feature is used far too widely to be changed or
removed without breaking the ecosystem. Instead, this v0 implementation
will be enabled and future work for Flakes that addresses its
shortcomings may be handled by a Flakes SIG.
</p>
<p class="description">
The `aux` CLI will be modified to provide more ergonomic management of
packages and systems. Additional subcommands such as `aux system switch`
and `aux system build` will be added to make onboarding and ongoing
maintenance easier.
</p>
</li>
<li class="phase">
<h3 class="name">Infrastructure</h3>
<p class="description">
Now that the project has significantly diverged from upstream, we will
need to provide our own Continuous Integration and Binary Cache
services. Existing governance structures will be used to manage the
adoption of these technologies.
</p>
<p class="description">
Documentation will be included as a part of the Continuous Integration
process and will have Continuous Deployment configured to keep it up to
date, making it easier for contributors to create educational materials.
</p>
<p class="description">
Search infrastructure for packages and options will also be created.
</p>
</li>
<li class="phase">
<h3 class="name">Alignment</h3>
<p class="description">
By this point, we've done it. We have created a sustainable, independent
fork of the Nix ecosystem. Now that the initial work has been completed
we will begin the governance rotation process with our first elections
and education as to how project governance works.
</p>
<p class="description">
Documentation, project branding, and packages will be polished and
presented as a fully stable release. From this point forward the
Steering Committee will be managing the creation of Special Interest
Groups and other necessary Committees. All enhancements will be
suggested in Aux Enhancement Proposals which encourage existing SIGs to
implement features or encourage the formation of a new SIG to be created
for such a purpose.
</p>
</li>
</ol>
</section>
<style>
section {
max-width: 800px;
margin: 0 auto;
padding: 4rem 1rem;
padding-left: 2.5rem;
}
.title {
text-align: center;
font-size: 2rem;
font-weight: bold;
}
.section ol {
}
.phase {
margin-top: 2rem;
font-size: 1.5rem;
list-style-type: decimal;
}
.phase .name {
font-size: 1.5rem;
}
.phase .description {
font-size: 1rem;
}
</style>

View file

@ -0,0 +1,63 @@
---
---
<section id="values">
<h2 class="title">Values</h2>
<div class="value">
<h3 class="name">Representation</h3>
<p class="description">
Contributors should have their views represented and organizational
structure should be established democratically.
</p>
</div>
<div class="value">
<h3 class="name">Kindness</h3>
<p class="description">
The project should be welcoming and a safe place for people to
participate.
</p>
</div>
<div class="value">
<h3 class="name">Collaboration</h3>
<p class="description">
Communication and cooperation should be encouraged.
</p>
</div>
<div class="value">
<h3 class="name">Sustainability</h3>
<p class="description">
Workload, finance, scope, and burnout should all be considered carefully
to ensure that the project is stable.
</p>
</div>
<div class="value">
<h3 class="name">Accessibility</h3>
<p class="description">
Elitism is unwelcome, our knowledge is here to be shared and we should
provide the tools to help everyone succeed and learn.
</p>
</div>
</section>
<style>
section {
max-width: 800px;
margin: 0 auto;
padding: 4rem 1rem;
}
.title {
text-align: center;
font-size: 2rem;
font-weight: bold;
}
.value {
margin-top: 2rem;
}
.value .name {
font-size: 1.5rem;
}
</style>

1
src/env.d.ts vendored Normal file
View file

@ -0,0 +1 @@
/// <reference types="astro/client" />

38
src/layouts/Layout.astro Normal file
View file

@ -0,0 +1,38 @@
---
interface Props {
title: string;
}
const { title } = Astro.props;
---
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="description" content="An alternative to the Nix ecosystem." />
<meta name="viewport" content="width=device-width" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="generator" content={Astro.generator} />
<title>{title}</title>
</head>
<body>
<slot />
</body>
</html>
<style is:global>
:root {
--accent: 136, 58, 234;
--background: 24, 24, 24;
--background-light: 34, 34, 38;
--text: 255, 255, 255;
}
html {
font-size: 16px;
font-family: system-ui, sans-serif;
color: rgb(var(--text));
background: rgb(var(--background));
background-size: 224px;
}
</style>

20
src/pages/index.astro Normal file
View file

@ -0,0 +1,20 @@
---
import Layout from "../layouts/Layout.astro";
import Header from "../components/Header.astro";
import Hero from "../components/Hero.astro";
import Values from "../components/Values.astro";
import Goals from "../components/Goals.astro";
import Roadmap from "../components/Roadmap.astro";
---
<Layout title="aux.computer">
<main>
<Header />
<Hero />
<Values />
<Goals />
<Roadmap />
</main>
</Layout>
<style></style>

8
tailwind.config.mjs Normal file
View file

@ -0,0 +1,8 @@
/** @type {import('tailwindcss').Config} */
export default {
content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'],
theme: {
extend: {},
},
plugins: [],
}

7
tsconfig.json Normal file
View file

@ -0,0 +1,7 @@
{
"extends": "astro/tsconfigs/strict",
"compilerOptions": {
"jsx": "react-jsx",
"jsxImportSource": "react"
}
}