{"id":50762473,"url":"https://github.com/devlinduldulao/ecwid-storefront-error-radar","last_synced_at":"2026-06-11T11:02:11.652Z","repository":{"id":349579541,"uuid":"1185250224","full_name":"devlinduldulao/ecwid-storefront-error-radar","owner":"devlinduldulao","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-13T10:11:34.000Z","size":2664,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-01T19:07:25.893Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://devlinduldulao.github.io/ecwid-storefront-error-radar/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devlinduldulao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-18T11:45:53.000Z","updated_at":"2026-04-13T10:11:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/devlinduldulao/ecwid-storefront-error-radar","commit_stats":null,"previous_names":["devlinduldulao/ecwid-storefront-error-radar"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/devlinduldulao/ecwid-storefront-error-radar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlinduldulao%2Fecwid-storefront-error-radar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlinduldulao%2Fecwid-storefront-error-radar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlinduldulao%2Fecwid-storefront-error-radar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlinduldulao%2Fecwid-storefront-error-radar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devlinduldulao","download_url":"https://codeload.github.com/devlinduldulao/ecwid-storefront-error-radar/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlinduldulao%2Fecwid-storefront-error-radar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34195117,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-11T11:02:11.344Z","updated_at":"2026-06-11T11:02:11.646Z","avatar_url":"https://github.com/devlinduldulao.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Storefront Error Radar for Ecwid\n\nStatic Ecwid owner app for storefront diagnostics. It runs inside the merchant dashboard, embeds the merchant's own Ecwid storefront as a preview, and captures runtime issues only while that owner is testing.\n\n## What changed\n\nThis repo is no longer an Express boilerplate. It is intentionally constrained to avoid recurring infrastructure cost.\n\n- No Node.js server in production\n- No database\n- No Redis\n- No visitor-side telemetry pipeline\n- No webhook ingestion\n\nThe result is an owner-facing diagnostic desk, not a customer monitoring service.\n\n## Product shape\n\nThe Ecwid version now works like this:\n\n1. The merchant opens the app page inside the Ecwid admin dashboard.\n2. The app reads the store ID from the Ecwid iframe payload.\n3. The app loads an embedded Ecwid storefront preview for that store.\n4. While the merchant clicks through catalog, product, cart, and checkout flows, the app records JavaScript, asset, and network failures in memory.\n5. Session settings are stored in browser local storage for that store.\n6. The merchant can switch to a built-in demo preview that seeds fake incidents without loading a real storefront.\n7. The merchant can review the incident feed and export the session as JSON.\n\nThat keeps the app deployable on static hosting. It also means there is no shared historical incident archive across merchants or browsers.\n\n## Quick start\n\n```bash\nnpm install\nnpm run dev\n```\n\nThen open:\n\n- `http://localhost:4173/public/storefront-test.html?storeId=YOUR_STORE_ID`\n- `http://localhost:4173/public/index.html?storeId=YOUR_STORE_ID`\n\nThe standalone page is for local iteration. In source, the admin dashboard lives at `public/index.html`. In production, the build publishes that page at the site root so your Ecwid app page URL can be the clean base URL of your static host.\n\nUse the `Use Demo Preview` button when you want to simulate the dashboard with fake data, validate summary cards, or show the product without relying on a live Ecwid store response.\n\n## Project structure\n\n```text\nstorefront-error-radar/\n├── public/\n│   ├── app.css                 # Dashboard styles\n│   ├── index.html              # Ecwid admin iframe page\n│   └── storefront-test.html    # Standalone local preview page\n├── src/\n│   ├── admin/\n│   │   └── app.js              # Owner dashboard logic\n│   ├── shared/\n│   │   └── diagnostics-core.js # Session-only incident collector\n│   └── storefront/\n│       ├── custom-storefront.css\n│       └── custom-storefront.js\n├── docs/\n├── scripts/\n│   ├── setup.sh\n│   └── smoke-test.js\n├── AGENTS.md\n├── CONTRIBUTING.md\n├── LICENSE\n├── package.json\n└── README.md\n```\n\n## Available scripts\n\n| Command | Purpose |\n|---------|---------|\n| `npm run build` | Create a deployable static copy in `dist/` |\n| `npm run dev` | Serve the repo on port `4173` for local testing |\n| `npm run preview` | Same as `dev` |\n| `npm run lint` | Run syntax checks on runtime and automated test scripts |\n| `npm test` | Run unit, integration, and smoke coverage for the static app |\n| `npm run publish:check` | Verify publish-facing pages, docs, workflow, and artwork sources |\n\n## Architecture summary\n\n```text\nEcwid admin iframe\n    -\u003e public/index.html\n    -\u003e EcwidApp SDK payload\n    -\u003e embedded Ecwid storefront preview\n    -\u003e browser-only diagnostics collector\n    -\u003e in-memory incident feed\n    -\u003e localStorage-backed owner preferences\n```\n\n## Constraints\n\nThese constraints are deliberate, not accidental.\n\n- The app is for Ecwid business owners, not site visitors.\n- Diagnostics exist only while the owner uses the dashboard.\n- Settings are browser-local, so they do not sync across machines.\n- Without a backend, anonymous shopper sessions cannot be centrally collected.\n\nIf you later decide you need cross-device history, merchant-wide settings sync, or automated visitor monitoring, that will require a real backend. This repo avoids that on purpose.\n\n## Deployment\n\nDeploy the repo to any static host that can serve the repository root, then register the Ecwid app page URL to point to the deployed site root.\n\nFor App Market submission, also deploy the support and privacy pages:\n\n- `public/privacy.html`\n- `public/support.html`\n\nThis repository already includes a free GitHub Pages deployment workflow in `.github/workflows/deploy-pages.yml`. Every push to `main` builds `dist/` and publishes it through GitHub Actions.\n\nThe expected production URLs are:\n\n- `https://devlinduldulao.github.io/ecwid-storefront-error-radar/`\n- `https://devlinduldulao.github.io/ecwid-storefront-error-radar/privacy.html`\n- `https://devlinduldulao.github.io/ecwid-storefront-error-radar/support.html`\n\nTo enable it in GitHub:\n\n1. Push this repository to GitHub.\n2. Open **Settings \u003e Pages**.\n3. Set **Source** to **GitHub Actions**.\n4. Let the `Deploy to GitHub Pages` workflow complete on the next push to `main`.\n5. Register `https://devlinduldulao.github.io/ecwid-storefront-error-radar/` as the Ecwid app page URL.\n\nGood fits:\n\n- GitHub Pages\n- Netlify\n- Cloudflare Pages\n- Vercel static hosting\n\nSee `docs/DEPLOYMENT.md` for the exact deployment model.\nSee `docs/PUBLISHING.md` for the listing checklist and final submission gaps.\nSee `assets/marketplace/README.md` for the current App Market artwork set and export guidance.\n\n---\n\n## API Reference\n\nSee [docs/API.md](docs/API.md) for detailed API documentation.\n\n## Architecture\n\nSee [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for a deep dive into the architecture.\n\n## Development\n\nSee [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md) for the full development guide.\n\n## Deployment\n\nSee [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) for deployment instructions.\n\n---\n\n## Ecwid Resources\n\n### Getting Started\n\n| Resource | Link |\n|----------|------|\n| Ecwid Developer Portal (register apps) | https://developers.ecwid.com/ |\n| App Development Guide | https://api-docs.ecwid.com/docs/get-started |\n| Ecwid App Market (see published apps) | https://www.ecwid.com/apps |\n| Sign Up for Free Ecwid Account | https://www.ecwid.com/ |\n| Ecwid Control Panel (store admin) | https://my.ecwid.com/ |\n\n### REST API v3\n\n| Resource | Link |\n|----------|------|\n| API Overview \u0026 Reference | https://api-docs.ecwid.com/reference/overview |\n| Products API | https://api-docs.ecwid.com/reference/products |\n| Orders API | https://api-docs.ecwid.com/reference/orders |\n| Customers API | https://api-docs.ecwid.com/reference/customers |\n| Categories API | https://api-docs.ecwid.com/reference/categories |\n| Discount Coupons API | https://api-docs.ecwid.com/reference/discount-coupons |\n| Store Profile API | https://api-docs.ecwid.com/reference/store-profile |\n| Product Variations API | https://api-docs.ecwid.com/reference/product-variations |\n| Abandoned Carts API | https://api-docs.ecwid.com/reference/abandoned-carts |\n| Shipping Options API | https://api-docs.ecwid.com/reference/shipping-options |\n| Tax Settings API | https://api-docs.ecwid.com/reference/taxes |\n| Application Storage API | https://api-docs.ecwid.com/reference/storage |\n| Starter Site API | https://api-docs.ecwid.com/reference/starter-site |\n\n### Authentication \u0026 Security\n\n| Resource | Link |\n|----------|------|\n| OAuth 2.0 Authentication | https://api-docs.ecwid.com/docs/authentication |\n| Access Scopes Reference | https://api-docs.ecwid.com/docs/access-scopes |\n| API Tokens \u0026 Keys | https://api-docs.ecwid.com/docs/api-tokens |\n\n### Storefront Customisation\n\n| Resource | Link |\n|----------|------|\n| JavaScript Storefront API | https://api-docs.ecwid.com/docs/customize-storefront |\n| Storefront JS API Reference | https://api-docs.ecwid.com/docs/storefront-js-api-reference |\n| Custom CSS for Storefront | https://api-docs.ecwid.com/docs/customize-appearance |\n| Page Events (OnPageLoaded, etc.) | https://api-docs.ecwid.com/docs/page-events |\n| Cart Methods (add, remove, get) | https://api-docs.ecwid.com/docs/cart-methods |\n| Public App Config (storefront injection) | https://api-docs.ecwid.com/docs/public-app-config |\n| SEO for Ecwid Stores | https://api-docs.ecwid.com/docs/seo |\n\n### App Development\n\n| Resource | Link |\n|----------|------|\n| Native Apps (admin iframe) | https://api-docs.ecwid.com/docs/native-apps |\n| Ecwid App UI CSS Framework | https://api-docs.ecwid.com/docs/ecwid-css-framework |\n| EcwidApp JS SDK Reference | https://api-docs.ecwid.com/docs/ecwidapp-js-sdk |\n| App Storage (key-value per store) | https://api-docs.ecwid.com/docs/app-storage |\n| Custom Shipping Methods | https://api-docs.ecwid.com/docs/add-shipping-method |\n| Custom Payment Methods | https://api-docs.ecwid.com/docs/add-payment-method |\n| Custom Discount Logic | https://api-docs.ecwid.com/docs/add-custom-discount |\n| App Listing Requirements | https://api-docs.ecwid.com/docs/app-listing-requirements |\n\n### Embedding \u0026 Widgets\n\n| Resource | Link |\n|----------|------|\n| Add Ecwid to Any Website | https://api-docs.ecwid.com/docs/add-ecwid-to-a-site |\n| Product Browser Widget Config | https://api-docs.ecwid.com/docs/product-browser |\n| Buy Now Buttons | https://api-docs.ecwid.com/docs/buy-now-buttons |\n| Single Sign-On (SSO) | https://api-docs.ecwid.com/docs/single-sign-on |\n\n### Guides \u0026 Tutorials\n\n| Resource | Link |\n|----------|------|\n| API Rate Limits | https://api-docs.ecwid.com/docs/rate-limits |\n| Error Codes Reference | https://api-docs.ecwid.com/docs/errors |\n| Testing Your App | https://api-docs.ecwid.com/docs/testing |\n| Publishing to App Market | https://api-docs.ecwid.com/docs/publishing |\n| Ecwid Community Forum | https://community.ecwid.com/ |\n| Ecwid Help Center | https://support.ecwid.com/ |\n| Ecwid Status Page | https://status.ecwid.com/ |\n| Ecwid Blog | https://www.ecwid.com/blog |\n\n---\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevlinduldulao%2Fecwid-storefront-error-radar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevlinduldulao%2Fecwid-storefront-error-radar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevlinduldulao%2Fecwid-storefront-error-radar/lists"}