SnapMark is a high-performance, privacy-first Chrome extension for capturing, annotating, and sharing screenshots instantly. Built for developers, designers, and product managers who need to communicate visually at the speed of thought.
- Landing Page: snapmark.brilworks.com
- GitHub: github.com/Brilworks-Software/snapmark
graph TD
A[User clicks Extension] --> B{Choose Action}
B -->|Region Capture| C[Drag & Select Area]
B -->|Visible Capture| D[Full Screen Grab]
B -->|Full Page| E[Redirect to Pricing]
C --> F[Annotation Editor]
D --> F
F --> G[Markup: Arrows, Shapes, Text, Blur, Crop]
G --> H{Finalize}
H -->|Download| I[Save PNG locally]
H -->|Copy| J[Copy to Clipboard]
H -->|Share| K[Upload to Supabase]
K --> L[Copy Public Link]
M[Landing Page] --> N[Click Upgrade Now]
N --> O[Fill Lead Form]
O --> P[Save to Supabase & Notify Slack]
SnapMark follows a modular architecture using Manifest V3 and Vercel Serverless:
- Frontend (Extension):
popup/: User entry point.content/: Selection overlay injection.background/: Core logic and image processing (OffscreenCanvas).editor/: Advanced canvas-based annotation engine.
- Backend (Cloud):
- Supabase Storage: Hosts public screenshots.
- Vercel API: Securely handles Pro leads and Slack integrations.
- Slack API: Instant notifications for business intelligence.
erDiagram
LEADS {
uuid id PK
timestamp created_at
string name
string email
string ip
string location
string device
}
STORAGE_BUCKETS ||--o{ SCREENSHOTS : "contains"
SCREENSHOTS {
string name PK
blob data
string content_type
}
- Extension: Vanilla JavaScript, HTML5 Canvas API, Chrome Extension API (MV3).
- Backend: Supabase (Storage & DB), Vercel Serverless Functions (Node.js).
- Styling: Vanilla CSS3 (Custom Glassmorphism Design).
- Integrations: Slack Webhooks, IPAPI for Geolocation.
- Supabase: Create a project and a public bucket named
screenshots. - Slack: Create an App and get an OAuth token with
chat:writepermissions. - Vercel: Link your GitHub repo and set the following environment variables:
SLACK_TOKENSLACK_CHANNEL_IDSUPABASE_URLSUPABASE_ANON_KEY
- Clone the repo.
- Copy
editor/supabase-config.example.jstoeditor/supabase-config.jsand add your keys. - Load the root folder in Chrome via Load Unpacked.
- No Third-Party Analytics: We don't track your behavior.
- Local-First: Annotations are processed entirely on your machine.
- Secure API: All business logic and tokens are handled on the server-side via Vercel.
Built with ❤️ by Brilworks

