Skip to content
norito
PDF
Merge PDFCombine multiple PDFs into one
Split PDFPull out pages or split into files
Rotate PDFFix sideways or upside-down pages
PDF to JPG/PNGTurn pages into images
JPG/PNG to PDFCombine images into one PDF
Delete & Reorder PagesDelete or rearrange pages
Add Page NumbersNumber every page
Add WatermarkStamp text across every page
Extract TextPull text out of a PDF
Compress PDFShrink a large PDF's file size
Sign PDFDraw or type a signature
Compare PDFsLine-by-line text diff of two PDFs
Images
Compress ImageShrink to a target file size
Placeholder GeneratorCustom-size placeholder images
Remove BackgroundCut a person out of a photo
Resize ImageChange width and height, exact or by percentage
Image ConverterConvert between JPG, PNG, and WebP
Crop ImageDrag a box to crop, free-form or locked ratio
Remove MetadataStrip EXIF, GPS, and camera info
Watermark ImageAdd a text watermark with live preview
Image Dimension InspectorWidth, height, ratio, and file size
Social Media Image CropperCrop to the exact size a platform needs
Screenshot AnnotatorArrows, boxes, text, and blur
HEIC to JPG/PNG ConverterConvert iPhone photos to JPG or PNG
AVIF ConverterConvert images to and from AVIF
Developer

Formatters & Converters

JSON FormatterFormat, validate, minify
Markdown EditorLive preview, export as .md/.html
CSV ViewerView and edit a CSV as a table
Base64 Encode / DecodeText to and from Base64, UTF-8 safe
CSV to JSONConvert a CSV file into JSON
YAML to JSON ConverterConvert YAML and JSON, both ways
Number Base ConverterBinary, octal, decimal, hex, and more
URL Encoder / DecoderPercent-encode or decode a URL
HTML Entity EncoderEscape or unescape HTML entities
Timestamp ConverterUnix time to date, both ways

Generators

Test File GeneratorByte-exact dummy files, any size
UUID GeneratorBulk random UUID v4 identifiers
Hash GeneratorMD5, SHA-1, SHA-256, SHA-512
.gitignore GeneratorMerged .gitignore file for your stack
JSON Schema GeneratorJSON sample to draft-07 schema
SVG Sprite GeneratorCombine icons into one sprite sheet
SVG to React ComponentSVG markup to a React component
SVG OptimizerStrip cruft, shrink SVG file size

Parsers, Diff & Inspectors

JWT DecoderDecode a JWT's header and payload
User-Agent ParserBrowser, engine, OS from a UA string
URL ParserBreak a URL into its parts
Cron Expression ParserExplain a cron schedule, preview next runs
CSS Specificity CalculatorRank selectors by specificity
CSS Variable ExtractorPull custom properties from a stylesheet
Regex TesterTest a regex with live match highlighting
JSON DiffCompare two JSON documents
Text DiffCompare two texts line by line
Text
SEO Slug GeneratorClean URL slugs from titles
Limited Text GeneratorPlaceholder text, exact length
Word CounterLive word, sentence, and paragraph counts
Character CounterCharacter count, with platform limits
Remove Duplicate LinesDeduplicate a list of lines
Sort LinesSort alphabetically, numerically, or shuffle
Case ConverterUPPERCASE, camelCase, snake_case, and more
Lorem Ipsum GeneratorPlaceholder text, by word, sentence, or paragraph
Find and ReplaceFind and replace text, regex supported
Markdown Table GeneratorCSV/TSV to a Markdown table
Invisible Character DetectorFind hidden zero-width characters
Markdown Table FormatterRe-align a misaligned Markdown table
Utilities
Password GeneratorRandom passwords & passphrases
QR Code GeneratorCustom colors, error correction
SEO
Meta Tag GeneratorTitle, description, OG, Twitter tags
UTM BuilderBuild campaign tracking URLs
Robots.txt GeneratorAllow/disallow rules, sitemap ref
Sitemap GeneratorURLs in, sitemap.xml out
Canonical Tag GeneratorNormalized canonical link tag
hreflang Tag GeneratorReciprocal hreflang tags for every locale
Design
CSS Gradient GeneratorLinear or radial, copy the CSS
Box Shadow GeneratorSingle or layered shadows
Border Radius GeneratorPer-corner radius, copy the CSS
Favicon GeneratorEvery favicon size you need
Color Palette ExtractorPull dominant colors from an image
Contrast CheckerWCAG contrast ratio, AA/AAA pass
Color ConverterHEX, RGB, HSL, CMYK, live
CSS Clamp() GeneratorFluid sizing that scales with viewport
CSS Easing GeneratorDesign a custom cubic-bezier() curve
CSS Filter GeneratorDrag sliders, copy the CSS filter
CSS Pattern GeneratorTileable background patterns, no images
SVG Blob GeneratorRandom organic blob shapes
Noise Texture GeneratorGrain texture, download or copy as CSS
Tailwind Shadow GeneratorLayered shadow as a Tailwind class
GIF
GIF MakerImages to an animated GIF
Video to GIFConvert a video clip to a GIF
GIF CompressorShrink an animated GIF's file size
GIF ResizerChange a GIF's width and height
GIF SplitterExtract every frame as a PNG
Add Text to GIFCaption an animated GIF

norito / How norito Works

How norito Works

Every tool runs in your browser. No uploads, no accounts, no artificial limits. Here's exactly how, and why.

Nothing you upload ever leaves your device

Every tool on norito, from merging PDFs to compressing images to formatting JSON, runs entirely inside your browser using JavaScript. When you drop a file into a tool, it's read directly into your browser's memory and processed there. There's no server on the other end receiving it, because there's no upload step at all.

This is possible because modern browsers expose powerful APIs (the File API, Canvas, Web Crypto, and WebAssembly) that used to require server-side processing. norito builds on top of these, plus a couple of well-established open-source libraries for PDF handling (pdf-lib for writing PDFs, pdf.js for rendering them), both of which also run entirely client-side.

No account, no signup, no email

You can use every tool right now without creating an account or handing over an email address. There's nothing to remember, nothing to verify, and nothing tied to your identity.

Works offline once you've visited

norito is a Progressive Web App. After your first visit, a service worker caches the site's core files, so most tools keep working even without an internet connection, and you can install norito to your home screen or desktop like a native app.

How norito makes money

norito is supported by advertising, including some display and interstitial formats, rather than subscriptions or paywalls. There's no premium tier, no feature gate, and no artificial limit designed to push you toward paying. The full details of what data (if any) our ad providers collect are in the Privacy Policy.

What we can and can't see

Because processing happens on your device, we have no way to see the contents of the files you work with, and no server log of them either, there's simply no upload for us to log. Like most websites, we do use standard, privacy-respecting analytics to understand which tools are used and how the site performs, but that's aggregate traffic data, not the contents of your files.

Common questions

Is norito actually free?

Yes, every tool is free with no daily limit, no account, and no watermark. The site is supported by advertising instead of subscriptions.

Do I need to create an account to use norito?

No. Every tool works immediately with no signup, login, or email required.

Does norito work without an internet connection?

Yes, for most tools, once you've loaded norito at least once. It's installable as a Progressive Web App and caches its core files for offline use.

Is there a file size limit?

There's no artificial limit set by norito. In practice, very large files are limited by your device's available memory since everything happens in your browser tab, not by any cap norito imposes.

What happens to my files after I close the tab?

Nothing, because they were never sent anywhere. Once you close or refresh the tab, whatever was in your browser's memory is simply gone.

From the blog: Where Your Files Actually Go When You Use an Online Tool

norito

Small utilities that solve one annoying problem each. Everything runs in your browser, nothing is uploaded.

Product

All tools Changelog How it Works Blog Compare About Contact Privacy Policy Terms of Service

PDF

Merge PDF Split PDF Rotate PDF PDF to JPG/PNG JPG/PNG to PDF Delete & Reorder Add Page Numbers Add Watermark Extract Text Compress PDF Sign PDF Compare PDFs

Images

Compress Image Resize Image Image Converter Crop Image Remove Metadata Watermark Image Placeholder Remove BG AVIF Converter HEIC Converter Image Dimensions Screenshot Annotator Social Image Crop

Developer

Test Files JSON Formatter Markdown Editor UUID Generator Base64 Hash Generator Timestamp JSON Diff JWT Decoder Regex Tester CSV to JSON CSV Viewer URL Encoder HTML Entities YAML to JSON Cron Parser Base Converter Text Diff CSS Specificity CSS Variables .gitignore Generator JSON Schema SVG Optimizer SVG Sprite SVG to React URL Parser User-Agent Parser

Text

Slug Generator Text Limit Word Counter Character Counter Dedupe Lines Sort Lines Case Converter Lorem Ipsum Find & Replace Invisible Characters MD Table Formatter MD Table Generator

Utilities

Password QR Code

SEO

Meta Tags UTM Builder Robots.txt Sitemap Canonical Tag hreflang Tags

Design

Gradient Box Shadow Border Radius Favicon Color Palette Contrast Checker Color Converter Blob Generator CSS Clamp() CSS Easing CSS Filter Noise Texture CSS Pattern Tailwind Shadow

Norito GIF

GIF Maker Video to GIF GIF Compressor GIF Resizer GIF Splitter Add Text to GIF
© 2026 norito. All tools run locally in your browser. Changelog Blog Compare How it Works Privacy Policy Terms of Service Buy me a coffee
Esc