Skip to content

ChaiWithJai/annotated-canvas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Annotated Canvas

Annotated Canvas is a Chrome side panel and web client for clipping exact moments from web media, adding commentary, and publishing public annotations that always link back to the original source.

Project Status

This project was sunset on 2026-05-02. It reached a deployed MVP, but it is not a complete bounty submission because production sign-in was never configured end to end. The production Cloudflare deploy gate is disabled with CLOUDFLARE_DEPLOY_ENABLED=false, and the remaining Cloudflare resources are inventoried for owner-controlled archive or teardown.

Read the shutdown documents before reviving or deleting anything:

  • docs/project-sunset-postmortem.md
  • docs/cloudflare-sunset.md

The product is based on the Annotated bounty context captured in this repository. The MVP intentionally stores third-party clips by reference, not by re-hosting third-party media bytes.

Submission Status

  • Public web: https://annotated-canvas.pages.dev
  • Public API health: https://annotated-canvas-api.jaybhagat841.workers.dev/api/health
  • Approved public smoke annotation: https://annotated-canvas.pages.dev/a/ann_d586ad40-058a-42c1-b6d7-8e0e691cfae4
  • Cloudflare deploy-from-main is proven by GitHub Actions run 25212955639; issue #22 is closed.
  • The current MVP is live, source-linked, and smoke-tested at the API/web level. It is not yet a full bounty-complete claim.
  • Remaining bounty blockers are real Google/X OAuth and extension handoff (#24), production extension p95 proof for exact selected text/media timing and >90-second no-network rejection (#23/#30), durable recorded-audio storage and owned-media 240p/sub-480p policy (#26), the reviewer journey/Krug pass before filming (#38), and the final external submission decision (#28).

Product Surfaces

  • Chrome MV3 side panel extension for capture from the current tab.
  • Public web client for feed, profiles, annotation permalinks, and claim filing.
  • REST API server/router that sends requests to the correct Cloudflare-backed service.
  • Cloudflare service layer for auth, annotations, feed, claims, engagement, media references, and async jobs.

MVP Invariants

  • Every published annotation must include source_url.
  • Third-party media is clipped by reference with text selection or timestamp offsets.
  • OAuth is X or Google only for MVP.
  • Published annotations have a public permalink and a File a claim workflow.
  • Queue consumers must be idempotent because background delivery can happen more than once.

Repo Context

  • original-design.md contains the structured bounty and domain model.
  • design-inpso.md contains the visual/product direction.
  • mocks.md contains a UI and API mockup.
  • bounty.txt contains the source bounty thread text captured locally.
  • apps/web contains the React web client scaffold.
  • apps/extension contains the Chrome MV3 side-panel scaffold.
  • apps/api contains the Cloudflare Worker API/router scaffold.
  • packages/contracts contains executable Zod contracts and fixtures.
  • packages/ui contains shared UI components and design tokens.
  • docs/api-contracts.md defines the first REST contract draft.
  • docs/cloudflare-architecture.md defines the first system architecture draft.
  • docs/cloudflare-cli.md defines Cloudflare CLI setup and resource commands.
  • docs/testing-strategy.md defines the testing trophy strategy with P50/P95 coverage.
  • docs/issue-learning-loop.md defines how issues should document learning, pitfalls, and roadblocks.
  • docs/bounty-gap-audit.md and docs/submission-packet.md define the current bounty readiness packet, including live URLs, known limitations, and open issue gates.

Local Development

npm install
npm run dev
npm run dev:api
npm run build
npm test

The Chrome extension build is emitted to dist/extension and can be loaded unpacked in Chrome. Use Node 24 for local development; the repo includes .nvmrc because the system Node 25 path can force native dependencies onto source builds.

First Delivery Streams

  1. Frontend UI scaffold: web client pages, extension side panel, shared design tokens, reusable clip/source components.
  2. Core API contracts: OpenAPI-style resources for clips, annotations, feed, follows, engagement, auth, and claims.
  3. Cloudflare architecture: router Worker, internal service bindings, D1 schema, KV cache/session usage, Queues, Durable Objects, R2/Stream policy, and observability.

External Platform References

About

Chrome side panel and web client for clipping, annotating, and publishing source-linked commentary across web media.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors