Blog

  • Make PDF Look Scanned: Browser-Only Converter [2026]

    Make PDF Look Scanned: Browser-Only Converter [2026]

    TL;DR: A “scanned PDF converter” makes a clean digital PDF look like it came out of a real scanner — adds skew (slight rotation), paper grain, faded ink, edge shadows, and downsamples to 96–150 DPI. Used for forms that demand “scanned” submissions, courtesy submissions where a printout-and-rescan would be the official process, and for visual consistency in workflows that mix scanned and digital documents. Our free scanned PDF converter runs entirely in your browser using pdf-lib + canvas filters.

    The “please submit as a scanned PDF” requirement is one of the small absurdities of digital paperwork. A perfectly valid digital signature is rejected by an HR system that still parses scanned forms only. A government portal expects an “ink-on-paper” feel even though the form was filled in Word. Some e-discovery systems flag clean PDFs as suspicious because they assume real submissions go through a copier. The fix: take your clean digital PDF and run it through filters that mimic the artefacts of a real scan — grain, skew, faded edges, slightly off-white paper.

    Our scanned PDF converter applies five effects in combination: skew (random ±2° rotation per page), grain (paper texture noise), ink fade (slight contrast reduction), edge shadow (vignetting from the scanner glass), and resolution downsample (rasterise to 150 DPI). The result passes most “looks scanned” detectors without any of the security concerns of uploading sensitive forms to an unknown server. This guide covers each effect, when to use this for legitimate workflows, and the legal grey areas to avoid.

    The 5 effects and what each fixes

    Effect Tells it fixes Default value
    Skew Perfectly aligned page edges ±1.5° rotation per page
    Paper grain Pixel-perfect text and uniform background 8% noise, low contrast
    Ink fade Pure black text, 100% saturation Reduce contrast 12%, RGB shift to #1a1610
    Edge shadow Razor-sharp page boundaries 12px gradient at edges, 30% opacity
    Resolution Vector-perfect text rendering Rasterise to 150 DPI
    Paper tint Pure white background #fdfaf2 (off-white)
    JPG compression Sharp PNG-grade quality JPG quality 80, slight blocking

    Three intensity presets

    Most users don’t need to tune individual sliders. The presets cover 95% of cases:

    • Light: subtle grain and skew, retains text crispness. For legitimate forms where the scanned look is a courtesy.
    • Medium (default): noticeable grain, ink fade, edge shadow. The “honest scan” preset.
    • Heavy: aggressive aging — strong grain, brown paper tint, more skew. For documents you want to look old or photocopied many times.

    Pick a preset, preview the first page, adjust if needed.

    How to make a PDF look scanned

    1. Open the scanned PDF converter
    2. Drop your PDF in
    3. Pick a preset: Light, Medium, or Heavy
    4. Adjust skew amount, grain intensity, paper tint, and resolution if needed
    5. Click Convert. Each page is rasterised, processed, and re-embedded
    6. Download the converted PDF — typically 2–4× the original file size due to raster pages

    Legitimate uses (and the line you shouldn’t cross)

    Legitimate:

    • Forms that demand a “scanned” submission for visual consistency (HR forms, some legal templates, some government portals)
    • Submitting a digital fill of a form designed to be printed-and-scanned
    • Visual consistency in mixed scanned/digital archives
    • Mock-ups for UI design (e.g., showing what a scanned doc looks like in a doc-management UI)
    • Educational examples of OCR pre-processing

    Don’t:

    • Forge documents — making a fake invoice “look scanned” to deceive someone is fraud, regardless of whether you used Photoshop or this tool
    • Pass off a generated document as having gone through a paper original — for any document that requires a wet-ink signature, use one
    • Strip metadata to hide the original source from a fraud investigation
    • Manipulate evidence — adding “scanned” artifacts to a document submitted in legal proceedings is evidence tampering

    The tool is for honest workflows. If your use case requires the recipient to believe the file went through a paper-and-scanner pipeline that it didn’t, you’re in fraud territory.

    Common gotchas

    • File size grows. Rasterising vector pages to images (even at 150 DPI) typically 2–4× the original file size. A 1 MB digital PDF becomes 2–4 MB scanned-look output. Run through a PDF compressor after if size matters.
    • Text becomes uncopyable. The output is image-based — selecting text returns nothing. Most workflows treat that as a feature (real scans are also image-based until OCR). If you need selectable text, don’t run this conversion.
    • Search engines and accessibility tools can’t read it. A converted PDF has no machine-readable text — which is fine for forms but bad for archival. Keep the digital original.
    • Skew direction. Use random ±skew per page, not constant ±skew. A constant tilt looks like a misaligned scanner, not a stack of slightly-misfed pages.
    • Paper colour. Pure white (#FFFFFF) is the giveaway — real scans land on slightly off-white because of paper colour, ambient light, or scanner sensor calibration. Even at “Light” preset we tint to #fdfaf2.
    • Line art. CAD drawings and line-art-heavy documents can look damaged after grain + downsample. Test before processing technical drawings.

    When NOT to use this tool

    For documents that require legal authenticity (contracts, medical records, court filings), skip the conversion — submit the original PDF if possible, or scan a printed copy of the wet-signed version. For OCR or text extraction, the conversion makes things worse, not better — keep the digital original. For batch processing (100s of files at scanned-look output), install pdf-lib + sharp locally and script the conversion. For sensitive material where even browser processing is too risky, use offline software like ImageMagick on an air-gapped machine.

    Frequently asked questions

    Why would I want to make a PDF look scanned?

    Forms that demand “scanned” submissions for visual consistency, government portals that flag clean PDFs, HR systems that only accept scan-style files, and visual consistency across archives that mix scanned and digital documents. Always for honest workflows — fabricating documents to deceive someone is fraud regardless of the tool.

    Will the converted PDF still have selectable text?

    No. The conversion rasterises each page, so the output is image-based. Selecting text returns nothing. Most workflows that demand “scanned” PDFs expect this — real scans are also image-based until OCR is applied. If you need selectable text, don’t run this conversion.

    How much does the file size grow?

    Typically 2–4× the original. A 1 MB digital PDF becomes 2–4 MB after raster conversion at 150 DPI. Run the output through a PDF compressor if size matters — a moderate compression brings it back close to the original size while keeping the scanned look.

    Is this legal?

    The tool itself is legal everywhere. The output’s legality depends on use. Submitting a converted file to a workflow that demands “scanned” format for visual consistency is fine. Using it to forge documents (fake invoices, fake official records) is fraud regardless of the tool.

    Is my PDF uploaded?

    No. The converter runs in your browser using pdf-lib + canvas. The file loads into a blob URL and never leaves your tab. You can verify in the Network tab — zero outbound requests after upload.

    Can I undo the conversion?

    No — once rasterised, the original vector text is gone. Always keep your digital original in a separate file. The converted file is a one-way derivative, not a wrapper around the original.

    Related tools and guides

     

  • Lorem Ipsum Generator: Placeholder Text in Seconds [2026]

    Lorem Ipsum Generator: Placeholder Text in Seconds [2026]

    TL;DR: A lorem ipsum generator produces placeholder text — sentences and paragraphs of fake-Latin filler — for design mockups, layout prototyping, and content-shaped void filling. Our free lorem ipsum generator outputs by paragraphs, sentences, or word count, with optional HTML markup (<p> wrappers) for direct paste into a CMS, and the canonical “lorem ipsum dolor sit amet” opening or randomised text.

    Lorem ipsum has been the design industry’s placeholder text since the 1500s, when an unknown printer adapted a 45 BC philosophy treatise by Cicero — De finibus bonorum et malorum — into nonsense Latin to demonstrate typesetting fonts without distracting readers with real content. Five centuries later, every CMS, design tool, and front-end mockup still leans on it. The reason it stuck: real content distracts. When you’re showing a client a layout, you want them looking at the layout, not reading the words.

    Our lorem ipsum generator outputs by paragraph count, sentence count, or word count, with options for HTML wrapping, randomised vs. canonical opening, and instant copy. This guide explains the right and wrong uses of placeholder text, the alternatives worth considering, and the gotchas that lead to “lorem ipsum” accidentally shipping to production (it has happened — embarrassingly — at multiple Fortune 500 companies).

    What lorem ipsum actually says (and why it doesn’t matter)

    The canonical first sentence — “Lorem ipsum dolor sit amet, consectetur adipiscing elit” — is a corruption of Cicero’s “Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit”. The original translates roughly to “There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain”. The placeholder version is gibberish — words have been chopped, jumbled, and elongated into nonsense.

    That nonsense is the point. Lorem ipsum’s job is to occupy visual space without drawing reader attention. Real content immediately triggers comprehension instincts; the reader starts thinking about the message. Pseudo-Latin defeats that instinct — your brain registers “text-shaped” without engaging with meaning. Designers can evaluate typography, hierarchy, line-length, and rhythm without the user (or the client) getting distracted by what the text says.

    Five legitimate uses of lorem ipsum

    • Wireframes and mockups. Before content is written, designers fill body areas with lorem ipsum to show structure. The whole point of a wireframe is to communicate layout independently of content.
    • Stress-testing typography. Real content rarely fills the worst-case scenarios — extra-long paragraphs, missing line breaks, weird character combinations. Lorem ipsum stretches across the layout reliably for QA.
    • CMS template development. Building a WordPress theme or design system component? Lorem ipsum demonstrates how the template handles arbitrary text without exposing real client data during development.
    • Print-design proofing. Magazine layouts, brochures, and editorial designs test column flow with lorem ipsum before final copy lands.
    • Email template testing. Email clients render unpredictably; testing with lorem ipsum across Gmail/Outlook/Apple Mail catches breakage before real campaigns send.

    How to use the browser lorem ipsum generator

    1. Open the lorem ipsum generator
    2. Choose unit: paragraphs, sentences, or words
    3. Set quantity (1-50 paragraphs, 1-100 sentences, 1-1000 words)
    4. Toggle “Start with Lorem ipsum dolor sit amet…” for the canonical opening, or leave off for randomised
    5. Toggle “Wrap in HTML” to get <p> tags around each paragraph (paste-ready for CMS visual editors that don’t auto-wrap)
    6. Click Copy to grab the generated text, or Generate again for a fresh sample

    The output is generated client-side by selecting from a curated word list and assembling sentences with realistic Latin-like punctuation distribution. Nothing transmits to a server.

    Lorem ipsum alternatives — when filler text needs personality

    Alternative Vibe When to use
    Bacon Ipsum Meat-themed (bacon, prosciutto, t-bone) Restaurant menus, food brands
    Hipster Ipsum Brooklyn-flavour adjective stew Trendy startup mockups
    Corporate Ipsum Synergize-leverage-ROI buzzwords B2B SaaS pitch decks
    Cupcake Ipsum Sugar/dessert words Bakery, candy, kid-targeted designs
    Real content Actual draft copy Anything past initial wireframe — content shapes design

    Themed alternatives are fun for early-stage mocks but should never be left in production. They draw attention to themselves the way real lorem ipsum doesn’t, and clients tend to comment on them rather than the design.

    The “lorem ipsum shipped to production” hall of fame

    Lorem ipsum makes it to production websites surprisingly often. Search “lorem ipsum site:nytimes.com” or any major brand domain on Google and you’ll find archived examples. Common scenarios:

    • Form-field placeholders — the “Enter your email” placeholder in a signup form gets replaced with “Lorem ipsum” and ships.
    • Image alt text — accessibility audits surface lorem ipsum alt attributes on production marketing images.
    • Empty CMS fields — a category page renders lorem ipsum because the editor never wrote real introductory text.
    • Email signatures — corporate email templates with placeholder paragraphs still in them, sending to real customers.
    • Mobile app onboarding screens — the third onboarding step’s body text never got written, lorem ipsum ships in the app.

    Every team that has shipped lorem ipsum to production swears they have a “before-launch checklist” now. Search-and-replace for “lorem ipsum” across your codebase before deploys.

    Generating lorem ipsum in code

    Node.js (lorem-ipsum npm package):

    import { LoremIpsum } from "lorem-ipsum";
    
    const lorem = new LoremIpsum({
      sentencesPerParagraph: { max: 8, min: 4 },
      wordsPerSentence: { max: 16, min: 4 },
    });
    
    console.log(lorem.generateParagraphs(3));

    Python (lorem package):

    import lorem
    print(lorem.paragraph())   # one paragraph
    print(lorem.text())         # multiple paragraphs

    VS Code shortcut (Emmet):

    // In any HTML file, type "lorem" + Tab → 30 words of lorem ipsum
    // Or specify count: "lorem50" → 50 words
    
    // Wrap in elements:
    // p*3>lorem  → 3 paragraphs each containing lorem ipsum

    Common mistakes with lorem ipsum

    • Using it past wireframe stage. Once visual design is approved, lorem ipsum should be replaced with real content. Designs that look great with placeholder text often break with real content (longer headlines, shorter body copy, missing data).
    • Forgetting it in CSS comments or hidden fields. “Lorem ipsum” sometimes lurks in CSS comments or HTML attributes that don’t render but show up in search results or developer-tool inspections.
    • Letting it indicate quality. A product page with three perfectly-typeset paragraphs of lorem ipsum looks like a finished product to your eye. Real content of the same length might be three short bullet points and an FAQ. Test designs against realistic content shapes, not idealised paragraphs.
    • Using English-language lorem ipsum. Some “lorem ipsum” alternatives are actually English nonsense words. They’re harder to ignore — your brain auto-parses them — defeating the purpose. Stick with Latin-style for layout work.

    When NOT to use lorem ipsum

    • For final-stage user testing. Test with realistic content. Users react differently to “Lorem ipsum dolor” than to “Track your medication, set reminders, share with your doctor”.
    • For accessibility testing. Lorem ipsum’s punctuation and word-length distribution doesn’t match real screen-reader experience. Test with real content for accessibility.
    • For SEO content audits. Lorem ipsum has zero topical relevance and zero search potential. Don’t analyse search performance against placeholder text.
    • For client previews on a launched site. Lorem ipsum on a live URL looks unprofessional. Use a staging environment.

    Frequently asked questions

    Does lorem ipsum text mean anything?

    The canonical lorem ipsum is a corruption of Cicero’s De finibus bonorum et malorum from 45 BC, scrambled in the 1500s by an anonymous printer. Words were chopped, reordered, and altered into pronounceable nonsense. There’s no meaningful translation — that’s intentional. The text exists to occupy visual space without engaging the reader’s comprehension.

    How much lorem ipsum should I generate for a typical mockup?

    For body content, 50-100 words per paragraph and 2-4 paragraphs per section. For headlines, 5-12 words. For meta descriptions, ~25 words (matches Google’s snippet length). The goal is matching realistic content shape, not maximum filler.

    Will Google penalise pages containing lorem ipsum?

    Not directly — Google doesn’t single out lorem ipsum for penalty. But pages with lorem ipsum almost universally have other quality issues (thin content, no real value, draft state) that Google’s algorithm penalises. Lorem ipsum is a symptom, not a cause. Search Console may surface “lorem ipsum dolor” as a query you’re ranking for, which is embarrassing but not dangerous.

    Can I use lorem ipsum commercially?

    Yes. Lorem ipsum is in the public domain — Cicero died over 2000 years ago, and the modern corruption has been used continuously since the 1500s. No copyright applies. Use it freely in any commercial design work or product.

    What’s the best length for lorem ipsum in a wireframe?

    Match real content. If your real article will be 800 words, generate 800 words. If your hero subhead will be 8-12 words, generate 8-12. Designs that look balanced with the wrong filler length break when real content arrives. Always test against realistic content shape.

    Is the lorem ipsum generator generated locally?

    Yes. The text is assembled in your browser using a curated word list. No requests are made to any server. Verify in DevTools Network tab — there are no API calls when you click Generate.

    Related tools and guides

     

  • JSON Tree Viewer Online: Validate, Format, Search [2026]

    JSON Tree Viewer Online: Validate, Format, Search [2026]

    TL;DR: A JSON tree viewer takes raw JSON text and renders it as an interactive collapsible tree — easier to read, navigate, and validate than a flat text dump. Our free JSON tree viewer online handles validation, pretty-printing, search, and collapse/expand. Runs entirely in your browser; supports JSON files up to 100MB. No upload, no signup.

    Every developer has had this moment: a 5,000-line JSON response from an API, dropped into a text editor, immediately overwhelming. Where’s the user object? Is the date field a string or a timestamp? Is that array of 200 items really 200, or did somebody slip a null in at position 42? A JSON tree viewer makes the file navigable — click to collapse arrays you’re not interested in, click to expand the ones you are, search for specific keys.

    Our JSON tree viewer validates and renders any JSON document in your browser — no upload, no rate limits, no analytics on what you paste. This guide explains the syntactic gotchas that produce parse errors, the difference between a tree viewer and a formatter, the security implications of pasting JSON containing tokens, and the API workflows where a tree viewer earns its place.

    What a JSON tree viewer does that a text editor doesn’t

    • Validates as you paste. Invalid JSON shows a clear error with line/column. No more “Unexpected token at position 1247” cryptic messages — the viewer points at the exact problem.
    • Auto-indents and pretty-prints. Minified JSON ({"a":1,"b":[2,3]}) becomes readable tree structure with consistent 2-space indents.
    • Collapses and expands sections. Click the disclosure triangle to collapse an array of 1,000 items into [1000]. Drill into specific paths without scrolling through irrelevant data.
    • Search across keys and values. Find every occurrence of “user_id” or “null” or any specific value. Often the fastest way to verify whether a deep field exists.
    • Type indication. Strings show as one colour, numbers another, booleans another, null another. At a glance, you can spot when a number got serialised as a string by mistake.
    • Path tracking. Hover over any value to see its full JSONPath ($.users[3].profile.email). Useful when constructing JSONPath queries for tools like jq, JMESPath, or your API’s filter syntax.

    Common JSON syntax errors and their causes

    Error Cause Fix
    Trailing comma [1, 2, 3,] or {"a":1,} Strict JSON disallows trailing commas. Remove the last comma.
    Single quotes {'name': 'value'} JSON requires double quotes on all strings and keys.
    Unquoted keys {name: "value"} JavaScript object syntax, not JSON. Quote all keys.
    JavaScript comments // or /* */ Standard JSON disallows comments. Use JSON5 or strip before parsing.
    NaN, Infinity, undefined Non-finite numbers JSON only allows finite numbers and null. Convert before serialising.
    Unescaped backslashes in strings "path": "C:\Users\..." Backslashes need escaping: "C:\\\\Users\\\\..."
    BOM at start of file UTF-8 BOM (EF BB BF) bytes Some parsers reject. Save without BOM.

    The viewer’s error messages point at the exact line and character where parsing failed, with the offending character highlighted. For unhelpful errors like “Unexpected end of input”, scroll to the bottom of the file — usually a missing closing brace or bracket.

    How to use the browser JSON tree viewer

    1. Open the JSON tree viewer
    2. Paste JSON into the input panel, or drop a .json file
    3. The tree renders on the right, collapsible at every level
    4. Click any node’s disclosure triangle to expand / collapse
    5. Use the search box at the top to find specific keys or values
    6. Hover over a value to see its JSONPath at the bottom of the panel
    7. Click “Format” to pretty-print the source, or “Minify” to compress
    8. Click “Copy” to copy the formatted JSON, or “Download” for a file

    The viewer handles JSON files up to ~100MB practically — beyond that, browser memory becomes the bottleneck.

    Why pasting API JSON into a third-party site is risky

    The reason browser-based tools matter for JSON specifically: the JSON people inspect most often contains exactly the data attackers want.

    • API responses include tokens. JWT auth tokens, API keys, OAuth refresh tokens — common in JSON payloads. Pasting into a hosted tool means handing those credentials to a third party.
    • Database dumps include PII. Customer names, emails, addresses, sometimes payment info — all common in JSON exports from production systems.
    • Internal config files include infrastructure details. AWS bucket names, IP ranges, internal hostnames — useful for reconnaissance if leaked.
    • Webhook payloads include audit data. Events containing user actions, timestamps, IP addresses.

    Our viewer runs entirely in your browser via JavaScript’s built-in JSON.parse. Your JSON never leaves your device. Verify by opening DevTools’ Network tab — there are no requests when you paste, format, or search. For JSON containing real production credentials, this is the only safe workflow.

    JSON tooling beyond the viewer — jq, JMESPath, and friends

    jq (CLI — the standard for JSON processing in shell scripts):

    # Pretty-print
    cat data.json | jq .
    
    # Extract a nested field
    curl -s api.example.com/user | jq '.profile.email'
    
    # Filter an array
    cat users.json | jq '.[] | select(.verified == true) | .name'
    
    # Convert JSON to CSV
    cat data.json | jq -r '[.id, .name, .email] | @csv'

    JMESPath (used by AWS CLI and many APIs):

    aws ec2 describe-instances \
      --query 'Reservations[].Instances[].[InstanceId, State.Name, Tags[?Key==`Name`]|[0].Value]' \
      --output table

    JavaScript / Python deep extraction:

    // JavaScript optional chaining
    const email = data?.user?.profile?.email ?? "(missing)";
    
    // Python with deep get
    def get(obj, *keys, default=None):
        for k in keys:
            if not isinstance(obj, dict) or k not in obj: return default
            obj = obj[k]
        return obj
    
    email = get(data, "user", "profile", "email", default="(missing)")

    The browser tree viewer is for exploration; jq and JMESPath are for repeatable extraction. Use both — the viewer to understand the shape, jq to script the transformation.

    Common gotchas when working with JSON

    • Numbers losing precision. JSON’s number type is a 64-bit float. Numbers above 2^53 (about 9 quadrillion) lose precision when parsed. APIs returning long IDs as numbers (9223372036854775807) often look correct in JSON but get rounded by JavaScript’s parser. Best practice: APIs should serialise IDs as strings.
    • Date formatting. JSON has no native date type. Most APIs use ISO 8601 strings ("2026-04-23T14:32:00Z") but some use Unix timestamps as numbers (1745418720). The tree viewer shows them as their literal type — interpret in context.
    • Unicode in keys vs values. JSON allows Unicode in string values but historically required ASCII for keys. Modern parsers accept Unicode keys; older systems sometimes reject them.
    • Order preservation. JSON objects are technically unordered. JavaScript engines preserve insertion order for non-integer keys, but don’t rely on it for canonicality. If order matters, use an array of [key, value] pairs.

    When NOT to use a browser JSON tree viewer

    • For JSON files larger than 100MB. Browser RAM becomes the bottleneck. Use jq, ijson (Python), or a streaming JSON parser at the command line.
    • For real-time monitoring of JSON streams. Use ndjson (newline-delimited JSON) processing in your terminal, not a one-shot tree viewer.
    • For automated parsing. The viewer is for human inspection. Use jq, ijson, or your language’s JSON library for any scripted workflow.
    • For JSON5 / JSONC files. Standard JSON parsers reject comments and trailing commas. Use a JSON5-aware parser or strip non-standard syntax first.

    Frequently asked questions

    Will the JSON tree viewer handle invalid JSON?

    Yes — and that’s its primary value when JSON is broken. Invalid JSON shows a clear error message pointing at the line and column of the parse failure, with the offending character highlighted. Once you fix the issue, paste again and it renders correctly.

    What’s the maximum JSON file size?

    Practically ~100MB before browser memory becomes the bottleneck. The native JSON.parse method handles large files efficiently, but the tree-rendering UI slows down significantly above that. For larger JSON, use jq or ijson at the command line.

    Is my JSON sent anywhere?

    No. The viewer uses JavaScript’s native JSON.parse in your browser. The JSON you paste, the formatted output, and any searches all stay on your device. Verify by opening DevTools’ Network tab — there are no requests during use.

    Does the viewer handle JSON5 / JSONC?

    Standard JSON only. JSON5 (with comments and trailing commas) and JSONC (JSON with comments) are not supported by JavaScript’s native parser. Strip the non-standard syntax first, or use a JSON5-aware tool like json5 on npm.

    Can I export the tree as a hierarchy diagram?

    Not directly. The tree is rendered as collapsible HTML, which works well in browsers but not as a printable diagram. For visual diagrams, copy a representative snippet of the JSON, format it, and screenshot the formatted output. For full hierarchy diagrams, use specialised tools like JSONCrack.

    What’s the difference between a JSON viewer and a JSON formatter?

    A formatter pretty-prints JSON as readable text — adds indentation and line breaks but stays as a flat text view. A tree viewer shows JSON as an interactive hierarchy with expand/collapse, search, and path tracking. Most JSON tree viewers (including ours) include both — formatter for output, tree for interactive exploration.

    Related tools and guides

     

  • Fake Tweet Generator: Realistic X/Twitter Mockups [2026]

    Fake Tweet Generator: Realistic X/Twitter Mockups [2026]

    TL;DR: A fake tweet generator builds realistic mock tweets — username, avatar, post body, like/retweet/reply counts, verified badge — without actually posting. Used in slide decks, course content, marketing case studies, and editorial articles. Our free tweet generator mirrors X/Twitter’s current design (light + dark modes), exports a high-resolution PNG, and runs entirely in your browser.

    Mock tweets show up in every other tech article, marketing deck, and “social media strategy” course online. They’re the visual shorthand for “imagine this got 50,000 likes” or “here’s how a viral tweet looks”. Building one in Photoshop takes 20 minutes; using a fake tweet generator takes 30 seconds. The difference matters when you need ten of them for a deck.

    Our tweet generator reproduces X/Twitter’s current chrome (post-rebrand) faithfully — the avatar, verified badge, username + handle, multi-line body with link/mention/hashtag colouring, the four-icon engagement row, the time-and-date timestamp. Light and dark mode toggle. Export at 2× resolution. Runs in your browser; nothing uploads. This guide explains what good mock-tweet design looks like, the ethical lines you shouldn’t cross, and the five workflows where mock tweets earn their place.

    What a faithful mock tweet includes

    • Avatar (52×52px in feed, 80×80px in detail view) with circular crop. Include drop shadow for visual depth on dark mode.
    • Display name + handle on one line: bold display name, grey @handle. Verified badge optional (blue check or gold check).
    • Post body with smart formatting: @mentions in blue, #hashtags in blue, URLs in blue and truncated to domain.tld/…
    • Embedded media (optional): single image (rounded-corner crop), 2-grid (split right), 4-grid (quad). Quote-tweet box (nested smaller card) for retweets with comment.
    • Timestamp in detail-view format: “5:30 PM · Apr 23, 2026 · 1.2M Views”. Feed view uses relative time: “2h”, “1d”, “Jan 14”.
    • Engagement row: reply (speech bubble), retweet (circular arrows), like (heart), bookmark (ribbon), share (arrow up). Numbers shown next to each.
    • Source line (“Twitter for iPhone”, “Twitter Web App”) — historically present, less so post-rebrand.

    Each detail individually feels minor; together they’re the difference between “this looks real” and “this is obviously fake”. A good generator handles all of them automatically based on the post type you specify.

    Five legitimate workflows for mock tweets

    • Marketing pitch decks. Showing a client what their campaign tweets could look like, with mock engagement counts demonstrating the strategy’s potential.
    • Editorial articles. Tech blogs, business news, and explainer articles use mock tweets to illustrate concepts without doxxing real users or violating fair-use rules around quotation.
    • Course content. Tutorial creators teaching writing, marketing, or social-media strategy need example tweets that don’t tie content to specific real-world accounts.
    • Internal product mockups. Designing a feature where users will share to X — a mock tweet preview is faster than building a real share flow during prototyping.
    • Slide decks for keynotes. Speakers showing “what this might look like as a viral moment” use mock tweets as illustrative shorthand. Mark them clearly as illustrations.

    How to use the browser tweet generator

    1. Open the tweet generator
    2. Pick light or dark mode (mirror the deck/article you’ll embed it in)
    3. Upload an avatar image (or use the placeholder)
    4. Fill in display name, handle, and toggle the verified badge
    5. Type your tweet body — the generator auto-formats @mentions, #hashtags, and URLs in Twitter blue
    6. Optionally attach an image for the embedded media slot
    7. Set engagement counts: replies, retweets, likes, views
    8. Click Export PNG. The result downloads at 2× retina resolution

    Everything happens client-side via the canvas API. Avatars and any attached images stay on your device.

    The ethics line — when fake tweets cross into deception

    Mock tweets become problematic the moment they’re presented as real. Three lines you should never cross:

    • Don’t impersonate real accounts. Fabricating a tweet from a real public figure they never posted is impersonation — illegal in many jurisdictions, against X’s Terms of Service, and exposes you to defamation liability. The standard is “would the audience believe this is real” — if yes, you’ve crossed the line.
    • Don’t fabricate viral status. Mock tweets with massive engagement attached to your own brand, presented to investors or media as evidence of real success, is fraud. Internal “what we hope to achieve” framing is fine; external claims of “look how viral we went” with mock screenshots are not.
    • Don’t bypass content moderation by mocking it. Tweet generators sometimes get used to fabricate offensive content attributed to real people for harassment campaigns. This is illegal harassment regardless of jurisdiction.

    The safe default: any mock tweet shown publicly should include “Conceptual mockup” or “Illustrative example” framing. Internal use in a private deck where the audience knows the context is fine.

    The X-rebrand details a good generator gets right

    • X logo, not the bird in any in-frame branding (some “Twitter” generators still show the bird, immediately giving them away as out-of-date).
    • Verified badge variants: blue check (paid Twitter Blue / X Premium) is now distinct from gold (organisation accounts). Older tools showed only the legacy blue badge.
    • Engagement order in the bottom row: reply → retweet → like → bookmark → share. The bookmark icon was added during the rebrand; older mocks often skip it.
    • Views counter next to like counts (post-2023 addition). Mocks that miss it look outdated.
    • Updated typography: Twitter switched from “Chirp” to a system-stack approach. Modern mocks should use system-default sans-serif (San Francisco on iOS, Roboto on Android, Segoe UI on Windows).

    When NOT to use a fake tweet

    • For impersonation or deception. Already covered, but worth restating — never use mock tweets to make audiences believe a real person said something they didn’t.
    • As evidence in legal proceedings. Courts can identify mock images and the implication of fabricated evidence is severe. Use real archived tweets via the Internet Archive’s Wayback Machine instead.
    • For paid advertising claims. Mock tweets showing “endorsements” without disclosure can violate FTC rules. Real endorsements need real attribution.
    • To make a brand look bigger than it is. Pitch decks with mock viral tweets attached to your brand cross from “illustrative” into “deceptive” without explicit framing.

    Frequently asked questions

    Will the mock tweet pass as a real X screenshot?

    To casual viewers, yes. To anyone with reverse-image search or who pays attention to small font-rendering details, no. Generated tweets always carry small digital signatures that experts can identify. Use mocks where their illustrative nature is appropriate or disclosed.

    Can I generate threads (multiple connected tweets)?

    The current generator handles one tweet at a time. For a thread, generate each tweet separately with consistent avatar/handle, then layer them vertically in a slide or article. The visual continuity comes from matching display name, avatar, and timestamp progression.

    Are my photos uploaded when I use the generator?

    No. The browser reads the avatar and any attached image via the File API, renders the mock on canvas, and offers export as a download — all without making network requests. Verify in DevTools’ Network tab.

    Does the generator support embedded media (image, video, link cards)?

    Single embedded image, yes. Video previews and OpenGraph link cards are on the roadmap but not yet supported. For mock tweets with link cards, render the tweet first then composite a Twitter Card image below in your design tool.

    Can I customise the verified badge to gold (organisation) or grey (government)?

    Yes — the generator includes blue (Twitter Blue / X Premium), gold (organisation), and grey (government) verified badge options. Pick the one that matches the entity you’re mocking up. Default is no badge.

    What resolution is the export?

    2× retina — the exported PNG is approximately 1200×800 px depending on tweet length. High enough for crisp display in 4K decks and detailed enough for editorial use. Resize down with our Image Resizer for smaller files.

    Related tools and guides

     

  • Instagram Post Generator: Mock IG Feed Posts [2026]

    Instagram Post Generator: Mock IG Feed Posts [2026]

    TL;DR: An Instagram post generator builds realistic mock Instagram feed posts — username, avatar, image, caption, like count, comments — without actually posting to Instagram. Designers use them in pitch decks, marketers in case studies, course creators in tutorials. Our free Instagram post generator exports a high-resolution PNG that drops cleanly into Figma, Keynote, or PowerPoint.

    Mockup Instagram posts are the unsung hero of every marketing pitch deck. The agency selling a social campaign to a client shows mock feed posts before any creative is shot. The course creator teaching Instagram strategy needs example posts that don’t dox a real account. The product manager designing a feature with social-share UX needs realistic preview cards that match Instagram’s actual chrome.

    Our Instagram post generator reproduces Instagram’s feed-post chrome faithfully — the gradient avatar ring, the verified badge, the heart/comment/share/save row, the caption with truncation, the time-since marker. Drop in your own image and account details, click export, get a high-res PNG. Everything renders client-side; nothing uploads. This guide explains the right and wrong uses of mock IG posts, the design fidelity tricks the tool gets right, and a flag on the legal/ethical line you shouldn’t cross.

    What an Instagram post generator actually generates

    Instagram’s feed UI has stayed remarkably consistent since 2018, with small refresh cycles. A faithful mock includes:

    • Avatar with story-ring gradient — the warm orange-red-pink-purple gradient that wraps unwatched stories. Critical for “this looks real” recognition.
    • Username + verified badge. Optional blue checkmark for the verified version. Don’t use this dishonestly — see the ethics section below.
    • Location or “Sponsored” tag below the username for posts that have geotags or paid promotion.
    • Square or portrait image filling the post. Instagram supports 1:1 (square), 4:5 (portrait), and 9:16 (Reels) — the generator handles all three.
    • Action row: heart (like), comment bubble, paper-plane (DM), bookmark — left-aligned, with the bookmark right-aligned.
    • Like count (“12,484 likes” or “Liked by friend and 247 others”).
    • Username + caption on a single line at the start, with the caption truncating to “…more” beyond a few lines.
    • Time-since marker (“2 HOURS AGO”, “YESTERDAY”, “JANUARY 14”).

    Each of these elements is a small detail, but missing one breaks the illusion. The generator handles all of them at the right pixel sizes and font weights to match Instagram’s iOS chrome.

    Five legitimate uses for a mock Instagram post

    • Pitch decks for clients. “Here’s what your campaign would look like in feed” — far more compelling than a flat brief mockup. Agencies use these before any creative is produced.
    • Tutorial screenshots. Course content teaching social strategy, “how to run an IG ad”, or analytics walkthroughs. Mock posts avoid showing real accounts that would need consent.
    • Internal product mockups. Designing a feature where users will share to Instagram and want to preview the share-card. A faithful mock is faster than building a real share flow.
    • Marketing case studies. Showing what previous campaigns looked like without doxing the original creator’s real handle. Replace the username, keep the visual.
    • Tutorial articles and YouTube thumbnails. “How to grow on Instagram” content visualises strategy with mock posts. Looks professional, costs nothing.

    How to use the browser Instagram post generator

    1. Open the Instagram post generator
    2. Pick a post type — Square (1:1), Portrait (4:5), or Reel/Story (9:16)
    3. Upload an avatar image and a main post image (or use the placeholder gradients to start)
    4. Fill in account details: username, verified status, location/sponsored tag
    5. Write a caption (multi-line supported, with realistic truncation)
    6. Set engagement counts: likes, comment count, time-since
    7. Click Export PNG. The result downloads at 2x retina resolution for crisp use in slides and decks

    The avatar and post image stay on your device — the generator uses them only to render the canvas locally. Nothing uploads to a server.

    The ethics line — when mock IG posts cross into deception

    Generated Instagram posts are presentation tools. They become problematic when used to deceive specific audiences, fabricate engagement, or impersonate real accounts. Three specific lines you should not cross:

    • Don’t impersonate real accounts. Using a mock with a real celebrity’s username and a fabricated post they never actually shared is impersonation — illegal in many jurisdictions, and against Instagram’s Terms of Service. Both potentially expose you to defamation claims.
    • Don’t fabricate engagement to mislead. A mock with “1.2M likes” attached to your own brand’s post in a pitch deck implies social proof you haven’t earned. Reasonable for “what success could look like” framing; deceptive when shown without context.
    • Don’t pass mocks off as real posts to journalists or investors. “Look, my brand went viral” with a mock screenshot in a press kit is fraud. Auditors and investors check sources; reputational damage from being caught is catastrophic.

    A safer approach: mark mock posts clearly as illustrations in any external-facing context. “Conceptual mockup” or “Illustrative example” footer text protects you and respects the audience.

    Design fidelity details that separate a good mock from a bad one

    • Story-ring gradient direction. Instagram’s gradient runs from yellow-orange at top-left to magenta-purple at bottom-right. Mocks that get this backwards fool no one who actually uses Instagram.
    • Caption truncation behaviour. Instagram truncates around the third line with “… more” in the platform-grey colour. Mocks that show the full caption inline read as wrong instantly.
    • Like count formatting. Counts above 10,000 use abbreviated form (“12.4K likes”); above 1,000,000 it’s “1.2M”. Wrong formats give away the mock.
    • Time-since formatting. Instagram uses “2h”, “1d” within the post but “2 HOURS AGO”, “1 DAY AGO” in caps in the older detail view. Match the right context to the right format.
    • Verified badge placement. The blue checkmark goes immediately after the username, not separated by a space. Wrong placement kills the illusion.