# Systems Obscure

> My personal blog at
> [https://systemsobscure.net](https://www.systemsobscure.net)

## Pre-build

```sh
npm run build:posts
```

Parse Markdown blog posts in `/posts` and generate JSON index which is used to
populate core content.

## Development server

```sh
npm run build:posts
npm run dev
```

## Build

```sh
npm run build:posts
npm run build
```

This runs `vite build` using [speedy web compiler](https://swc.rs/) for the
transpilation of TSX to JSX. I am using TypeScript so that I can use the
[shadcn](https://ui.shadcn.com/) component library however I don't actually care
about types in this project and all my components are written as JSX. SWC
transpiles very quickly without throwing TS warning and errors.

## Deploy

Deployment automated via
[Forgejo action](https://forgejo.org/docs/next/user/actions/reference/). See
[deploy.yml](https://forgejo.systemsobscure.net/thomasabishop/systems-obscure/src/branch/main/.forgejo/workflows/deploy.yaml).

Runs the build script, then transfers transpiled `dist/` directory to my
[Virtual Private Server](https://forgejo.systemsobscure.net/thomasabishop/self-host)
from where it is served at
[systemsobscure.blog](https://www.systemsobscure.blog).
