# Systems Obscure [![Build Status](https://forgejo.systemsobscure.net/thomasabishop/systems-obscure/badges/workflows/deploy.svg)](https://forgejo.systemsobscure.net/thomasabishop/systems-obscure/actions) > My personal blog at > [https://systemsobscure.net](https://www.systemsobscure.net) ## Build ```sh 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. I still use Vite's native `esbuild` for HMR transpilation in development. ## Scripts ### Generate post index ```sh npm run build:posts ``` This runs `scripts/generate-post-index.js` which reads all raw Markdown posts in `/posts` and parses the body content and YAML front-matter. It then writes this data to `public/post-index.json` which is read by the React application at runtime.