Sightline
Open-source geospatial incident mapping platform for tracking and visualizing events across time and space. Built with Next.js, React, and Mapbox GL.
Features
- Interactive Map - Visualize incidents on a Mapbox map with clustering and animations
- Light/Dark Mode - Full theme support with system preference detection
- Timeline Playback - Scrub through time or watch incidents appear chronologically
- Advanced Filtering - Filter by security tier, country, site type, and more
- Incident Feed - Right sidebar with sortable, scrollable incident list
- Multiple Data Sources - Support for Supabase, REST APIs, and static JSON
- Custom Renderers - Fully customizable popups, markers, feed items, and clusters
- Media Support - Attach images, videos, and documents to incidents
- Dynamic Loading - Viewport-based and paginated data fetching for large datasets
- Modular Architecture - Easy to extend with custom controls and renderers
- Mobile Responsive - Works great on desktop and mobile devices
Quick Start
# Clone the repository
git clone https://github.com/disclosure-foundation/sightline.git
cd sightline
# Install dependencies
pnpm install
# Copy environment file
cp .env.example .env.local
# Add your Mapbox token to .env.local
# NEXT_PUBLIC_MAPBOX_TOKEN=your_token_here
# Start development server
pnpm devOpen http://localhost:3001 to see the map with demo data.
Documentation Sections
5-Minute Quickstart
Get your own incident map running in under 5 minutes
Configuration Guide
Configure your map with custom data sources and renderers
Data Specification
Comprehensive incident data schema documentation
Architecture
Understand the system design and how components interact
More Resources
Examples & Recipes
Real-world implementation patterns and code examples
FAQ
Frequently asked questions and answers
Troubleshooting
Solutions to common issues
Changelog
Version history and release notes
Tech Stack
- Framework: Next.js 16.x with App Router
- UI: React 19.x, Tailwind CSS 4.x
- Maps: Mapbox GL JS 3.x, react-map-gl 8.x
- Language: TypeScript 5.x
- Package Manager: pnpm 9.x
License
MIT License - see LICENSE for details.
Credits
Built by Disclosure Foundation with contributions from the open source community.
Quick Links
- Environment Variables — Complete env var reference
- Keyboard Shortcuts — All keyboard commands
- Browser Compatibility — Supported browsers
- Performance Guide — Optimization tips
- Accessibility — A11y features and guidelines
- Testing Guide — How to test your customizations
- Contributing — How to contribute