The source for pixelbrewer.dev, my personal corner of the internet.
PixelBrewer is where I write about software, share projects, document things I am learning, and keep a small gallery of life away from the keyboard.
- Writing — notes, articles, and things I learn along the way
- Projects — software and game development projects I am building
- About — a little about me and what I am interested in
- Gallery — kendo, skiing, coffee, cats, and other non-code things
The site is built with:
- Astro
- TypeScript
- Tailwind CSS
- Sass
- Astro Content Collections
- Markdown
The site is statically generated and served by Nginx on a DigitalOcean server.
The Astro application lives in the web directory.
.
├── .github/
│ └── workflows/
├── web/
│ ├── public/
│ ├── src/
│ ├── astro.config.mjs
│ ├── package.json
│ └── tsconfig.json
├── AGENTS.md
└── README.md
Clone the repository:
git clone https://github.com/PixelBrewer/pixel-brewer-studios.git
cd pixel-brewer-studios/webInstall dependencies:
npm installStart the Astro development server:
npm run devAstro will print the local development URL in the terminal.
Create a production build with:
npm run buildThe generated static site is written to:
web/dist/
To preview the production build locally:
npm run previewWhen using npm run preview, remember that Astro serves the most recent production build from dist. Run npm run build again after making changes if you want to preview the latest version.
Writing, projects, and gallery entries are managed through Astro Content Collections.
Content lives under:
web/src/content/
The site currently uses collections for:
writing/
projects/
gallery/
Writing and project content is primarily authored in Markdown and committed directly to Git.
My general writing workflow is intentionally simple:
Write → Commit → Push → Deploy
Pushes to main trigger the GitHub Actions deployment workflow.
The deployment process:
- Checks out the repository
- Installs the Node.js dependencies
- Builds the Astro site
- Connects to the production server over SSH
- Clears the previous static site files
- Deploys the contents of
web/dist/
The production site is served by Nginx from:
/var/www/pixelbrewer
You can visit PixelBrewer at:
PixelBrewer is the developer identity I use for my personal projects and writing.
The name combines two things I enjoy:
- Pixel — games, graphics, computers, and building things on a screen
- Brewer — coffee, tinkering, and the process of making something carefully
This site is intended to be less of a traditional portfolio and more of an ongoing record of the things I build, learn, and find interesting.