Skip to content

Repository files navigation

ShotEasy - take a screenshot online

Photo edit online for free, resize and filter photos, convert image formats, merge images or PDF pages into a long image, convert video to GIF, open documents, recognize text with browser-based OCR, create searchable PDFs, and easily screenshot an area or full page.

🏆 Chrome Extension

🏞️ Image Editor

😱 Screenshot Beautifier

🚴 Photo to Rounded

🎉 Background Remover

😬 Image Compressor

🧩 Long Image Composer

🎬 Video Convert

📄 Office & PDF Viewer

🔎 OCR & Editable PDF

OCR & searchable PDF

The OCR tool uses @paddleocr/paddleocr-js and PP-OCRv5 to recognize text from one image or scanned PDF directly in the browser.

Key capabilities:

  • Supports JPG, PNG, WebP, BMP, and scanned PDF input.
  • Starts OCR automatically after a file is selected.
  • Displays detected text regions and recognition confidence scores.
  • Allows line-by-line correction and full-text editing before export.
  • Reconstructs visible OCR text at the detected positions in a selectable, searchable PDF without embedding the source image.
  • Keeps document images, rendered PDF pages, and recognized text in browser memory without uploading the selected file to an OCR server.
  • Downloads the public OCR model and WebAssembly runtime on first use; browser caching can make later recognition faster.

The localized OCR page and SEO copy are available for every language configured in src/lib/config.js. OCR page translations live in src/lib/ocrCopy.js, while the main interface is implemented in src/components/OcrTool.jsx.

Blog

The blog uses Astro Content Collections and local Markdown files instead of GitHub Issues.

Blog posts live in src/content/blog/*.md. Each article is a Markdown file with frontmatter for title, description, publish date, cover image, author, tags, and draft status.

Example:

---
title: "How Online Screenshot Tools Work"
description: "Understand how browser-based screenshot tools capture and export images."
date: 2026-07-01
cover: "/blog/how-to-take-a-screenshot-online.webp"
coverAlt: "Browser screenshot capture interface"
tags: ["screenshot", "browser tools"]
---

Write the article content here.

Benefits:

  • Static blog pages are generated by Astro during build, so articles are fast and SEO-friendly.
  • No GitHub access token is required for blog rendering.
  • Article content is versioned with the website source code.
  • Frontmatter is validated by src/content/config.ts, which keeps article metadata consistent.
  • Cover images can be stored under public/blog/ and referenced with /blog/image-name.webp.

Environment variables

// request secret key
PUBLIC_SECRET_KEY=

🧞 Commands

All commands are run from the root of the project, from a terminal:

Command Action
pnpm install Installs dependencies
pnpm run dev Starts local dev server at localhost:4321
pnpm run build Build your production site to ./dist/
pnpm run preview Preview your build locally, before deploying
pnpm run astro ... Run CLI commands like astro add, astro check
pnpm run astro -- --help Get help using the Astro CLI

🚀 Deploy With Vercel

Deploy with Vercel

Vercel: used for deploying website

If you find anything wrong, give me an Issues

Give me the bugs

Update

  • 2026-08-11: add local PaddleOCR.js text recognition, editable OCR results, and searchable PDF export.
  • 2024-11-26: add background remover use Hugging Face model: Xenova/modnet

👀 Want to learn more?

Feel free to check our documentation or jump into our Discord server.

Releases

Packages

Contributors

Languages