How alyssaxuu/screenity works
Screenity is a Chrome screen-recording and annotation extension. Its main workflow is configuring a capture in the extension UI, starting and controlling capture through the background process, recording media locally or through the cloud recorder, then playing, editing, and exporting the result. The README also documents camera effects, drawing and blur tools, alarms, and Google Drive saving. The tree and sampled handlers support the major components, but many runtime links are not shown in the excerpts; uncertain wiring is omitted.
Main entry points: handlers.js Message handlers · Content.jsx Capture UI · startRecording.js Capture orchestration · Recorder.jsx Local recorder
Components 21
Extension interface
- Capture UI
src/pages/Content/Content.jsx - Settings popup
src/pages/Content/popup/PopupContainer.jsx - Annotations
src/pages/Content/canvas/Canvas.jsx - Camera effects
src/pages/Camera/Camera.jsx
Capture and recording
- Capture orchestration
src/pages/Background/recording/startRecording.js - Media acquisition
src/pages/utils/acquireDisplayMedia.js - Local recorder
src/pages/Recorder/Recorder.jsx - Cloud recorder
src/pages/CloudRecorder/CloudRecorder.jsx
Media and editing
- Chunk storage
src/pages/Recorder/recorderStorage/chooseWriter.js - Editor interface
src/pages/EditorApp/EditorApp.jsx - Editor operations
src/pages/EditorApp/editorOps.js - Video transforms
src/pages/Editor/mediabunny/lib/videoConverter.ts - Download page
src/pages/Download/Download.jsx
Extension services
- Background process
src/pages/Background/index.js - Message handlers
src/pages/Background/messaging/handlers.js - Recording alarms
src/pages/Background/alarms/handleAlarm.js
Cloud features
- Drive saving
src/pages/Background/drive/handleSaveToDrive.js - Separated audio upload
src/pages/CloudRecorder/uploadMicToStorage.js
Other components
- User
- Chrome extension APIs
- Screenity services
Connections 26
- User → Settings popup: configures
- User → Capture UI: starts capture
- User → Annotations: annotates
- Settings popup → Capture UI: sets options
- Capture UI → Message handlers: sends commands
- Message handlers → Capture orchestration: starts recording
- Message handlers → Media acquisition: acquires stream
- Capture orchestration → Local recorder: starts local capture
- Capture orchestration → Cloud recorder: starts cloud capture
- Local recorder → Chunk storage: writes chunks
- Cloud recorder → Chunk storage: stores media
- Cloud recorder → Separated audio upload: uploads audio
- Separated audio upload → Screenity services: posts audio
- Local recorder → Message handlers: reports completion
- Message handlers → Editor interface: opens editor
- Editor interface → Editor operations: requests edits
- Editor operations → Video transforms: processes video
- Editor interface → Chunk storage: reads recording
- User → Download page: exports
- Message handlers → Recording alarms: handles alarms
- Message handlers → Drive saving: saves to Drive
- Drive saving → Screenity services: uploads video
- Background process → Message handlers: registers handlers
- Background process → Chrome extension APIs: uses extension APIs
- Capture UI → Chrome extension APIs: reads settings
- Camera effects → Chrome extension APIs: uses camera APIs