BSides312 is Chicago's Biggest Little Non-Profit Hacking & Information Security Conference.
This website has been rebuilt using modern web technologies:
- SvelteKit - Modern web framework
- TypeScript - Type safety and better developer experience
- Static Site Generation - Optimized for GitHub Pages
- Responsive Design - Mobile-first approach with Bootstrap
- Node.js 20+ - Required for SvelteKit and build tools
- npm - Package manager (comes with Node.js)
- Git - Version control
- Clone the repository:
git clone https://github.com/bsides312/bsides312.github.io.git
cd bsides312.github.io- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and visit:
http://localhost:5173
The development server supports:
- Hot Module Replacement (HMR)
- TypeScript compilation
- Automatic browser refresh on file changes
| Script | Description |
|---|---|
npm run dev |
Start development server with HMR |
npm run build |
Build for production |
npm run preview |
Preview production build locally |
npm run check |
Run TypeScript and Svelte checks |
npm run check:watch |
Run checks in watch mode |
npm run format |
Format code with Prettier |
npm run lint |
Check code formatting and run ESLint |
npm run serve |
Serve static files with Python |
npm run serve-alt |
Serve static files with Node.js |
This project uses several tools to maintain code quality:
- TypeScript - Type safety and better IntelliSense
- ESLint - Code linting with Svelte-specific rules
- Prettier - Code formatting with Svelte plugin
- Svelte Check - Svelte-specific type checking
Before committing, run:
npm run lint # Check formatting and linting
npm run check # Run type checking- Create a feature branch:
git checkout -b feature/your-feature-name- Make your changes and test locally:
npm run dev- Run quality checks:
npm run lint
npm run check- Build and test production version:
npm run build
npm run preview- Commit and push your changes:
git add .
git commit -m "feat: your feature description"
git push origin feature/your-feature-namenpm run buildThis will:
- Compile TypeScript to JavaScript
- Bundle and optimize all assets
- Generate a static site in the
build/directory - Optimize images and CSS
- Create service worker for caching (if configured)
The site automatically deploys to GitHub Pages when changes are pushed to the main branch via GitHub Actions.
- Custom Domain:
bsides312.org(configured via CNAME file) - Source: GitHub Actions workflow
- Build: Static site deployment
- SSL: Enabled via GitHub Pages
You can also deploy manually by running:
npm run build
# Then upload the contents of the build/ directory to your web server├── src/ # SvelteKit application source
│ ├── app.html # HTML template
│ ├── app.css # Global styles
│ ├── app.d.ts # TypeScript declarations
│ ├── lib/ # Shared components and utilities
│ │ ├── stores/ # Svelte stores for state management
│ │ │ ├── boardMembers.ts # Board member data
│ │ │ ├── faq.ts # FAQ data
│ │ │ └── sponsors.ts # Sponsor data
│ │ └── index.ts # Library exports
│ └── routes/ # SvelteKit routes (file-based routing)
│ ├── +layout.svelte # Root layout component
│ ├── +layout.ts # Layout load function
│ ├── +page.svelte # Homepage
│ ├── board/ # Board members page
│ ├── code-of-conduct/ # Code of conduct page
│ ├── previous-speakers/ # Previous speakers page
│ ├── privacy/ # Privacy policy page
│ ├── schedule/ # Schedule page
│ ├── speakers/ # Current speakers page
│ └── support/ # Support/sponsorship page
├── static/ # Static assets (served as-is)
│ ├── favicon.svg # Site favicon
│ └── assets/ # Images, CSS, JS, documents
│ ├── css/style.css # Main stylesheet
│ ├── js/main.js # Main JavaScript
│ ├── img/ # Images and graphics
│ └── docs/ # PDF documents
├── .github/workflows/ # GitHub Actions CI/CD
├── build/ # Production build output (generated)
├── node_modules/ # Dependencies (generated)
├── .eslintignore # ESLint ignore patterns
├── .gitignore # Git ignore patterns
├── .nojekyll # Disable Jekyll processing on GitHub Pages
├── .npmrc # npm configuration
├── .prettierignore # Prettier ignore patterns
├── .prettierrc # Prettier configuration
├── CNAME # Custom domain for GitHub Pages
├── eslint.config.js # ESLint configuration
├── package.json # Dependencies and scripts
├── README.md # This file
├── robots.txt # Search engine directives
├── svelte.config.js # SvelteKit configuration
├── tsconfig.json # TypeScript configuration
├── vite.config.js # Vite bundler configuration
└── vite.config.ts # TypeScript Vite config
src/routes/- Each directory becomes a route.+page.sveltefiles are page componentssrc/lib/- Reusable components, utilities, and storessrc/lib/stores/- Svelte stores for managing application statestatic/- Files served directly without processingstatic/assets/- Organized static assets (CSS, JS, images, documents)
- Homepage: Hero section, about info, sponsor showcase, FAQ
- Board Members: Detailed profiles with photos and social links
- Support: Corporate sponsorship tiers with donation links
- Previous Speakers: Historical speaker data from past years
- Code of Conduct & Privacy Policy: Legal compliance pages
- Responsive Design: Works perfectly on all devices
Date: May 16th, 2026 Location: Chicago, IL
Stay tuned for speaker announcements and ticket sales!
We welcome contributions! Please feel free to:
- Report bugs via GitHub Issues
- Submit feature requests
- Create pull requests for improvements
- Email: questions [@] bsides312.org
- Website: https://bsides312.org
- YouTube: BSides312 Channel
Visit the live site at: https://bsides312.org
Copyright 2026 Hak4Kidz NFP. All Rights Reserved.