
Research
/Security News
PolinRider Spreads Through Compromised GitHub Accounts and Packagist
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.
A high-performance React annotation framework for large-scale images, built on OpenSeadragon and PixiJS.
Annota is designed for applications that need to handle thousands of annotations on large, zoomable images. While it excels at whole slide imaging and digital pathology workflows, it's versatile enough for any domain requiring image annotation at scale.
npm install annota
# Modern package managers (npm 7+, pnpm) automatically install peer dependencies
# For npm 6 or below, install peer dependencies explicitly:
npm install annota openseadragon react react-dom
import { AnnotaProvider, AnnotaViewer, Annotator } from 'annota';
import { useState } from 'react';
import 'annota/dist/index.css';
function App() {
const [viewer, setViewer] = useState(null);
return (
<AnnotaProvider slideId="slide-001">
<div style={{ width: '100vw', height: '100vh' }}>
<AnnotaViewer
options={{
tileSources: '/path/to/image.dzi',
prefixUrl: 'https://cdn.jsdelivr.net/npm/openseadragon@4/build/openseadragon/images/',
}}
onViewerReady={setViewer}
/>
<Annotator viewer={viewer} />
</div>
</AnnotaProvider>
);
}
For more examples including tools, event handling, and layer management, see the documentation.
Annota is optimized for large-scale annotation workflows:
Benchmark: Smooth interaction with 10,000+ annotations at 60 FPS.
useAnnotator() // Access annotator instance
useAnnotations() // Get all annotations
useSelection() // Access selected annotations
useTool(options) // Activate annotation tool
useLayerManager() // Control layers
loadH5Masks - Load polygon masks from HDF5loadH5Coordinates - Load point coordinates from HDF5loadJSON - Load annotations from JSONloadPGM - Load mask data from PGM imagesRequires WebGL support for hardware-accelerated rendering.
See CONTRIBUTING.md for development setup, code style, and PR guidelines.
For publishing releases, see PUBLISHING.md.
When developing the library and testing changes in the documentation site locally:
# In the docs directory
cd docs
pnpm link ../
This creates a direct symlink from your local library source to the docs project. Any changes you make to the library will be available in the docs after rebuilding the library with pnpm build or pnpm dev.
To switch back to the npm version:
cd docs
pnpm install --force
Note: The docs project uses the npm version (^0.7.9) in production deployments. The symlink setup is only for local development.
MIT
Built with OpenSeadragon, PixiJS, RBush, and React.
FAQs
An annotation framework for React and Svelte
The npm package annota receives a total of 63 weekly downloads. As such, annota popularity was classified as not popular.
We found that annota demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.

Company News
Allow myself to introduce... myself.