The official blog for PROGSU, newsletters, event recaps, technical writeups, and updates from Georgia State University's programming club.
PROGSU is Georgia State University's programming club. This blog is where we publish: member writeups, event recaps, technical deep-dives, and anything worth sharing with the GSU CS community. Signed, dated, free.
- Writeups: Technical posts from members
- Recaps: Event and meeting summaries
- Resources: Curated links, tools, and reading lists
- Updates: Club news and announcements
- Astro: Static site generator with server-side rendering
- Tailwind CSS: Utility-first styling
- MDX: Markdown with component support
- Vercel: Deployment and hosting
- Node.js 18 or higher
- npm
- Clone the repository:
git clone https://github.com/progsu-official/blog.git
cd blog- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser to
http://localhost:4321
npm run dev # Start development server with hot reload
npm run build # Build for production
npm run preview # Preview production build locally
npm run fmt # Format code with Prettierblog/
├── src/
│ ├── components/
│ │ ├── Navbar.astro # Site navigation
│ │ ├── Footer.astro # Site footer
│ │ ├── PostCard.astro # Post listing card
│ │ ├── Search.astro # Search modal
│ │ └── SearchBar.astro # Floating search bar
│ ├── content/
│ │ ├── config.ts # Content collection schema
│ │ └── posts/ # MDX blog posts
│ ├── layouts/
│ │ ├── Layout.astro # Base page layout
│ │ └── PostLayout.astro # Blog post layout
│ ├── pages/
│ │ ├── index.astro # Homepage (post listing)
│ │ └── posts/
│ │ └── [...slug].astro # Dynamic post route
│ ├── styles/
│ │ └── global.css # Global styles + Tailwind
│ └── consts.ts # Site config and nav links
├── public/ # Static assets
├── astro.config.mjs # Astro configuration
├── tailwind.config.mjs # Tailwind configuration
└── package.json
All club members are welcome to contribute, whether that's writing a new post, fixing a typo, or improving the site.
Posts are written in MDX and live in src/content/posts/. To add one:
- Create a new
.mdxfile insrc/content/posts/ - Add the required frontmatter:
---
title: "your post title"
date: 2026-01-01
author: "Your Name"
tags: ["tag1", "tag2"]
description: "a short description of the post."
draft: false
---- Write your post in Markdown below the frontmatter
- Submit a pull request
- Fork the repository on GitHub
- Clone your fork locally
- Create a feature branch:
git checkout -b post/your-post-title
- Write your post and preview locally with
npm run dev - Commit with a clear message:
git commit -m "add: your post title" - Push and open a pull request
- Join the PROGSU Discord for questions
- Open a GitHub issue for bugs or site feedback
- Reach out to a club officer for write access
Built with care by PROGSU. Everyone is welcome to contribute.