Search and filter grassroots organizations, clubs, activist groups, and community initiatives in Calgary.
Calgary Groups is a centralized, searchable directory designed to help Calgarians discover and connect with local organizations that match their interests. Whether you're looking for activist groups, social clubs, nonprofits, or community initiatives, this directory makes it easy to find organizations working on the issues you care about.
- 🔍 Advanced search & filtering - Search by name, description, organization type, interests, meeting format, and location
- 🏷️ Rich taxonomy - Organizations categorized by type (Nonprofit, Grassroots, Social Club, Chapter, Cooperative, Small Business) and interests (Environment, Social Impact, LGBTQ2S+, Anti-Racism, Tech, Urban Issues, and more)
- 📱 Fully responsive - Works seamlessly on desktop, tablet, and mobile
- ⚡ Fast & lightweight - Static site with no database or backend required
- 🌐 Open source - Full transparency and community contributions welcome
- 🎨 Custom color palette - Warm cream (light mode) and coffee (dark mode) backgrounds with orange/cyan brand accents
- 🌙 Dark mode support - Optimized color variation and text contrast for comfortable reading in both modes
- 🎯 Modern UI - Floating sticky navigation, rounded cards, subtle shadows, and backdrop blur effects
- 📐 Responsive filters - Collapsible type and interests filters (open on desktop, closed on mobile)
- ✨ Enhanced detail pages - Prominent type badges, colorful interest tags, and clickable organization titles
- 📲 Installable - Add to home screen on iOS, Android, and desktop
- 🔌 Offline support - Service worker caches assets for offline functionality
- ⚡ Fast loading - Cached resources load instantly
- 🎯 App-like experience - Standalone mode without browser chrome
This repo contains:
- A static website built with 11ty + Tailwind CSS + Alpine.js
- Organization listings stored as markdown files in Git (full data ownership)
- Helper scripts for importing data from the CSVs in
docs/
- Static site generator: 11ty (Eleventy)
- Styling: Tailwind CSS
- Interactivity: Alpine.js
- Hosting: Netlify
- Node.js 20 (see
.nvmrc) - npm
npm installnpm run devThen open:
http://localhost:8080/
npm run buildOutput is written to:
_site/
Organization files live here:
src/content/organizations/
Each organization is a markdown file with front matter.
Example:
---
name: "Organization Name"
type: "Nonprofit" # Nonprofit, Grassroots, Social Club, Chapter, Cooperative, Small Business
interests: ["environment", "social-impact", "tech"]
age_range: "all-ages" # youth, young-adult, all-ages, seniors
identity_focused: false
meeting_format: "in-person" # in-person, online, hybrid
location_area: "city-wide" # northwest, northeast, southwest, southeast, downtown, online, city-wide
status: "active" # active, inactive, seasonal
---
Short description here.
**Contact Info:**
- Website: https://example.com
- Email: contact@example.com- Nonprofit - Registered nonprofits and charitable organizations
- Grassroots - Community-driven initiatives and grassroots movements
- Social Club - Social groups and book clubs
- Chapter - Local chapters of national/international organizations
- Cooperative - Member-owned cooperatives
- Small Business - Community-oriented small businesses
Organizations can be tagged with multiple interests including:
- Anti-racism, Arts & culture, Disability/Neurodivergent, Education, Environment
- Health & wellness, Indigenous, LGBTQ2S+, Low-income, Seniors
- Social impact, Sports & rec, Tech, Urban Issues, Women+, Youth
Organizations are organized by type:
src/content/organizations/nonprofit/src/content/organizations/grassroots/src/content/organizations/social-club/src/content/organizations/chapter/src/content/organizations/cooperative/src/content/organizations/small-business/
File naming convention:
- lowercase
- hyphen-separated
- no spaces
The docs/ folder contains CSVs used for bulk import/maintenance.
This generates a new CSV with a Website column:
python3 scripts/merge_urls_into_csv.py --fuzzyDefault output:
docs/Mass Organization CRM - Organizations.with_urls.csv
python3 scripts/csv_to_organizations.py \
--csv "docs/Mass Organization CRM - Organizations.with_urls.csv" \
--only-site-flag YNotes:
- The script uses conservative defaults for fields we don’t have yet (e.g.
location_area,meeting_format). - Type and interest mappings are heuristics that you can refine over time in
scripts/csv_to_organizations.py.
This repo includes netlify.toml.
- Build command:
npm run build - Publish directory:
_site - Node version: 20
TODO.mdtracks planned work.CHANGELOG.mdtracks notable changes.
This repository is dual-licensed:
- Code (site source, scripts, configuration): MIT (see
LICENSE) - Content/data (organization listings and related data): CC BY 4.0 (see
LICENSE-CONTENT)
