Root cause: the cart drawer and product modal are SDK singletons attached outside shopifyContainer, not children of it. Destroying and recreating the collection component on theme change only rebuilt the product grid — the cart/modal never got torn down, so they stayed frozen on whatever theme was active the first time they rendered. - Replace destroy-and-recreate with ui.createComponent() + updateConfig() on a persisted component reference, so theme changes push new options into the cart/modal singletons in place instead of leaving them stale - Rename initShopify() -> renderShopify() to reflect create-or-update behavior - Drop the shopifyRenderToken race guard from the previous commit — no longer needed since we're not destroying/rebuilding DOM on each change - Theme quantityInput (background, text, border) in both the product tile and modal; it was left on the SDK's static default and stayed unreadable regardless of theme Files changed: src/pages/StorePage.vue
DeFlock
Crowdsourced tool for locating and reporting ALPRs. View Live Site.
Purpose
I created this project after noticing the mass deployment of ALPRs in cities, towns, and even rural areas in the recent years. It's a massive threat to privacy, and this projects helps shed a light on this issue as ALPRs continue to be deployed to thousands of cities across the US and possibly beyond.
What it Does
View ALPRs on a Map
Uses OpenStreetMap data to populate a map with crowdsourced locations of ALPRs, along with their type and direction they face.
The map has become a separate repository, deflockhopper_maps.
Report ALPRs
Provides instructions for using the DeFlock App or OpenStreetMap's iD web editor to report ALPRs using a standardized tagging system.
Identify ALPRs
A constantly-growing repository of ALPR makes, models, and tagging instructions for OpenStreetMap, along with images for identifying them.
Tech Stack
Backend
- TypeScript
- Fastify API server
- Cloudflare R2 for ALPR points and vector tiles
- OpenTelemetry
Cloud
- AWS Lambda (for region segmenting [deprecated] and counts)
- AWS S3 - phasing out for R2
- AWS ECR
- Cloudflare as DNS + Proxy
- Directus CDN
- Zammad helpdesk
Frontend
- Vue3
- Vuetify
- MapLibre GL
- Vue Leaflet [deprecated] - phasing out for MapLibre GL
Services
- OpenStreetMap - Overpass API, Basic Map Tiles [deprecated]
- Nominatim - Geocoding
Development
Requirements
Running Frontend
cd webappbun ibun dev
Running Backend
cd apibun ibun dev
Contributing
We welcome contributions from anyone. Here's how you can help:
How to Contribute
- Fork the Repository
- Make Your Changes
- Open a Pull Request against This Repo
