Website profiles · Technology insights · Alternatives

mikefarah.gitbook.io

No paid content found
Visit website
Profile views 0 Outbound visits 0 Normal
yq Full homepage screenshot

At a glance

Category
Development
Language
English
Paid-content signal
No paid content foundObserved
Registered
Unknown
Hosting
CloudflareInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is yq?

yq is a lightweight, portable command-line processor for YAML, JSON, INI, XML, properties, CSV and TSV files. It uses jq-style syntax, so anyone familiar with jq can query and edit structured data in YAML files with much the same mental model. Because it is written in Go, you can download a dependency-free binary for your platform, or install it through package managers, Docker or Podman as listed on yq.

What you can do with it

The documented usage patterns show the core workflow:

  • Read a value: yq '.a.b[0].c' file.yaml extracts a nested field.
  • Pipe from standard input: yq '.a.b[0].c' < file.yaml works in shell pipelines.
  • Edit in place: yq -i '.a.b[0].c = "cool"' file.yaml updates a file directly.
  • Use environment variables: NAME=mike yq -i '.a.b[0].c = strenv(NAME)' file.yaml injects values from the shell.
  • Merge files: from a simple two-file load(...) * load(...) expression to glob-based merging with yq ea.

Who it suits

yq is most useful for developers and DevOps engineers who already script against JSON with jq and now need the same control over YAML configuration—Kubernetes manifests, CI pipelines, application configs—without hand-editing indentation. A practical scenario: a release script that reads an image tag from one YAML file, writes it into a deployment manifest, and merges environment-specific overlays, all in a few commands.

Trade-offs to know

yq does not yet support everything jq does, though common operations are covered and more is being added. It also tries to preserve comments and whitespace but does not handle every scenario, so heavily commented files can shift after an in-place edit—verify the diff before committing. PowerShell users may also hit quoting quirks.

As a next step, run yq '.a.b[0].c' file.yaml on a config file you know well, then try a single -i update on a copy and inspect the diff to see how your file's formatting survives.

How do I install yq on my platform without dependencies?

Download yq's dependency-free binary for your platform from the official releases on GitHub (the project's own page points there for install options). Because yq is written in Go and shipped as a static binary, you do not need Go, Python, jq or any runtime installed—just the executable.

Practical steps

  1. Open the releases page on GitHub and pick the asset matching your OS and CPU architecture (for example, Linux amd64, macOS arm64, Windows amd64).
  2. Download the binary, then make it executable on macOS/Linux:
    chmod +x ./yq_linux_amd64
    sudo mv ./yq_linux_amd64 /usr/local/bin/yq
    
  3. Confirm it works:
    yq --version
    yq '.a.b[0].c' file.yaml
    

On Windows, rename the downloaded file to yq.exe and place it in a folder on your PATH. If you use PowerShell, note the documented caveat that PowerShell has its own quoting rules, so wrap expressions in single quotes and test carefully.

When the binary is (and isn't) the right choice

  • Choose the binary for air-gapped servers, CI containers, or machines where you cannot install package managers. This is the most portable route.
  • Choose a package manager instead (Homebrew, apt, Scoop, and others listed on the GitHub page) if you want automatic updates and version pinning through your existing tooling.
  • Choose Docker/Podman if you want to run yq without touching the host at all—useful for reproducible pipelines.

For a quick decision: if your environment forbids installing packages, grab the binary; if it has a package manager you already maintain, use that for easier upgrades.

How can I update a YAML value in place using a shell environment variable?

Use yq's strenv() function with the in-place flag. The pattern from the yq documentation is:

NAME=mike yq -i '.a.b[0].c = strenv(NAME)' file.yaml

strenv(NAME) reads the environment variable NAME and inserts it as a string, so values like mike don't need to be quoted and escaped into the expression by hand. -i writes the result back to file.yaml instead of printing it to stdout.

Practical points

  • Quote the expression. The whole yq expression is wrapped in single quotes so the shell doesn't expand $ or split it. The variable is expanded by yq, not by the shell.
  • Use env() for non-strings. strenv() forces a string; if the target field should be a number or boolean, use env(NAME) so yq parses the value as YAML.
  • Test before overwriting. Run the same command without -i first to see the resulting document, then add -i once the output looks right. This matters most for nested paths, where a wrong index can create or overwrite unexpected keys.
  • Watch PowerShell quoting. The yq page notes PowerShell has its own opinions on quoting, so Windows users may need different quote handling than the Bash example above.

A concrete scenario: a CI job needs to set an image tag in a deployment manifest from a build variable. IMAGE_TAG=1.4.2 yq -i '.spec.template.spec.containers[0].image = "app:" + strenv(IMAGE_TAG)' deploy.yaml updates only that field and leaves the rest of the file, including comments and layout, as close to the original as yq can manage.

For broader syntax and recipes, see yq.

How do I merge multiple YAML files into one with yq?

Use yq's eval-all (short form ea) mode to merge multiple YAML files into a single document. The pattern from the yq quick usage guide is:

yq ea '. as $item ireduce ({}; . * $item )' path/to/*.yml

This loads every matching file at once, then folds them together with the * merge operator. ea matters here: without it, yq evaluates files one at a time instead of treating them as a combined set, which is what a true merge needs.

For two specific files, the guide shows a simpler form:

yq -n 'load("file1.yaml") * load("file2.yaml")'

Choosing between the two

  • Fixed, small set of files: use the load(...) * load(...) form; it reads clearly and names each input.
  • A directory or glob of files: use the ea + ireduce form so any number of files is handled without editing the command.

What to watch for

The * operator merges maps recursively, so in the glob form later files override earlier ones on conflicting keys — check your shell's glob ordering if precedence matters. yq also tries to preserve comments and whitespace, but the documentation notes it does not handle every scenario, so inspect the merged output before committing it.

Next step: pipe the result to a file (> merged.yaml) or add -i to write in place, then diff against your originals to confirm no keys were lost. Full recipes are on yq.

How does yq differ from jq when working with YAML files?

yq is designed for YAML-first work, while jq is designed for JSON. yq borrows jq's expression syntax, so much of what you already know about jq carries over, but yq reads and writes YAML natively and also handles JSON, XML, INI, properties, CSV and TSV.

The practical differences

  • Input format. jq expects JSON; feeding it a YAML file normally requires converting to JSON first. yq processes YAML directly, so yq '.a.b[0].c' file.yaml reads a nested value without a conversion step.
  • In-place editing. yq supports -i to update a file directly, e.g. yq -i '.a.b[0].c = "cool"' file.yaml. With jq you would typically write to a temp file and move it back.
  • Environment variables. yq has strenv(NAME) for injecting values, useful in CI scripts: NAME=mike yq -i '.a.b[0].c = strenv(NAME)' file.yaml.
  • Merging files. yq can merge with load(...) and the multiply operator, or across globs using ea to evaluate all files at once — a common task for layered YAML configs.
  • Format conversion. yq can convert between YAML, JSON, XML and other formats in one tool, which jq does not do.
  • Coverage. yq does not implement everything jq does; the page states it supports the most common operations and functions, with more added over time. Complex jq programs may need rewriting.
  • Formatting fidelity. yq tries to preserve comments and whitespace, but not in every scenario.
Task jq yq
Read YAML value Convert first Native
Edit file in place Temp file workflow -i flag
Merge YAML files Manual load() / ea with globs
Convert formats No Yes
Full jq function set Yes Partial

Whose observation this is

The page itself notes that yq "doesn't yet support everything jq does" and that comment/whitespace preservation is imperfect. That is the project's own caveat, not an independent review.

A concrete scenario

If you maintain Kubernetes manifests or CI configs in Git and want to bump an image tag across files, yq's -i and glob merging fit that workflow directly. If your data is already JSON from an API and your scripts rely on advanced jq functions, staying with jq avoids rewriting logic.

Next step: take one existing jq filter you use on JSON, convert a sample to YAML, and run it through yq to see whether the expression and output formatting behave as expected before migrating scripts. The yq quick usage guide and recipes are the place to check syntax for merges and multi-file updates.

How do I convert JSON to YAML using yq?

Use yq's -P flag to pretty-print the output as YAML:

yq -P '.' input.json > output.yaml

The -P (--prettyPrint) flag tells yq to emit YAML instead of JSON. The . expression matches the whole document, so the entire file is converted.

Common variations

  • Pipe from stdin: cat input.json | yq -P '.'
  • Multiple JSON files at once: yq -P ea '.' *.json — ea evaluates all inputs together, which is useful when you want one combined output rather than separate documents.
  • In-place conversion: yq's -i flag is designed for editing files of the same format, so for a format change it's usually safer to redirect to a new file (> output.yaml) and verify it before replacing the original.

What to expect

yq aims to preserve comments and whitespace where it can, but its own documentation notes it doesn't handle every scenario. JSON has no comments, so that mostly matters when you later edit the YAML with yq and want formatting kept stable. Keys and values carry over directly; yq handles the type mapping (strings, numbers, booleans, nulls, nested objects and arrays) for you.

A practical workflow

If you're migrating a config file, run the conversion to a new file, open it to check indentation and quoting, then commit it. Keeping the original JSON alongside the YAML for one release makes rollback trivial.

For more examples, including the reverse YAML-to-JSON direction and array edits, see the yq documentation.

Related questions

More questions →
How yq Compares to jq, and What Features Are Missing

yq is a command-line processor that borrows jq's filter syntax but applies it to YAML, JSON, INI, XML, properties, CSV, and TSV files. If you already know jq, most common expressions — .a.b[0].c, assignments like .a.b[0].c = "cool", and strenv() for environment variables — carry over directly. The gaps are at the edges: yq does not yet implement everything jq does, and its handling of comments and whitespace, while deliberate, is not exhaustive. The sections below cover where the two tools align, where they diverge, and what to check before relying on yq for a given task.

Where yq and jq Align

yq's documentation describes it as using "jq like syntax" while working across YAML and other formats, not just JSON. In practice this means:

  • Path expressions work the same way. yq '.a.b[0].c' file.yaml reads a nested value, and piping from STDIN with yq '.a.b[0].c' < file.yaml behaves as you would expect from jq.
  • In-place updates are a first-class operation: yq -i '.a.b[0].c = "cool"' file.yaml rewrites the file directly.
  • Environment variable injection uses the same strenv() function: NAME=mike yq -i '.a.b[0].c = strenv(NAME)' file.yaml.
  • Multi-file merging is supported through load() and reduce expressions, e.g. yq -n 'load("file1.yaml") * load("file2.yaml")', or glob-based merging with yq ea '. as $item ireduce ({}; . * $item)' path/to/*.yml.

The documentation states that yq "does support the most common operations and functions, and more is being added continuously." So for everyday read, update, and merge work, the jq mental model transfers without much friction.

Where yq Diverges from jq

The most important difference is scope of formats. jq is a JSON processor; yq is built for YAML first and extends to JSON, XML, INI, properties, CSV, and TSV. If your pipeline is JSON-only, jq remains the more complete implementation. If your pipeline touches YAML — Kubernetes manifests, CI configs, application settings — yq is the tool that understands the format natively rather than requiring a JSON round-trip.

A second difference is distribution. yq is written in Go, so the documentation notes you can "download a dependency free binary for your platform and you are good to go," with additional options through package managers, Docker, and Podman. That matters in minimal containers or air-gapped environments where installing a runtime is inconvenient.

Known Limitations to Plan Around

The documentation's "Known Issues / Missing Features" section names two concrete caveats:

  1. Comment and whitespace preservation is best-effort. yq "attempts to preserve comment positions and whitespace as much as possible, but it does not handle all scenarios," with a pointer to the underlying go-yaml v3 library for details. If your YAML files carry meaningful comments — annotated configs, documented manifests — verify the output after an in-place edit rather than assuming comments survive untouched.
  2. PowerShell quoting is problematic. The docs note that "Powershell has its own... opinions on quoting yq." On Windows, expect to adjust quoting or escape characters when passing filters, and consult the project's tips and tricks page for common workarounds.

Beyond these, the docs are explicit that yq "doesn't yet support everything jq does." The safe approach: if a filter depends on an advanced jq builtin, test it against your actual yq version before committing it to a script. The documentation index (llms.txt) and the recipes page are the places to confirm current coverage.

Choosing Between Them

Consideration Lean toward jq Lean toward yq
Input format JSON only YAML, XML, INI, properties, CSV/TSV
Filter complexity Advanced or uncommon jq builtins Common path reads, assignments, merges
Comment preservation Not applicable Needed, but must be verified after edits
Deployment Runtime available Prefer a dependency-free binary, Docker, or Podman
Shell environment Bash/zsh PowerShell requires quoting care

A practical pattern is to prototype the filter in jq against a JSON export, then port it to yq once you confirm the expression is within yq's supported set — and re-run it against the real YAML to catch comment or formatting changes.

What is yq and what file formats does it support?

yq is a lightweight, portable command-line processor for YAML, JSON, INI, and XML. It uses jq-like syntax but works across YAML, JSON, XML, INI, properties, CSV, and TSV files. If you already know jq, you can apply similar expressions to YAML and the other supported formats. yq is written in Go, so you can download a dependency-free binary for your platform and run it directly; package managers, Docker, and Podman are also listed as installation options.

Supported formats and syntax

Aspect Detail
Primary formats YAML, JSON, INI, XML
Additional formats properties, CSV, TSV
Query syntax jq-like expressions
Distribution Dependency-free Go binary; package managers, Docker, Podman
jq compatibility Supports the most common operations and functions; not everything jq does

The jq compatibility note matters: yq covers common operations and functions, and more is being added continuously, but it does not yet support everything jq does. If your workflow depends on a specific jq feature, check that yq supports it before switching.

Common operations

The quick usage guide shows the core patterns:

Read a value from a file:

yq '.a.b[0].c' file.yaml

Pipe from STDIN:

yq '.a.b[0].c' < file.yaml

Update a YAML file in place:

yq -i '.a.b[0].c = "cool"' file.yaml

Update using an environment variable:

NAME=mike yq -i '.a.b[0].c = strenv(NAME)' file.yaml

Merge two files:

yq -n 'load("file1.yaml") * load("file2.yaml")'

Merge using globs, evaluating all files at once with ea:

yq ea '. as $item ireduce ({}; . * $item)' path/to/*.yml

The -i flag writes changes back to the file, so the input file is modified in place. The ea flag evaluates all files at once rather than in sequence, which is what makes the glob merge work as expected.

Known limitations

yq tries to preserve comment positions and whitespace as much as possible, but it does not handle all scenarios. If comment or whitespace fidelity in your output is critical, verify the result on a sample file first. PowerShell also has its own quoting behavior that can affect yq commands, so quoting may need adjustment on Windows.

When to use it

Choose yq when you need one command-line tool to query and edit YAML alongside JSON, XML, INI, properties, CSV, or TSV, and when a dependency-free binary is convenient for scripts or containers. If you need full jq feature parity on YAML, confirm the specific functions you rely on are supported. For more examples, the project points to its recipes and documentation, and common questions are collected in its discussions.

How to Install yq on Your Platform

yq is a lightweight, portable command-line processor for YAML, JSON, INI, XML, properties, CSV, and TSV files. Because it is written in Go, you can install it in several ways: download a dependency-free binary for your platform, use a package manager, or run it through Docker or Podman. The official install instructions live on the GitHub page linked from the yq documentation site (mikefarah.gitbook.io), which lists the specific options for each method.

Choose Your Installation Method

Method Best for What you need to know
Dependency-free binary Most users; machines without Go or package managers Download the binary for your OS/architecture and run it directly
Package managers Users who prefer managed updates A variety of package managers are supported; see the GitHub page for the list
Docker Containerized or CI environments Run yq inside a container without installing it on the host
Podman Rootless or daemonless container setups Same container approach as Docker

The documentation does not list specific package manager names or version numbers, so check the GitHub page for the current, complete list before choosing.

Verify the Installation

After installing, confirm yq is available and check its version:

yq --version

A successful install prints the version number (the docs describe the current line as v4.x). If the command is not found, the binary is likely not on your PATH or the package manager install did not complete.

Run Your First Commands

Once installed, yq uses jq-like syntax but works across YAML and the other supported formats. The quick usage guide gives these starting points:

Read a value from a file:

yq '.a.b[0].c' file.yaml

Pipe from standard input:

yq '.a.b[0].c' < file.yaml

Update a YAML file in place:

yq -i '.a.b[0].c = "cool"' file.yaml

Update using an environment variable:

NAME=mike yq -i '.a.b[0].c = strenv(NAME)' file.yaml

Merge two files:

yq -n 'load("file1.yaml") * load("file2.yaml")'

Merge many files at once using globs (note ea evaluates all files together rather than in sequence):

yq ea '. as $item ireduce ({}; . * $item)' path/to/*.yml

Common Installation and Usage Pitfalls

  • Comments and whitespace: yq tries to preserve comment positions and whitespace, but it does not handle every scenario. If formatting matters, check the output after in-place edits.
  • PowerShell quoting: PowerShell has its own quoting rules that can interfere with yq expressions. The docs point to a tips and tricks page for these cases.
  • Feature gaps: yq does not yet support everything jq does, though it covers the most common operations and functions, with more added over time.

For more examples, the documentation links to a recipes section, and common questions are collected in the project discussions.

How to Use yq to Read, Update, and Merge YAML Files

yq is a command-line processor that uses jq-like syntax to read and modify YAML, JSON, XML, INI, properties, CSV, and TSV files. To read a value, run yq '.a.b[0].c' file.yaml; to update a file in place, add the -i flag; to merge files, use load() with * or combine ea with ireduce. The examples below assume yq v4.x and a file named file.yaml containing nested keys, arrays, and comments.

Read a value from a file

Pass an expression and a filename. The expression is a path into the document, and yq prints the matching value.

yq '.a.b[0].c' file.yaml
  • Input: file.yaml with a structure like a: {b: [{c: ...}]}.
  • Action: yq evaluates the path expression.
  • Expected result: the value at .a.b[0].c is printed to stdout. The file is not changed.

You can also pipe the document in through STDIN instead of naming a file:

yq '.a.b[0].c' < file.yaml

This is useful when another command produces the YAML. The expression and output behavior are the same.

Update a YAML file in place

Add -i to write the result back to the same file. Without -i, yq prints the modified document to stdout and leaves the file untouched.

yq -i '.a.b[0].c = "cool"' file.yaml
  • Input: the existing file.yaml.
  • Action: the assignment sets .a.b[0].c to the string cool, and -i overwrites the file.
  • Expected result: file.yaml now contains the new value; other content is preserved as far as yq can preserve it.

To update from an environment variable, use strenv() so the value is read as a string:

NAME=mike yq -i '.a.b[0].c = strenv(NAME)' file.yaml
  • Input: the environment variable NAME set to mike.
  • Action: strenv(NAME) resolves to the variable's value at evaluation time.
  • Expected result: .a.b[0].c becomes mike in the file.

This pattern is handy in scripts and CI, where values come from the environment rather than being hard-coded.

To find and update an item inside an array, select the element first and then assign. The documentation points to recipes and the full docs for concrete array examples; the general shape is a select/path expression followed by = value, run with -i to persist the change.

Merge multiple files

There are two documented approaches, and they behave differently.

Merge two named files with load() and *

yq -n 'load("file1.yaml") * load("file2.yaml")'
  • Input: two files, loaded explicitly by name.
  • Action: -n means "no input file"; the expression loads both documents and * merges them.
  • Expected result: the merged document is printed to stdout.

Merge many files with a glob, ea, and ireduce

yq ea '. as $item ireduce ({}; . * $item )' path/to/*.yml
  • Input: every .yml file matching the glob.
  • Action: ea evaluates all files at once instead of in sequence; ireduce folds them one by one into an accumulator starting from {}, merging each with *.
  • Expected result: a single merged document printed to stdout.

The ea flag matters here: the docs note it evaluates all files at once rather than in sequence, which is what makes the reduce over the whole set work as intended.

Things to watch for

  • Comments and whitespace: yq tries to preserve comment positions and whitespace, but it does not handle every scenario. If formatting matters, check the output before committing.
  • PowerShell quoting: PowerShell has its own quoting rules that can interfere with yq expressions. The docs point to tips and tricks for common problems and solutions.
  • Coverage vs. jq: yq uses jq-like syntax but does not support everything jq does. The most common operations and functions are supported, and more are added over time.
  • Installation: yq is written in Go, so you can download a dependency-free binary for your platform, or install via package managers, Docker, or Podman. The GitHub page lists the available methods.

For more examples, see the recipes and the full documentation; the discussions cover common questions.

Website Overview

Several search or sharing settings need attention. Together they may make snippets, preview images or preferred URLs less consistent across platforms.

Domain and Registration

Unknown

DNS and Email

Nameservers are provided by Cloudflare, indicating managed DNS hosting. MX records point to the Google Workspace email service. No CNAME was found; the observed records resolve directly to addresses. SPF and DMARC are configured. DKIM status is unknown. TXT records include verification markers for Google. Such markers may also remain after a service stops being used.

TLS and Certificates

The public key uses EC with 256 bits. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued within the Google Trust Services cloud or CDN ecosystem. The certificate's total validity is about 90 days, consistent with a short renewal cycle.

HTTP and Browser Security

The response lacks these common security headers: Permissions-Policy. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The cf-ray response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers. The Server header identifies cloudflare without an exact version.

Technology Stack Analysis

The public page identifies GitBook (ea01850), Next.js, Cloudflare without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

No homepage meta description was detected, leaving snippet selection more dependent on page text. The Generator tag identifies GitBook (ea01850), making the publishing system easier to fingerprint. Open Graph is partially configured; og:description, og:type is missing. Twitter Card metadata is configured. The title has 2 characters, within a common display range.

Hosting and Email

DNSCloudflare
HostingCloudflare
EmailGoogle Workspace
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) Location unknown Inferred 104.18.40.47

Registration details

RDAP / WHOIS

Unknown

DNS records

DNS

TypeNameValueTTLPriority
Amikefarah.gitbook.io104.18.40.47300—
Amikefarah.gitbook.io172.64.147.209300—
AAAAmikefarah.gitbook.io2606:4700:4401::ac40:93d1300—
AAAAmikefarah.gitbook.io2a06:98c1:310d::6812:282f300—
MXgitbook.ioaspmx.l.google.com30010
MXgitbook.ioalt1.aspmx.l.google.com30020
MXgitbook.ioalt2.aspmx.l.google.com30020
MXgitbook.ioaspmx2.googlemail.com30030
MXgitbook.ioaspmx3.googlemail.com30030
NSgitbook.iodahlia.ns.cloudflare.com86400—
NSgitbook.iohugh.ns.cloudflare.com86400—
TXTgitbook.io8277640300—
TXTgitbook.io8lncom12tnn1so22eu2gvaoe9q300—
TXTgitbook.iogoogle-site-verification=9HmRew5KGY83Wzed-UhP71FdHHbV3qoUKP5h_Jenjeo300—
TXTgitbook.iogoogle-site-verification=jOO29_Act4pfhfArsLE_txCdET-NuQQyqp1aAG5-H8s300—
TXTgitbook.iogoogle-site-verification=mAI4k7A4RaCrAbrsgv7m8w6VPx0irEHUO3bHYEPPwdI300—
TXTgitbook.ioopenai-domain-verification=dv-5coTbUFl8eIUWr3rQkpd9lw2300—
TXTgitbook.iov=spf1 a mx include:_spf.google.com include:sendgrid.net include:stspg-customer.com -all300—
DMARC_dmarc.gitbook.iov=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1; pct=100300—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectgitbook.io
IssuerGoogle Trust Services
Valid until2026-12-13T23:02 · Remaining when checked: 44 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=utf-8
cache-controls-maxage=79601, stale-while-revalidate=2592000
servercloudflare
strict-transport-securitymax-age=31536000
content-security-policydefault-src 'self' *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' blob: *; img-src * 'self' blob: data:; connect-src *; font-src *; frame-src *; object-src 'none'; base-uri 'self' https://static-2c.gitbook.com; form-action 'self' https://static-2c.gitbook.com *; frame-ancestors https: ionic: capacitor: ;
x-content-type-optionsnosniff
referrer-policyno-referrer-when-downgrade

Identified technologies

GitBook (ea01850)Next.jsCloudflare

Pages, Search and Sharing

Meta descriptionNot detected
Canonical URLhttps://mikefarah.gitbook.io/yq
LanguageEnglish (default)
Twitter Cardsummary_large_image
All bots 4 allowed · 0 disallowed
  • Allow/~gitbook/image?*
  • Allow/~gitbook/icon?*
  • Allow/favicon.ico
  • Allow/

User reviews (0)

  • No reviews yet.