Inspiration

Moving to a new city for school is exciting — until Friday night rolls around and you realize you don't know a single person, don't know what's happening, and your entire cultural community feels an ocean away. This is the reality for hundreds of thousands of international students in Canada, and even for domestic students who uprooted their lives to move closer to campus.

Cultural student organizations at universities do an incredible job running events — Diwali nights, Lunar New Year galas, Eid dinners, cultural showcases — but the only way to find out about them is to follow dozens of Instagram pages across multiple campuses and scroll through your feed hoping you don't miss anything.

CommonGround was inspired by that struggle. We wanted to build a centralized hub where students can discover cultural events happening across campuses near them — without needing to follow 25+ Instagram accounts or rely on word of mouth.

What it does

CommonGround is an automated event discovery platform. It scrapes cultural student organizations' Instagram pages, uses AI to detect which posts are advertising events, extracts the key details (date, time, location, description), and surfaces them on a clean, searchable web platform. Students can filter by city and category to discover upcoming events across multiple universities and organizations — all in one unified view.

How we built it

We started by using Google Stitch to quickly prototype and design the user interface. Stitch allowed us to create a cohesive, modern layout for the event discovery experience before writing code.

For the actual implementation, we relied heavily on Antigravity (Google DeepMind's agentic AI coding assistant). We used the Stitch MCP (Model Context Protocol) to connect Antigravity directly to our design mockups, allowing it to translate those designs directly into Next.js/React components. We paired this with the Anthropic Front-End Design Skill to ensure the generated UI had premium aesthetics, smooth animations, and a polished feel.

On the back-end, we built a Python data pipeline that:

Connects to the Instagram Graph API to fetch recent posts. Uses Google Gemini (gemini-3.1-flash-lite-preview) to classify posts and extract event information (from both captions and image analysis). Upserts clean event records into MongoDB for the Next.js front-end to consume.

Challenges we ran into

The two biggest hurdles were data access and data format:

  1. The Facebook Graph API & Page IDs: Working with the Instagram Graph API (which routes through Facebook) was incredibly frustrating. To fetch posts from public business accounts, you need your own connected Facebook Page ID. Finding this value was unintuitive, buried deep within Facebook's Business Suite, and the documentation was confusing. Getting authenticated took longer than expected.
  2. Reels vs. Images: We initially relied heavily on multimodal AI to read event posters. However, we discovered that most student organizations now promote events via Reels/videos rather than static images. This breaks image-based extraction. We had to heavily tune our pipeline to rely on extracting structured data from wildly inconsistent caption text, as the Graph API doesn't easily provide keyframes for videos.

Accomplishments that we're proud of

  1. We built a fully automated, end-to-end pipeline that goes from raw Instagram posts to a clean, structured database without manual intervention.
  2. The design-to-code workflow using Stitch and Antigravity via MCP was incredibly fast, bringing our visual concepts to life in a fraction of the time it would take to build from scratch.
  3. Implementing an intelligent deduplication system that prevents our scraper from making redundant Gemini API calls on posts it has already processed.

What we learned

We learned that building AI-assisted design-to-code workflows is a massive productivity multiplier. We also learned painful lessons about the complexities of integrating with legacy social media APIs. Most importantly, we learned that multimodal AI still has significant blindspots when dealing with video-first social media trends, making robust text parsing just as important as image recognition.

What's next for commonground

  1. More university clubs involved: We want to expand our scraping pipeline to include student organizations from more universities across Canada, making the platform a true universal hub.
  2. Events outside of uni: Expand beyond university campuses to include community organizations, cultural centers, and local cultural establishments, so anyone (student or not) can find cultural events in their city.
  3. Make it more organized: Introduce deeper categorization and tagging, allowing users to filter by specific event types (e.g., social, religious, academic, food) for a more tailored discovery experience.

Built With

Share this project:

Updates