https://github.com/sjviklabs/sjviklabs.com
SJVIK Labs public landing page (sjviklabs.com)
https://github.com/sjviklabs/sjviklabs.com
astro cloudflare-pages cybersecurity homelab landing-page sjvik-labs
Last synced: 27 days ago
JSON representation
SJVIK Labs public landing page (sjviklabs.com)
- Host: GitHub
- URL: https://github.com/sjviklabs/sjviklabs.com
- Owner: sjviklabs
- License: mit
- Created: 2026-05-03T23:38:45.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-12T23:56:24.000Z (about 2 months ago)
- Last Synced: 2026-05-13T01:38:56.326Z (about 2 months ago)
- Topics: astro, cloudflare-pages, cybersecurity, homelab, landing-page, sjvik-labs
- Language: Astro
- Size: 255 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
**Tier:** Labs
# sjviklabs.com
The landing page for [SJVIK Labs](https://sjviklabs.com). My personal-but-production 3-node Proxmox cluster, the books I write about it, and the configs that back both. The lab side lives at [`sjviklabs/infra-docs`](https://github.com/sjviklabs/infra-docs).
## Stack
- [Astro 5](https://astro.build/) for a static site with no JS framework runtime
- SJVIK brand v2 tokens via `svik-theme-tokens.css`, Labs tier (``)
- Inter for display and body, JetBrains Mono for code and accents
- Cloudflare Pages auto-deploys from `main`
No JS dependencies past Astro itself. Motion is CSS-only (`scroll-timeline`, `view-timeline`) and respects `prefers-reduced-motion`. I didn't want a marketing site that runs hot on a phone.
## Develop
```bash
npm install
npm run dev # http://localhost:4321
```
## Build
```bash
npm run build # → ./dist
npm run preview # preview the built output
```
## Brand assets
- `public/brand/sjvik-labs-wordmark-{light,dark,deep}.svg` are the canonical wordmarks. Mirrored from the `SJVIK-LLC/Brand/` folder in my vault.
- `src/styles/svik-theme-tokens.css` holds the pinned theme tokens. Sage accent, OKLCH warm-ink palette.
To update either, pull from `/data/obsidian/Career/SJVIK-LLC/Standards/` and `/data/obsidian/Career/SJVIK-LLC/Brand/`. Those are the source of truth, not this repo.
## Deploy
Cloudflare Pages, connected to this repo. Push to `main` and it builds. Custom domain is `sjviklabs.com` plus `www.sjviklabs.com`.
## Quality gate (per `sjvik-labs-standard-v2.md` §8)
- [x] `svik-theme-tokens.css` imported, no re-declared color hex
- [x] AA contrast (4.5:1 body, 3:1 UI)
- [x] `prefers-reduced-motion: reduce` disables motion
- [x] Footer lockup present (`Footer.astro`)
- [x] README first line: `**Tier:** Labs`
- [x] No secrets in frontend files
## Sister repo
[sjviklabs/infra-docs](https://github.com/sjviklabs/infra-docs) for the actual lab documentation, change log, and handbook PDF source.