Inspiration
The idea came from the conversations we overheard before the hackathon kicked off. Everyone wants to be an entrepreneur and be their own boss — but finding a real problem or market gap is hard and time-consuming. We wanted to give young entrepreneurs a platform that doesn't just identify opportunities, but also provides a concrete plan and a personal AI assistant to help them take the leap.
What it does
MarketSight is an AI-driven platform that helps aspiring entrepreneurs discover untapped business opportunities across Canada. Users sign up, explore a 3D interactive map focused on the Canadian market, and prompt the AI to surface entrepreneurial openings tailored to their interests. Want to open a coffee shop? Ask MarketSight to find the best location. Need to narrow it down to a specific region? Just refine your query. Can't decide between options? Let the AI weigh the trade-offs for you. Once you've identified your next venture, MarketSight generates a detailed, step-by-step execution plan — from estimating the CAPEX you'll need all the way through to landing your first customer.
How we built it
MarketSight is a full-stack monorepo that pairs a modern React frontend with a modular Rust backend designed for agentic workflows, structured data analysis, and report generation.
The frontend lives in apps/web and is built with Next.js 16 (App Router), React 19, and TypeScript 5. Styling relies on Tailwind CSS 4 with a CSS-variable-based theming setup using OKLCH colors, supported by class-variance-authority, clsx, and tailwind-merge for reusable component patterns. The UI layer uses shadcn/ui and Radix primitives alongside next-themesfor light/dark mode. For data visualization and interaction, the app integrates Google's 3D Map Frames for interactive maps, Recharts for charts and analytics, TanStack Table for advanced tabular views, and Lucide React for icons.
The backend is organized as a Rust workspace (2021 edition) with multiple crates following a trait-first architecture. Core domain types and interfaces live in mga-core, while separate crates handle data ingestion, analysis orchestration, report generation, persistence, API delivery, and CLI tooling. The async runtime is powered by Tokio, with serde and serde_jsonfor serialization, async-trait for trait-based abstractions, and tracing with tracing-subscriber for structured logging. Error handling uses thiserror and anyhow. External integrations go through reqwest, and the data layer is backed by SQLx with support for both SQLite (local development) and PostgreSQL (production). Agentic AI orchestration is handled by Rig (rig-core), which connects to Anthropic-backed agent workflows.
On the data and infrastructure side, the system integrates with StatCan APIs for Canadian economic and demographic data, Reddit OAuth for community sentiment and market signals, and Mapbox for geospatial visualization. Development tooling includes pnpm for frontend package management, Cargo for Rust workspace builds, ESLint 9 with Next.js Core Web Vitals rules, PostCSS with Tailwind CSS 4, and TypeScript in strict mode.
Challenges we ran into
Being able to get the 3D map to work and deploy.
Accomplishments that we're proud of
Being able to get the 3D map to work and deploy and interact with our backend in a very seamless way.
What we learned
How to be able to connect AI with 3D elements to create detailed insights.
What's next for MarketSight
Be able to make this technology available for the public to help boost the Canadian economy.
Built With
- google-maps
- next.js
- react
- recharts
- rust
- tailwind
- tanstack
- typescript
Log in or sign up for Devpost to join the conversation.