Delim Converter
Convert lists between comma, pipe, tab, and custom delimiters with advanced options.
Input 0 items
Output 0 items

⚙️ Settings

Remove newlines
Remove duplicates
newline every X
Adds to the very start/end of the result — handy for ('a','b') or [a, b]
✓ Copied!
Case Converter
Switch between UPPER, lower, Title Case, and Sentence case.
Duplicate Line Remover
Remove duplicate lines, optionally sort alphabetically or by length.
Number Extractor
Extract all integers, decimals, and percentages from text.
Character Counter
Count characters, words, and lines with detailed stats.
Text Reverser
Reverse strings, words, or the order of lines.
Find & Replace
Bulk replace multiple strings at once — add as many find/replace conditions as you need.
Prefix / Suffix Stamper
Add custom prefix and suffix to every line.
Prefix: Suffix:
Whitespace Trimmer
Strip, collapse, or remove all whitespace. "Clean All" does both trim and collapse in one click.
Column Extractor
Extract specific columns from CSV/TSV data.
Columns:
Split by Chunk
Split a long string into fixed-width chunks.
Chunk size:
Alphabetical Sorter
Sort lines A→Z, Z→A, or by line length.
Escape / Unescape
Escape to HTML entities or JSON strings, or unescape back.
Line Number Stamper
Add incremental line numbers (001, 002, 003...) to each row.
Start:
SQL Value Generator
Wrap each line in quotes and join → ('a','b','c')
Date Range Generator
Generate a list of dates between two dates with custom intervals.
0 dates generated
Epoch Converter
Convert Unix timestamps to human-readable dates and vice versa.
SQL Formatter
Beautify or minify SQL queries with proper indentation.
CASE Statement Builder
Build SQL CASE WHEN statements one condition at a time — no special syntax to remember.
Query Sanitizer
Strip comments, SET statements, and trailing semicolons from SQL.
📌 Sticky Notes
Organize your thoughts, tasks, and ideas with drag-and-drop sticky notes.
Sticky Notes Organize your thoughts Saved locally
📌
Click "+ Add Note" to create your first sticky note.
Text Comparator
Compare two texts and see the differences highlighted.
Click "Compare" to see differences highlighted.
Ready to compare
Text Statistics
Get detailed statistics about your text: words, characters, paragraphs, sentences, and more.
0
📝 Words
0
🔤 Characters
0
📏 Characters (no spaces)
0
📄 Sentences
0
📑 Paragraphs
0
📃 Lines
0
📊 Avg word length
0
📊 Avg sentence length
SQL Query Templates
Ready-to-use boilerplate for common query patterns — CTEs, joins, date rollups, window functions, and stored procedures. Click Copy and adapt the table/column names.
CTE
Basic CTE (Common Table Expression)
Break a query into a readable, reusable named block.
WITH recent_orders AS (
    SELECT
        customer_id,
        order_id,
        order_date,
        total_amount
    FROM orders
    WHERE order_date >= DATEADD(day, -30, GETDATE())
)
SELECT
    customer_id,
    COUNT(order_id)   AS order_count,
    SUM(total_amount) AS total_spent
FROM recent_orders
GROUP BY customer_id
ORDER BY total_spent DESC;
Recursive CTE (hierarchy / org chart)
Walk a parent-child tree, e.g. an employee/manager hierarchy.
WITH RECURSIVE employee_hierarchy AS (
    -- Anchor: top-level rows (no manager)
    SELECT
        employee_id,
        manager_id,
        employee_name,
        1 AS level
    FROM employees
    WHERE manager_id IS NULL

    UNION ALL

    -- Recursive: join children to their parent's result
    SELECT
        e.employee_id,
        e.manager_id,
        e.employee_name,
        eh.level + 1
    FROM employees e
    INNER JOIN employee_hierarchy eh
        ON e.manager_id = eh.employee_id
)
SELECT *
FROM employee_hierarchy
ORDER BY level, employee_name;
-- Note: SQL Server / Oracle: drop the RECURSIVE keyword (just WITH employee_hierarchy AS (...))
Joins
INNER / LEFT JOIN across multiple tables
Combine orders with customers and line items in one query.
SELECT
    o.order_id,
    c.customer_name,
    o.order_date,
    p.product_name,
    oi.quantity
FROM orders o
INNER JOIN customers c
    ON o.customer_id = c.customer_id
LEFT JOIN order_items oi
    ON o.order_id = oi.order_id
LEFT JOIN products p
    ON oi.product_id = p.product_id
WHERE o.order_date >= '2026-01-01'
ORDER BY o.order_date DESC;
GROUP BY / Dates
Monthly rollup with GROUP BY on a date
Aggregate a date column by month (swap the truncation line for your engine).
SELECT
    DATE_TRUNC('month', order_date) AS order_month,     -- PostgreSQL
    -- FORMAT(order_date, 'yyyy-MM')  AS order_month,    -- SQL Server
    -- DATE_FORMAT(order_date, '%Y-%m') AS order_month,  -- MySQL
    COUNT(*)          AS order_count,
    SUM(total_amount) AS revenue
FROM orders
GROUP BY DATE_TRUNC('month', order_date)
ORDER BY order_month;
Window Functions
ROW_NUMBER + running total
Rank each customer's orders and compute a running total.
SELECT
    customer_id,
    order_id,
    order_date,
    total_amount,
    ROW_NUMBER() OVER (
        PARTITION BY customer_id
        ORDER BY order_date DESC
    ) AS order_rank,
    SUM(total_amount) OVER (
        PARTITION BY customer_id
        ORDER BY order_date
        ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
    ) AS running_total
FROM orders;
Stored Procedures
Parameterized stored procedure
A basic proc with optional date-range filters (T-SQL syntax).
CREATE PROCEDURE GetCustomerOrders
    @CustomerId INT,
    @StartDate  DATE = NULL,
    @EndDate    DATE = NULL
AS
BEGIN
    SET NOCOUNT ON;

    SELECT
        order_id,
        order_date,
        total_amount
    FROM orders
    WHERE customer_id = @CustomerId
        AND (@StartDate IS NULL OR order_date >= @StartDate)
        AND (@EndDate   IS NULL OR order_date <= @EndDate)
    ORDER BY order_date DESC;
END;
-- Call it: EXEC GetCustomerOrders @CustomerId = 101, @StartDate = '2026-01-01';
Upsert / Merge
MERGE (upsert) from a staging table
Insert new rows and update matching ones in a single statement.
MERGE INTO customers AS target
USING staging_customers AS source
    ON target.customer_id = source.customer_id
WHEN MATCHED THEN
    UPDATE SET
        target.customer_name = source.customer_name,
        target.email         = source.email,
        target.updated_at    = GETDATE()
WHEN NOT MATCHED THEN
    INSERT (customer_id, customer_name, email, created_at)
    VALUES (source.customer_id, source.customer_name, source.email, GETDATE());
🎨 Color Picker & Converter
Pick a color (or type a value) and get HEX, RGB, HSL, HSV, and CMYK instantly — copy any format with one click.
HEX
#FACC15
RGB
rgb(250, 204, 21)
RGB Percent
rgb(98%, 80%, 8%)
HSL
hsl(46, 96%, 53%)
HSV / HSB
hsv(46, 92%, 98%)
CMYK
cmyk(0%, 18%, 92%, 2%)
CSV ⇄ JSON Converter
Paste CSV or JSON and convert between them. Handles quoted fields, embedded commas, and nested-safe escaping.
SQL Query Explainer
Paste a SQL query and get a plain-English, structured breakdown of what it does. Pattern-based — works fully offline, no AI involved.
Unit Converter
Convert data sizes and time durations. Pick a category, enter a value, and see it converted to every other unit.
Time Till
Track how many days are left until any number of dates — deadlines, launches, deliveries. Optionally count business days only.
⏱ Pomodoro / Focus Timer
Classic work/break focus timer. Runs entirely in this tab — leaving or refreshing the page resets it.
Focus Session
25:00
0
QR Code Generator
Turn any text or URL into a scannable QR code — generated 100% in your browser, nothing sent anywhere.
Type something to generate a QR code.

QR Code Generator — Create a Free QR Code Online

This QR Code Generator turns any URL or block of text into a scannable QR code, generated entirely in your browser — nothing is sent to a server. It's built for anyone who needs a free QR code generator for a business card, flyer, product label, or quick link-sharing, without signing up for an account or worrying about a third-party tracking service. Type your text or link, and download the result as a PNG.

⚡ Key Takeaways

  • Generates a scannable QR code entirely in your browser — nothing sent to a server.
  • Three error-correction levels trade off data capacity against damage resistance.
  • Supports roughly 100 characters, depending on the error-correction level chosen.
  • Always test-scan a code before finalizing print materials at their actual size.

What, Who, When & Why

What it's forGenerates a scannable QR code from any URL or text, entirely in your browser.
Who it's forAnyone creating print materials, product labels, or quick links that need to be scanned by a phone.
When to use itWhen you need a scannable link for a business card, flyer, packaging, or event material.
Why it's neededThird-party QR generators often track scans or require signup; a client-side generator produces the code with nothing sent to a server.
Best way to use itTest-scan the generated code with your own phone at the intended print size before finalizing any physical materials.

How to Use the QR Code Generator

  1. Type or paste a URL or block of text into the input field.
  2. Choose an error-correction level — Medium is a good default for most uses.
  3. The QR code appears and updates automatically as you type.
  4. Click Download PNG to save the QR code image to your device.

Understanding Error Correction Levels

QR codes include built-in error correction so they can still be scanned even if part of the code is damaged, dirty, or partially obscured (for example, by a logo placed in the center). This tool offers three levels:

LevelRecovery capacityBest for
LowLowest — but fits more dataLonger text/URLs where space is tight
MediumBalancedGeneral-purpose use (recommended default)
QuartileHigher recoveryCodes that may get scuffed, printed small, or partially covered

Example

Typing https://dataflu.com generates a scannable QR code that, when scanned by any smartphone camera, opens that URL directly — no app required beyond the device's built-in camera on most modern phones. Switching the error-correction level from Medium to Quartile for the same URL produces a visually denser code that's more resistant to damage or partial obstruction, at the cost of slightly less room for longer text.

Error Correction Level — Relative Damage Recovery
Low
~7% recovery
Medium
~15% recovery
Quartile
~25% recovery

Key Features

  • Generates QR codes entirely client-side — no data is sent to any server.
  • Three selectable error-correction levels (Low, Medium, Quartile).
  • Live preview that updates as you type.
  • One-click PNG download at a sharp, print-ready resolution.
  • Works with both URLs and plain text.

Practical Use Cases

  • Business cards and flyers: generate a scannable link to a website or contact page for print materials.
  • Product packaging: link to a manual, support page, or product listing.
  • Quick link sharing: generate a QR code for a document or page link to share in a presentation or on a screen.
  • Event materials: link attendees directly to a registration form, agenda, or feedback survey.
  • Wi-Fi or contact sharing: encode plain text information for quick scanning, such as a short message or reference code.

Tips for Best Results

  • Use a URL shortener for long links if you're running into the character limit, since shorter text allows for higher error correction.
  • Choose Quartile error correction for anything that will be printed small or handled frequently, like a product label.
  • Test-scan your generated code with your own phone before finalizing print materials, especially at the actual size it will be printed.

Related Terminology

A QR code (Quick Response code) is a two-dimensional barcode that encodes text or a URL in a grid of black and white squares, readable by smartphone cameras and dedicated scanners. Error correction is built into the QR code standard using Reed-Solomon coding, which allows the code to remain scannable even with some damage or obstruction.

Important Considerations

This tool supports text up to roughly 100 characters, depending on the error-correction level chosen — higher error correction leaves less room for data. If your text is too long, try shortening it or using a URL shortener first. Very small printed QR codes can be harder to scan reliably, so consider a higher error-correction level for small or low-quality print applications.

Related Tools

Need to share a color scheme alongside your QR code design? Check the Color Picker. Building marketing or planning materials? The Flow Planner can help sketch out a layout or workflow before finalizing your design.

Frequently Asked Questions

Is this QR code generator really free?

Yes, it's completely free with no account required, and it runs entirely in your browser so there's no usage limit tied to a server.

How long can the text or URL be?

The tool supports up to roughly 100 characters depending on the error-correction level selected — shorter text allows for higher error correction.

Which error-correction level should I choose?

Medium is a good default for most uses. Choose Quartile if the code will be printed small or might get scuffed or partially covered, and Low if you need to fit more text and don't need extra damage resistance.

Is my data sent to a server when I generate a QR code?

No — the QR code is generated entirely by JavaScript running in your browser, so the text or URL you enter is never transmitted anywhere.

Should I test-scan my QR code before printing it?

Yes, it's good practice to scan the generated code with your own phone at the intended print size before finalizing any physical materials.

🧩 Flow Planner
Sketch out flows and diagrams with shapes and connectors. Double-click a shape to rename it, drag to move, and export the whole board as a PNG.
Drag from a shape's blue dot to another shape to connect them. Double-click a shape to type inside it.
🗄️ ER Diagram Designer
Sketch database schemas visually — add tables, define columns with types and keys, and draw relationships between them. Export the finished diagram as a PNG.
Drag a column's dot onto another column to relate them. Click a table's header to drag it.
Free • Browser-Based • No Sign-Up

Tools for analysts, developers & QA engineers

33 free, browser-based utilities — text and list tools, SQL helpers, converters, and small productivity apps. Everything runs locally; nothing you type or paste is ever uploaded.

📊

For Analysts

Clean lists, build SQL fragments, and reshape data without opening a spreadsheet.

💻

For Developers

Format SQL, convert data formats, and handle everyday text and encoding tasks.

🧪

For QA Engineers

Generate test data, compare text output, and sanitize queries before sharing them.

Core Tools

🔀
LIVE
Delim Converter
Convert comma, pipe, tab, or custom-delimited lists in seconds — perfect for turning spreadsheet columns into SQL IN-clauses, CSV rows, or JSON-ready arrays.
Open tool
🔤
LIVE
Case Converter
Instantly convert text to UPPERCASE, lowercase, Title Case, or Sentence case — handy for cleaning up names, headlines, and inconsistent data entry.
Open tool
🧹
LIVE
Duplicate Remover
Remove duplicate lines from any list while keeping the rest in order, then sort alphabetically or by length — great for cleaning email lists, tags, or CSV exports.
Open tool
🔢
LIVE
Number Extractor
Pull every integer, decimal, and percentage out of messy text or pasted reports — useful for quickly isolating prices, IDs, and metrics from unstructured data.
Open tool
🔡
LIVE
Character Counter
Get an instant character, word, and line count, with and without spaces — useful for meeting character limits on titles, meta descriptions, and forms.
Open tool
🔁
LIVE
Text Reverser
Reverse a string, flip the order of words, or reverse the order of lines — a quick utility for palindromes, obfuscation, or reordering data.
Open tool
🔍
LIVE
Find & Replace
Run multiple find-and-replace operations on a block of text in one pass, with optional case-sensitive and regex matching — faster than replacing strings one at a time.
Open tool
🏷️
LIVE
Prefix / Suffix Stamper
Add the same prefix and/or suffix to every line of a list — ideal for wrapping values in quotes or brackets, or building URL lists and SQL fragments.
Open tool
✂️
LIVE
Whitespace Trimmer
Trim leading/trailing spaces, collapse repeated whitespace, or strip all whitespace entirely — fixes copy-paste formatting issues from spreadsheets and PDFs.
Open tool
📊
LIVE
Column Extractor
Pull specific columns out of CSV or tab-separated data by column number — no spreadsheet software required.
Open tool
📏
LIVE
Split by Chunk
Break a long string into fixed-width chunks — useful for splitting serial numbers, hashes, or IDs into readable segments.
Open tool
🔠
LIVE
Alphabetical Sorter
Sort any list alphabetically (A→Z or Z→A) or by line length — a quick way to organize names, tags, or file lists.
Open tool
🔐
LIVE
Escape / Unescape
Convert text to HTML entities or JSON-safe strings, or reverse the process — essential for safely embedding user text in HTML or JSON payloads.
Open tool
#️⃣
LIVE
Line Number Stamper
Add sequential line numbers to any list, starting from any number — useful for numbered references, changelogs, and IDs.
Open tool
🧮
LIVE
SQL Value Generator
Wrap a list of values in quotes and parentheses to build a ready-to-paste SQL IN (...) clause — skip manually quoting hundreds of values.
Open tool
🔄
LIVE
CSV ⇄ JSON Converter
Convert CSV data to JSON, or JSON arrays back to CSV, with proper handling of quoted fields and embedded commas — no spreadsheet or script required.
Open tool

SQL Tools