filemarkr
All ToolsGuides
filemarkr

60+ free developer tools that run entirely in your browser — JSON formatter, JWT decoder, Base64, diff checker, regex tester, hash generator and more. No upload, no sign-up, completely private.

JSON & Data

  • JSON Formatter
  • JSON Minifier
  • JSON Validator
  • JSON to CSV
  • CSV to JSON
  • JSON to YAML

Encode & Decode

  • Base64 Encode / Decode
  • Base64 to Image
  • Image to Base64
  • URL Encode / Decode
  • HTML Entity Encoder
  • JWT Decoder

Text Tools

  • Text Diff Checker
  • Case Converter
  • Word & Character Counter
  • Slug Generator
  • Remove Duplicate Lines
  • Sort Text Lines

Generators

  • UUID Generator
  • Password Generator
  • Lorem Ipsum Generator
  • QR Code Generator
  • Random Number Generator
  • NanoID Generator

Popular Guides

  • How to Format and Pretty-Print JSON (Without Breaking It)
  • How to Minify JSON and Shrink Your API Payloads
  • How to Validate JSON and Pinpoint the Exact Syntax Error
  • How to Convert JSON to CSV for Excel and Google Sheets
  • How to Convert CSV to JSON (With Proper Header Detection)
  • All guides →

Explore

  • All Tools
  • JSON Formatter
  • JWT Decoder
  • Diff Checker
  • UUID Generator

Company

  • About
  • Privacy
  • Terms
  • Sitemap

Our Promise

  • 100% in your browser
  • Zero uploads
  • No sign-up, always free

© 2026 filemarkr. Designed & developed by Naved Naik.  All processing happens locally in your browser.

All guides

Generators

How to Write a .gitignore That Actually Keeps Your Repo Clean

Learn how .gitignore rules work and generate a clean file for Node, Python, Go, Rust, macOS and more in seconds — free, private, in your browser.

Try the toolGitignore Generator →

Every developer has done it: committed node_modules/, a .env full of secrets, or a pile of .DS_Store files. Once those land in history, they are annoying to remove and, in the case of secrets, genuinely dangerous. A good .gitignore stops the junk before it ever reaches a commit. The trouble is remembering the exact patterns for every language, framework, and OS you touch.

What .gitignore actually does

Git checks each untracked file against the patterns in .gitignore. Matching files are hidden from git status and skipped by git add. The syntax is small but has rules worth knowing:

  • A trailing slash like build/ matches directories only.
  • A leading slash like /dist anchors the pattern to the repo root instead of matching at any depth.
  • * matches anything except a slash; ** crosses directory boundaries.
  • A leading ! negates a previous rule, re-including a file. This is how you ignore a whole folder but keep one config inside it.
  • Lines starting with # are comments, and blank lines are ignored.

Combining templates without duplicates

Real projects span several stacks at once — a Node front end on a Mac, or a Python service edited in VS Code. The Gitignore Generator lets you toggle templates for Node, Python, Java, Go, Rust, React, Next.js, macOS, Windows, Linux, VS Code, and JetBrains, then merges them into one file. It de-duplicates repeated pattern lines and labels each section, so you get output like this:

# .gitignore — generated by filemarkr

# ==== Node ====
node_modules/
dist/
.env
.env.local
npm-debug.log*

# ==== macOS ====
.DS_Store
._*
.Spotlight-V100
.Trashes

Because everything runs locally in your browser, nothing about your project is uploaded anywhere. You pick the stacks, copy or download the ready-named .gitignore, and drop it in your repo root.

A practical walkthrough

  1. Open the tool and click the pills for each stack in your project — say Node, React, and macOS.
  2. Watch the combined file build in real time, with duplicate rules collapsed automatically.
  3. Download the file straight to your project root, or copy it into an existing .gitignore.
  4. Commit it early — ideally in your very first commit, before any build artifacts exist.

Common pitfalls

Ignoring a file that is already tracked does nothing. .gitignore only affects untracked files. If you already committed node_modules/, add the rule and then untrack it:

git rm -r --cached node_modules
git commit -m "Stop tracking node_modules"

Never ignore your way out of a leaked secret. If a real API key was committed, it is in history and must be rotated — adding it to .gitignore afterward hides the file but not the exposure. Generate strong replacements with the Password Generator and store them in an ignored .env.

Watch negation order. A ! rule can only re-include a file if its parent directory was not excluded. build/ followed by !build/keep.txt will not work, because Git never descends into an ignored directory.

Prefer a project file over a global one for shared repos. A personal global gitignore (for editor cruft) is convenient, but teammates on other machines will not have it — put anything the whole team needs in the committed .gitignore.

Rule of thumb: ignore build output, dependencies, environment files, and OS/editor noise. Keep source, lockfiles, and configuration.

Wrapping up

A tidy .gitignore is one of the cheapest quality wins in a project — it keeps diffs readable, repos small, and secrets out of history. Spend thirty seconds generating one at the start of every project instead of untangling a bloated repo later. When you are spinning up that new project, the UUID Generator is handy for seeding identifiers too. Build your file with the Gitignore Generator and commit it first.

More guides

How to Format and Pretty-Print JSON (Without Breaking It)

Read

How to Minify JSON and Shrink Your API Payloads

Read

How to Validate JSON and Pinpoint the Exact Syntax Error

Read

How to Convert JSON to CSV for Excel and Google Sheets

Read