From ae88307b76b948f5ead573c74454abb96e05c565 Mon Sep 17 00:00:00 2001 From: laiz Date: Fri, 17 Jan 2025 21:14:33 +0200 Subject: [PATCH 1/4] Created a new page explaining the problematic nature of ad-blocking tests. Edited the custom blocklists page to include up-to-date information. --- docs/.vitepress/config.ts | 1 + docs/orion/features/custom-blocklists.md | 9 ++++----- docs/orion/privacy-and-security/respecting-privacy.md | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index b939171c..c3b02caf 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -439,6 +439,7 @@ function sidebarOrion() { link: '/orion/privacy-and-security/ad-tracking-blocking', items: [ { text: 'Configure Ad & Tracking Blocking', link: '/orion/privacy-and-security/ad-tracking-blocking' }, + { text: 'Orion and Ad-blocking Tests', link: '/orion/privacy-and-security/adblock-tests' }, { text: 'Respecting Privacy', link: '/orion/privacy-and-security/respecting-privacy' }, { text: 'Protecting Privacy', link: '/orion/privacy-and-security/protecting-privacy' }, { text: 'Preventing Fingerprinting', link: '/orion/privacy-and-security/preventing-fingerprinting' }, diff --git a/docs/orion/features/custom-blocklists.md b/docs/orion/features/custom-blocklists.md index 37791732..db4fb349 100644 --- a/docs/orion/features/custom-blocklists.md +++ b/docs/orion/features/custom-blocklists.md @@ -18,13 +18,12 @@ Orion includes the following blocklists by default. The blocklists in **bold** are enabled by default and provide sufficient protection against most ads and trackers. -- **EasyList** -- **EasyPrivacy** -- **d3Host List by d3ward** +- **AdGuard Base filter (Optimized)** +- **AdGuard Tracking Protection filter (Optimized)** +- AdGuard Annoyances Filter (Optimized) +- AdGuard Social Media filter (Optimized) - Hagezi Light DNS Blocklist -- Fanboy's Annoyance - Hagezi Pro Plus Mini -- Privacy Essentials - Block third-party fonts On macOS, you can enable or disable these blocklists in **Orion** > **Settings** > **Privacy**, then click the **Manage Filter Lists...** button. diff --git a/docs/orion/privacy-and-security/respecting-privacy.md b/docs/orion/privacy-and-security/respecting-privacy.md index 62a89b8b..31a8660b 100644 --- a/docs/orion/privacy-and-security/respecting-privacy.md +++ b/docs/orion/privacy-and-security/respecting-privacy.md @@ -1,9 +1,9 @@ # Respecting Privacy -Orion has no built-in telemetry, so it can never "phone home" and risk exposing your data. Orion is truly and verifiably a privacy-respecting browser, unlike those that offer only an illusion of privacy. +Orion has no built-in telemetry, so it can never "phone home" and risk exposing your data. Orion is truly and verifiably a privacy-respecting browser, unlike those that offer only an illusion of privacy. -Most browsers regularly "phone home" dozens or even [hundreds](https://brave.com/popular-browsers-first-run/) times. Each request poses a security risk, no matter what information it sends, by potentially exposing your IP address and your browser fingerprint. Telemetry can also inadvertently leak personally identifiable information or corporate intelligence. +Most browsers regularly "phone home" dozens or even [hundreds](https://brave.com/popular-browsers-first-run/) of times. Each request poses a security risk, no matter what information it sends, by potentially exposing your IP address and your browser fingerprint. Telemetry can also inadvertently leak personally identifiable information or corporate intelligence. Telemetry of Browsers on Startup
-The safest way to secure your private data is for your browser to be zero telemetry out of the box. Want to keep your information safe and private? Orion makes it possible! \ No newline at end of file +The safest way to secure your private data is for your browser to be zero telemetry out of the box. Want to keep your information safe and private? Orion makes it possible! From b6910f140d1effbf42d1405a094bdfa0eec97d86 Mon Sep 17 00:00:00 2001 From: laiz Date: Fri, 17 Jan 2025 21:22:38 +0200 Subject: [PATCH 2/4] Adblock-tests documentation page. --- .../privacy-and-security/adblock-tests.md | 60 ++++++++++++++++++ .../privacy-and-security/media/d3ward.png | Bin 0 -> 35077 bytes .../media/superadblocktest.png | Bin 0 -> 78029 bytes 3 files changed, 60 insertions(+) create mode 100644 docs/orion/privacy-and-security/adblock-tests.md create mode 100644 docs/orion/privacy-and-security/media/d3ward.png create mode 100644 docs/orion/privacy-and-security/media/superadblocktest.png diff --git a/docs/orion/privacy-and-security/adblock-tests.md b/docs/orion/privacy-and-security/adblock-tests.md new file mode 100644 index 00000000..461a60b9 --- /dev/null +++ b/docs/orion/privacy-and-security/adblock-tests.md @@ -0,0 +1,60 @@ +# Orion and Ad-blocking Tests + + +## Table of Contents + +- [Overview](#overview) +- [The Problems with Ad-blocking Tests](#problems) +- [Orion's Stance](#orions_stance) +- [Further Reading](#further_reading) + + +## Overview {#overview} + +This documentation page is intended to answer questions users might have about the scores Orion receives on various ad-blocking test sites. +In short, the tests are flawed and do not reflect real-world usage in any meaningful way, and there is no reason to be concerned about the test results. +This is explained in greater detail below, with links to further reading. + + +## The problems with ad-blocking tests {#test_problems} + +The demand for privacy and security is greater than ever before. +This trend is particularly relevant when it comes to web browsers. +Consequently, it is common for users to test the ad-blocking features of their browsers and extensions by running various content-blocking tests found online. +These tests generally report the percentage of ads and trackers that the user's browser configuration was able to block: +An example score on https://d3ward.github.io/toolz/adblock
+An example score on https://superadblocktest.com/
+ +Unfortunately, these tests do not reflect the real-world content-blocking capabilities of any browser or extension, often resulting in concerned reports about the privacy or security features of said browser or extension. +For example, based on the example results above, a user might think that 26% or 35% of the undesired content online, respectively, is making its way through the content blocker, exposing the user to great dangers and indicating that their configuration is inadequate for safe browsing. + +Fortunately, the above example is not true. +Instead, the tests that claim to accurately measure ad-blocking capabilities mislead their users either into a false sense of security or into mistakenly thinking that there is something wrong with their setup, even if they are not encountering any issues on the web pages they visit daily. + +## Orion's stance{#stance} +As can be seen from the above, users should not expect their browsers to ace any content-blocking test; instead, they should focus on real-world usage. +Orion strives to provide a thorough yet sleek approach to ad blocking out of the box. +This is achieved by having sensible default filter lists in the content blocker. +The default configuration is designed to be more than adequate for the vast majority of users while also minimizing website breakage and any performance hits. +If you encounter sites where that is not the case, please [report the issue](../support-and-community/roadmap-feedback-forum.md). +Advanced users can configure their content blockers to fit their needs. +Please see the [custom blocklists](../features/custom-blocklists.md) documentation page for further information. + +Previously, Orion shipped with lists that, in addition to the above, also included rules to score well on the aforementioned test as this reduced the number of reports created about these tests. +As the Orion team continues to improve the built-in content blocker, it was decided that the test should no longer receive any attention, and the unnecessary rules were removed from the default content blocker configuration, as they did not improve the privacy of the users or the performance of the browser. + +We believe this is the correct way forward, and we invite our users to focus on real-world content blocking rather than flawed tests. + + +## Further reading{#further_reading} + +- [How “test your adblocker” websites can harm users and the adblocker ecosystem](https://brave.com/blog/adblocker-testing-websites-harm-users/) ([Archived](https://web.archive.org/web/20250110081559/https://brave.com/blog/adblocker-testing-websites-harm-users/)) + +A more technical and detailed post written by the Lead for Privacy Engineering of Brave. + +- [uBlock Origin creator Raymond Hill (gorhill) on X](https://x.com/gorhill/status/1583581072197312512) + +The post is a couple of years old at this point but the misinterpretation of ad-blocker test results continues. + +- [The workarounds added to uBlock Origin due to flawed tests](https://github.com/uBlockOrigin/uAssets/blob/4a654ecf710749e39c50baa86e86e26681ea3aca/filters/filters.txt#L13688-L13692) +- [The workarounds added to AdGuard lists due to flawed tests](https://github.com/AdguardTeam/AdguardFilters/blob/daba77058c72b983f2a46b97dca5b669710a7414/SpywareFilter/sections/specific.txt#L4491-L4521) diff --git a/docs/orion/privacy-and-security/media/d3ward.png b/docs/orion/privacy-and-security/media/d3ward.png new file mode 100644 index 0000000000000000000000000000000000000000..abbfd21b0e8067f18019dde0cad2bd2c4dca9745 GIT binary patch literal 35077 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

3&&*+BF|^yAb_J@L(J&kq9D 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 RjspBsQB=Q)zHT1!{{RSNXZipD literal 0 HcmV?d00001 From 63b79e73a2f6b50840de2c3048b41268b593b64b Mon Sep 17 00:00:00 2001 From: laiz Date: Tue, 18 Feb 2025 08:42:29 +0200 Subject: [PATCH 3/4] adblocking test doc page, various grammar improvements across documentation --- docs/.vitepress/config.ts | 2 +- docs/kagi/privacy/privacy-protection.md | 4 +- docs/kagi/search-details/search-sources.md | 13 +-- docs/kagi/why-kagi/ai-philosophy.md | 14 ++-- docs/kagi/why-kagi/kagi-vs-competition.md | 12 +-- docs/kagi/why-kagi/kagi-vs-google.md | 2 +- docs/kagi/why-kagi/noads.md | 8 +- docs/orion/faq/faq.md | 79 ++++++++++--------- docs/orion/features/custom-blocklists.md | 35 ++++---- docs/orion/orion-plus/orion-plus.md | 11 +-- .../preventing-fingerprinting.md | 6 +- .../protecting-privacy.md | 9 ++- docs/orion/why-orion/kagi-vs-others.md | 8 +- docs/orion/why-orion/orion-vs-safari.md | 2 +- 14 files changed, 109 insertions(+), 96 deletions(-) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index a2591ebd..ce5016e5 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -442,7 +442,7 @@ function sidebarOrion() { link: '/orion/privacy-and-security/ad-tracking-blocking', items: [ { text: 'Configure Ad & Tracking Blocking', link: '/orion/privacy-and-security/ad-tracking-blocking' }, - { text: 'Orion and Ad-blocking Tests', link: '/orion/privacy-and-security/adblock-tests' }, + { text: 'Orion and Ad-blocking Tests', link: '/orion/privacy-and-security/adblock-tests' }, { text: 'Respecting Privacy', link: '/orion/privacy-and-security/respecting-privacy' }, { text: 'Protecting Privacy', link: '/orion/privacy-and-security/protecting-privacy' }, { text: 'Preventing Fingerprinting', link: '/orion/privacy-and-security/preventing-fingerprinting' }, diff --git a/docs/kagi/privacy/privacy-protection.md b/docs/kagi/privacy/privacy-protection.md index bcdb5063..053b8f10 100644 --- a/docs/kagi/privacy/privacy-protection.md +++ b/docs/kagi/privacy/privacy-protection.md @@ -20,9 +20,9 @@ We only collect the bare necessities to run the service. Please see our [privac ## Email Address Collection -We tie Kagi Search accounts to email addresses so we can help users with account recovery should they ever need it. Rest assured that all Kagi Searches are anonymized and are never tied to your specific account. +We tie Kagi Search accounts to email addresses so we can assist users with account recovery should they ever need it. Rest assured that all Kagi Searches are anonymized and are never linked to your specific account. -Note that you can register for Kagi Search with any email address you control. You do not have to use an email address that can easily identify you. +Please note that you can register for Kagi Search with any email address you control. You do not need to use an email address that can easily identify you. ## Building Trust diff --git a/docs/kagi/search-details/search-sources.md b/docs/kagi/search-details/search-sources.md index c987dd1e..b3fddf60 100644 --- a/docs/kagi/search-details/search-sources.md +++ b/docs/kagi/search-details/search-sources.md @@ -10,7 +10,7 @@ Kagi is known for delivering a unique flavor of high-quality search results, sou We don't stop there; we are always trying new things to surface relevant, high-quality results. For example, we recently launched the [Kagi Small Web](https://blog.kagi.com/small-web) initiative, which showcases content from personal blogs and discussions around the web. Discovering high-quality content written without the motive of financial gain gives Kagi's search results a unique flavor and makes it feel more humane to use. -Our search results also include anonymized API calls to all major search result providers worldwide, specialized search engines like [Marginalia](https://search.marginalia.nu), and sources of vertical information such as Wolfram Alpha, Apple, Wikipedia, Open Meteo, Yelp, TripAdvisor, and other APIs. Typically, every search query on Kagi will call a dozen or so different sources simultaneously, all with the purpose of bringing the best possible search results to the user in a split-second. +Our search results also include anonymized API calls to all major search result providers worldwide, specialized search engines like [Marginalia](https://search.marginalia.nu), and sources of vertical information such as Wolfram Alpha, Apple, Wikipedia, Open Meteo, Yelp, TripAdvisor, and other APIs. Typically, every search query on Kagi will call a dozen or so different sources simultaneously, all with the purpose of bringing the best possible search results to the user in a split second. Our unique algorithms down-rank pages with a lot of ads and trackers (which we have found correlate with a decrease in content quality) and promote content from independent, ad-free sources and personal websites. This ensures that Kagi shows results that delight users and are [worth paying for](https://help.kagi.com/kagi/why-kagi/why-pay-for-search.html). Subscriptions from our members pay for search results, allowing Kagi to remain [ad-free](https://blog.kagi.com/age-pagerank-over) and [100% privacy-respecting](https://kagi.com/privacy). @@ -38,17 +38,18 @@ A modern search engine is much more than just 'links'. Other sources in Kagi inc Why do Kagi's search results stand out even though other search engines have access to the same sources? The main reasons are: -**Kagi focuses on users, not advertisers**: This user-centric approach significantly enhances our ability to highlight high-quality search results. For instance, we effectively mitigate SEO spam by down-ranking websites reliant on ads or trackers. Since these spam websites predominantly monetize through ads, they become easily detectable. Our consistent strategy of combating ads in all forms prioritizes high-quality web results. Kagi is demonstrating to the world that solid web search is possible and that [bad search results are a choice](https://pluralistic.net/2024/04/04/teach-me-how-to-shruggie/) made by legacy, ad-supported, search engines. +**Kagi focuses on users, not advertisers**: This user-centric approach significantly enhances our ability to highlight high-quality search results. For instance, we effectively mitigate SEO spam by down-ranking websites reliant on ads or trackers. Since these spam websites predominantly monetize through ads, they become easily detectable. Our consistent strategy of combating ads in all forms prioritizes high-quality web results. Kagi is demonstrating to the world that solid web search is possible and that [bad search results are a choice](https://pluralistic.net/2024/04/04/teach-me-how-to-shruggie/) made by legacy, ad-supported search engines. -**Innovative search experience**: Product features such as [promoting and blocking domains](../features/website-info-personalized-results.md) allow the users to be in control of their search feed. The most promoted and blocked domains among Kagi users can be seen [in Kagi Stats](https://kagi.com/stats?stat=leaderboard). +**Innovative search experience**: Product features such as [promoting and blocking domains](../features/website-info-personalized-results.md) allow users to be in control of their search feed. The most promoted and blocked domains among Kagi users can be seen [in Kagi Stats](https://kagi.com/stats?stat=leaderboard). -With [Search Lenses](../features/lenses.md) users can explore search results from a subset of the web, for example their favorite hobby or work related websites. With [Quick Answers](../ai/quick-answer.md) users can get a brief summary of the search results and [Summarize Page](../ai/summarize-page.md) allows Kagi users to summarize any result (even a YouTube video!). +With [Search Lenses](../features/lenses.md), users can explore search results from a subset of the web, for example, their favorite hobby or work-related websites. +With [Quick Answers](../ai/quick-answer.md), users can get a brief summary of the search results, and [Summarize Page](../ai/summarize-page.md) allows Kagi users to summarize any result (even a YouTube video!). -**Superior default algorithmic results**: Many users find Kagi's default search results to be unparalleled in quality. This stems from our unrelenting pursuit of the finest results, from all available sources, regardless of the cost. We call upon multiple, diverse, information sources for each search. We know that our members care about always getting the best search results possible, and they are ready to pay for that. +**Superior default algorithmic results**: Many users find Kagi's default search results to be unparalleled in quality. This stems from our unrelenting pursuit of the finest results from all available sources, regardless of the cost. We call upon multiple, diverse information sources for each search. We know that our members care about always getting the best search results possible, and they are ready to pay for that. -If you can not find something on Kagi, you likely can not find it anywhere. +If you cannot find something on Kagi, you likely cannot find it anywhere. **Unique results from our own indexes (Teclis and TinyGem)**: Our in-house indexes help us uncover high-quality content from blogs and "small web" discussions, typically without ads and tracking. This specific approach lends Kagi results a more human, relatable flavor, distinguishing us from other search engines. diff --git a/docs/kagi/why-kagi/ai-philosophy.md b/docs/kagi/why-kagi/ai-philosophy.md index 3d2c2e3b..7a8ae635 100644 --- a/docs/kagi/why-kagi/ai-philosophy.md +++ b/docs/kagi/why-kagi/ai-philosophy.md @@ -1,18 +1,18 @@ # Kagi's AI Integration Philosophy -Generative AI is a hot topic, but the technology still has flaws. Critics of AI go as far to [say](https://www.nytimes.com/2023/03/08/opinion/noam-chomsky-chatgpt-ai.html) that "*[AI] will degrade our science and debase our ethics by incorporating into our technology a fundamentally flawed conception of language and knowledge*". +Generative AI is a hot topic, but the technology still has flaws. Critics of AI go as far as to [say](https://www.nytimes.com/2023/03/08/opinion/noam-chomsky-chatgpt-ai.html) that "*[AI] will degrade our science and debase our ethics by incorporating into our technology a fundamentally flawed conception of language and knowledge*." From an information retrieval point of view, relevant to our context of a search engine, we should acknowledge the two main limitations of the current generation of AI. -1. Large language models (LLMs) should not be blindly trusted to provide factual information accurately. They have a significant risk of generating incorrect information or fabricating details (confabulating). This can easily mislead people who are not approaching LLMs pragmatically. (*This is a product of auto-regressive nature of these models where the output is predicted one token at a time, and once it strays away from the "correct" path, for which the probablity grows exponentially with the length of the output, it is "doomed" to the end of output, without the ability to plan ahead or correct itself*). +1. Large language models (LLMs) should not be blindly trusted to provide factual information accurately. They have a significant risk of generating incorrect information or fabricating details (confabulating). This can easily mislead people who are not approaching LLMs pragmatically. (*This is a product of the auto-regressive nature of these models where the output is predicted one token at a time, and once it strays away from the "correct" path, for which the probability grows exponentially with the length of the output, it is "doomed" to the end of output, without the ability to plan ahead or correct itself*). -2. LLMs are not intelligent in the human sense. They have no understanding of the actual physical world. They do not have their own genuine opinions, emotions, or sense of self. We must avoid attributing human-like qualities to these systems or thinking of them as having human-level abilities. They are limited AI technologies. (*In a way, they are similar to how a wheel can get us from point A to point B, sometimes much more efficiently than human body can, but it lacks the ability to plan and the agility of human body to get us everywhere a human body can*) +2. LLMs are not intelligent in the human sense. They have no understanding of the actual physical world. They do not have their own genuine opinions, emotions, or sense of self. We must avoid attributing human-like qualities to these systems or thinking of them as having human-level abilities. They are limited AI technologies. (*In a way, they are similar to how a wheel can get us from point A to point B, sometimes much more efficiently than the human body can, but it lacks the ability to plan and the agility of the human body to get us everywhere a human body can*). -These limitations required us to pause and reflect on the impact on search experience, before incorporating this new technology for our customers. As a result, we came up with an AI integration philosophy that is guided by these principles: +These limitations require us to pause and reflect on the impact on the search experience before incorporating this new technology for our customers. As a result, we came up with an AI integration philosophy that is guided by these principles: -1. **AI should be used in closed, defined context relevant to search** (don't make a therapist inside the search engine, for example) -2. **AI should be used to enhance the search experience, not to create it or replace it** (meaning AI is opt-in and on-demand, similar to how we use JavaScript in Kagi, where search still works perfectly fine when JS is disabled in the browser) -3. **AI should be used to the extent that it enhances our humanity, not diminish it** (AI should be used to support users, not replace them) +1. **AI should be used in a closed, defined context relevant to search** (don't make a therapist inside the search engine, for example). +2. **AI should be used to enhance the search experience, not to create it or replace it** (meaning AI is opt-in and on-demand, similar to how we use JavaScript in Kagi, where search still works perfectly fine when JS is disabled in the browser). +3. **AI should be used to the extent that it enhances our humanity, not diminish it** (AI should be used to support users, not replace them). While it's important to use AI tools responsibly and not overly rely on them, the design of these tools can sometimes make it difficult. diff --git a/docs/kagi/why-kagi/kagi-vs-competition.md b/docs/kagi/why-kagi/kagi-vs-competition.md index b3a6bfb5..9b682a9c 100644 --- a/docs/kagi/why-kagi/kagi-vs-competition.md +++ b/docs/kagi/why-kagi/kagi-vs-competition.md @@ -30,7 +30,7 @@ We’re obsessed with increasing speed and lowering latency, and we currently us First, we optimized our technology stack to increase code execution speed and decrease connection latency. -Second, we reduced data transfer between Kagi and the browser, in some cases as much as 20x less compared to some of our competitors! This reduction has the neat side-effect of reducing CO2 emissions. Using Kagi Search will benefit the environment as well as you! +Second, we reduced data transfer between Kagi and the browser, in some cases by as much as 20x less compared to some of our competitors! This reduction has the neat side effect of reducing CO2 emissions. Using Kagi Search will benefit the environment as well as you! | Product | SERP Size | CO2 | Load Time | | --- | --- | --- | --- | @@ -51,22 +51,22 @@ Instead of trying to create a search product for billions of people, we want to Kagi will allow you to discover well-written articles from lesser-known blogs and use features like [Lenses](../features/lenses.md) and [Personalized Results](../features/website-info-personalized-results.md#personalized_results). Ad-supported search must avoid this kind of depth and flexibility to stay profitable. Kagi has unique features, many of which can never be replicated in an ad-supported search engine. -We do not see Kagi as the Google killer. Google's scale and reach are enormous. Google also serves a purpose in the world —it did help enable our modern society to exist, with all its marvels and flaws. Heck, it even enables Kagi to exist! +We do not see Kagi as the Google killer. Google's scale and reach are enormous. Google also serves a purpose in the world — it did help enable our modern society to exist, with all its marvels and flaws. Heck, it even enables Kagi to exist! Think of Kagi as a small, premium brand, providing a very different, tailor-made search experience for people who need and appreciate that. ## Kagi vs. DuckDuckGo -DuckDuckGo has shown the world that a privacy-first search engine is possible, and we respect this contribution. But its innovation has slowed in the past decade. And, ad-supported business models will always force a company to make compromises and balance between serving users and advertisers. In the end, DuckDuckGo's search product is just ”good enough” (by our standard, sorry, DuckDuckGo!) and has been stagnant for years without any ground-breaking feature development. +DuckDuckGo has shown the world that a privacy-first search engine is possible, and we respect this contribution. However, its innovation has slowed in the past decade. Additionally, ad-supported business models will always force a company to make compromises and balance between serving users and advertisers. In the end, DuckDuckGo's search product is just "good enough" (by our standard, sorry, DuckDuckGo!) and has been stagnant for years without any groundbreaking feature development. -In contrast, Kagi search does not need to compromise on user experience. Everything we do is user-centric. Kagi Search already has many unique features, like [Lenses](../features/lenses.md) and [Personalized Results](../features/website-info-personalized-results.md#personalized_results). And because we depend only on our users for revenue, Kagi can and will always offer a much richer search experience for the user. +In contrast, Kagi search does not need to compromise on user experience. Everything we do is user-centric. Kagi Search already has many unique features, like [Lenses](../features/lenses.md) and [Personalized Results](../features/website-info-personalized-results.md#personalized_results). Because we depend only on our users for revenue, Kagi can and will always offer a much richer search experience for the user. ## Kagi vs. Brave Search We appreciate that Brave is making a free search product and that it cares about user privacy. That said, we believe that Kagi Search is a better solution. -Brave Search is pursuing an ad-based model where users can pay to opt-out of ads. This means that the product direction of Brave Search will be greatly influenced by the needs of advertisers. Kagi Search does not accept advertising and our product direction is guided only by the needs of users. +Brave Search is pursuing an ad-based model where users can pay to opt out of ads. This means that the product direction of Brave Search will be greatly influenced by the needs of advertisers. Kagi Search does not accept advertising, and our product direction is guided only by the needs of users. Brave Search also largely uses its own search index for results. Having a single-index source may be limiting. -Kagi Search includes anonymized requests to traditional search indexes including Brave, as well our own non-commercial index (Teclis), news index (TinyGem), and an AI for instant answers. Teclis and TinyGem are a result of our crawl through millions of domains, focusing primarily on non-commercial, high-quality content. More about Kagi's [search sources](../search-details/search-sources.md). +Kagi Search includes anonymized requests to traditional search indexes, including Brave, as well as our own non-commercial index (Teclis), news index (TinyGem), and an AI for instant answers. Teclis and TinyGem are a result of our crawl through millions of domains, focusing primarily on non-commercial, high-quality content. More about Kagi's [search sources](../search-details/search-sources.md). diff --git a/docs/kagi/why-kagi/kagi-vs-google.md b/docs/kagi/why-kagi/kagi-vs-google.md index bf1fed47..2b8b502f 100644 --- a/docs/kagi/why-kagi/kagi-vs-google.md +++ b/docs/kagi/why-kagi/kagi-vs-google.md @@ -6,6 +6,6 @@ Instead of trying to create a search product for billions of people, we want to Kagi will allow you to discover well-written articles from lesser-known blogs and use features like [Lenses](../features/lenses.md) and [Personalized Results](../features/website-info-personalized-results.md#personalized_results). Ad-supported search must avoid this kind of depth and flexibility to stay profitable. Kagi has unique features, many of which can never be replicated in an ad-supported search engine. -We do not see Kagi as the Google killer. Google's scale and reach are enormous. Google also serves a purpose in the world —it did help enable our modern society to exist, with all its marvels and flaws. Heck, it even enables Kagi to exist! +We do not see Kagi as the Google killer. Google's scale and reach are enormous. Google also serves a purpose in the world — it did help enable our modern society to exist, with all its marvels and flaws. Heck, it even enables Kagi to exist! Think of Kagi as a small, premium brand, providing a very different, tailor-made search experience for people who need and appreciate that. diff --git a/docs/kagi/why-kagi/noads.md b/docs/kagi/why-kagi/noads.md index 71658c70..616b6cac 100644 --- a/docs/kagi/why-kagi/noads.md +++ b/docs/kagi/why-kagi/noads.md @@ -2,16 +2,16 @@ Removing advertising from the web is the way forward. -- Ads slow down the web, make using the web unfriendly and intelligence-insulting, affect the way we think and behave and have a devastating effect on children. -- Tracking co-exists with ads and is a way to gather our personal information, usually without permission or consent, to increase adverting effectiveness. +- Ads slow down the web, make using the web unfriendly and intelligence-insulting, affect the way we think and behave, and have a devastating effect on children. +- Tracking coexists with ads and is a way to gather our personal information, usually without permission or consent, to increase advertising effectiveness. Kagi Inc. [products](../company/products.md) are free of ads and trackers. [Kagi Search](https://kagi.com) is an ad-free search engine that will actively down-rank sites with lots of ads and trackers in the results and promote sites with little or no advertising. Kagi is a paid search engine (that is how we make money) and has a free plan that allows you to try it before buying. -[Orion Browser](https://browser.kagi.com) is the world's first zero-telemetry browser with powerful 1st party and 3rd party ads/tracking +[Orion Browser](https://browser.kagi.com) is the world's first zero-telemetry browser with powerful first-party and third-party ads/tracking blocking. Orion is free with an optional paid plan if you want to support its development and is currently available for all Apple devices. -If you cannot use the Orion browser, we recommend installing [uBlock +If you cannot use the Orion browser, we recommend installing the [uBlock Origin](https://ublockorigin.com/) extension for your browser. It is the best ad-blocking extension and is entirely free to use. diff --git a/docs/orion/faq/faq.md b/docs/orion/faq/faq.md index 9cb9599e..b8e2abb1 100644 --- a/docs/orion/faq/faq.md +++ b/docs/orion/faq/faq.md @@ -24,12 +24,12 @@ - [Will Orion have feature xyz?](#featuresupport) - [Why is the ad-blocker turned on by default in Orion?](#noads) - [Is Orion open-source?](#oss) -- [Is Orion truly safe if it’s not open-source?](#ossprivacy) +- [Is Orion truly safe if it's not open-source?](#ossprivacy) - [How will Orion make money?](#business) - [Why does Orion look very similar to Safari (and not Chrome or Firefox)?](#based) - [Any "pro tips" for Orion users?](#tips) - [Why are some of the sites added to content blocker settings as OFF by default?](#contentblocker) -- [Help! A site isn’t working!](#compatibility) +- [Help! A site isn't working!](#compatibility) - [Is there a public issue tracker?](#issuetracker) - [What is Orion based on?](#tech) - [How to reset Orion to factory settings?](#reset) @@ -54,19 +54,19 @@ Watch it here in even higher quality! We take pride in Orion being 100% native on macOS/iOS/iPadOS. -Lets define what native means first: Native macOS app is an app that is specifically designed for the Apple macOS operating system and utilizes its APIs, frameworks, UI components and guidelines. +Let's define what native means first: A native macOS app is an app that is specifically designed for the Apple macOS operating system and utilizes its APIs, frameworks, UI components, and guidelines. The main benefits of native apps include: - Ensuring that the app feels familiar to users. HIG provides guidance on how to design an intuitive UI that follows platform conventions and therefore provides a consistent experience across apps for new and veteran users. -- It is generally accepted that Apple knows what it is doing when design is question. It is probably a good idea to follow its lead and probably one of the reasons you own a Mac or an iPhone. Following the extensive Human Interface Guidelines (HIG) makes any designer's job easier, not harder. +- It is generally accepted that Apple knows what it is doing when design is in question. It is probably a good idea to follow its lead and probably one of the reasons you own a Mac or an iPhone. Following the extensive Human Interface Guidelines (HIG) makes any designer's job easier, not harder. -- Any long time Mac user can easily see how Chrome or Firefox look and feel out of place on a Mac. These browsers were originally designed for Windows, but they work and look the same even on macOS or Linux, when those are clearly different operating systems with different conventions, design rules and aesthetics. +- Any long-time Mac user can easily see how Chrome or Firefox look and feel out of place on a Mac. These browsers were originally designed for Windows, but they work and look the same even on macOS or Linux, when those are clearly different operating systems with different conventions, design rules, and aesthetics. -- Native integrations allow apps to use powerful components provided by the OS. For example Orion utilizes Keychain to store passwords or gets the benefit of Live Text recognition of text in images. This make apps more powerful while being leaner and easier to build and maintain at the same time. +- Native integrations allow apps to use powerful components provided by the OS. For example, Orion utilizes Keychain to store passwords or gets the benefit of Live Text recognition of text in images. This makes apps more powerful while being leaner and easier to build and maintain at the same time. -- Finally, and maybe most importantly, using native components and frameworks generally makes apps faster, better for battery life and overall snappier. +- Finally, and maybe most importantly, using native components and frameworks generally makes apps faster, better for battery life, and overall snappier. ## Why use Orion instead of Safari? @@ -130,42 +130,42 @@ Yes, things don't always go as planned and mistakes can happen. If you ever need ## How to use Debug menu? -Orion's debug menu contains a number of commands that can be of interest to "advanced" users. To enabled Debug menu, type the following in terminal: +Orion's debug menu contains a number of commands that can be of interest to "advanced" users. To enable the Debug menu, type the following in the terminal: > defaults write com.kagi.kagimacOS DebugMenu 1 -If you use Orion RC (release candidate) replace with com.kagi.kagimacOS.RC. +If you use Orion RC (release candidate), replace with com.kagi.kagimacOS.RC. -When you relaunch Orion, you’ll find a new Debug menu, located to the right of the Help menu. +When you relaunch Orion, you'll find a new Debug menu, located to the right of the Help menu. -Test Web Page - Web Page for testing with default configuration and without any web-extension scripts +- Test Web Page: Web page for testing with default configuration and without any WebExtension scripts -Reset Welcome Animation State - To reset welcome animation flag to see again on next launch +- Reset Welcome Animation State: To reset the welcome animation flag to see it again on the next launch -Reset Preferences - Reset all global settings +- Reset Preferences: Reset all global settings -Clear Website Data - Remove all website data (cache, cookies etc) +- Clear Website Data: Remove all website data (cache, cookies, etc.) -Clear Content Blocking Lists - Remove Content Blocking List so that can be initialized again on next relaunch +- Clear Content Blocking Lists: Remove the Content Blocking List so that it can be initialized again on next launch -Clear Policy Cache - Removes WebRequest APIs request/response blocking (from web-extensions like uBlock) cache +- Clear Policy Cache: Removes WebRequest APIs request/response blocking (from WebExtensions like uBlock Origin) cache -Disable Resource Interceptor - Bypass any requests/response interception (used by WebRequests API) to reduce request/response delay +- Disable Resource Interceptor: Bypass any requests/response interception (used by WebRequests API) to reduce request/response delay -Disable Reloading Tab on WebKit Crash - Disables auto reload feature of webpage when WebContent process crashes +- Disable Reloading Tab on WebKit Crash: Disables the auto-reload feature of the webpage when the WebContent process crashes -Show Debug Log - Shows web-extension API console logs for testing/debug +- Show Debug Log: Shows WebExtension API console logs for testing/debugging -Factory Reset - Wipe all data and reset Orion to factory settings +- Factory Reset: Wipe all data and reset Orion to factory settings You can read more about Orion's advanced features in the [technical documentation](../misc/technical.md). ## How do I access my Favorites via shortcuts (CMD + #)? -Open Preferences -> Browsing, uncheck "Use cmd1 - cmd9 to switch tabs". +Go to Orion Settings -> Tabs, and uncheck "Use ⌘1—⌘9 to switch tabs." -Note that Orion uses Bookmarks bar that is separate from Favorites for more control, so you would need to copy bookmarks you want to the Bookmarks bar folder. +Note that Orion uses a Bookmarks bar that is separate from Favorites for more control, so you would need to copy the bookmarks you want to the Bookmarks bar folder. ## Orion is displaying wrong icons for Favorites and Frequently Visited pages — how can I fix that? @@ -193,13 +193,13 @@ This works best for previewing the icon change, but will not work across updates ## Should I use the Chrome or Firefox version of an extension in Orion? {#whichext} -Orion supports both Chrome and Firefox extensions. Usually they’re similar, but sometimes the extension developer puts extra effort in one version, maybe because they prefer that browser. +Orion supports both Chrome and Firefox extensions. Usually they're similar, but sometimes the extension developer puts extra effort in one version, maybe because they prefer that browser. With Orion, you can try both and use the one that works best for you. Orion is the only browser in the world that makes this choice possible! ## Does Orion have unique features? {#features} -Yes! Modern browsers have so many untapped opportunities for innovation that we had to dig in and explore. We’re excited with the results, so here are a few examples. +Yes! Modern browsers have so many untapped opportunities for innovation that we had to dig in and explore. We're excited with the results, so here are a few examples. - Focus Mode allows the user to completely remove toolbars. Browse the web distraction-free! - Low Power Mode extends your battery life by reducing Orion's power consumption up to 90%. @@ -229,8 +229,8 @@ We're working on it! We've started with some of [our components](https://github. Forking WebKit, porting hundreds of APIs, and writing a browser app from scratch has been challenging for our small team. Properly maintaining an open-source project takes time and resources that we are currently short on. If you would like to contribute, please consider becoming active on [orionfeedback.org](https://orionfeedback.org/). -## Is Orion truly safe if it’s not open-source? {#ossprivacy} -The idea that "open-source = trustworthy" only goes so far. For example, the same tech company that offers a popular open-source browser also has the largest ad/tracking network in history, with that browser playing a significant role in it. Another company with a closed-source browser (using WebKit like Orion) is on the forefront of privacy awareness and technologies in its products. +## Is Orion truly safe if it's not open-source? {#ossprivacy} +The idea that "open-source = trustworthy" only goes so far. For example, the same tech company that offers a popular open-source browser also has the largest ad/tracking network in history, with that browser playing a significant role in it. Another company with a closed-source browser (using WebKit like Orion) is at the forefront of privacy awareness and technologies in its products. To properly protect your data, you need good answers to two questions: @@ -238,38 +238,43 @@ Does this browser collect and send data anywhere? How does this browser make money? For the first question, what happens to your collected data is always closed-source, even on open-source browsers. Unlike Orion, most modern browsers send hundreds of data packets out, and each contains private information like your IP address and browser fingerprint, in addition to any other data they send. No open-source browser vendor has opened the code that processes this collected data. -Find out whether your browser respects your privacy by launching a network proxy ([Proxyman](https://proxyman.io/), [mitmproxy](https://mitmproxy.org/) and [Charles](https://www.charlesproxy.com/) are good options on macOS). With Orion, you’ll see zero unexpected requests in your network traffic log by default. You’ll see something very different with nearly every other browser. +Find out whether your browser respects your privacy by launching a network proxy ([Proxyman](https://proxyman.io/), [mitmproxy](https://mitmproxy.org/), and [Charles](https://www.charlesproxy.com/) are good options on macOS). With Orion, you'll see zero unexpected requests in your network traffic log by default. You'll see something very different with nearly every other browser. For the second question, companies that produce popular, free, open-source browsers also generate a lot of revenue. How does that happen? Knowing where their browsers sit in that chain of revenue can tell you whether you can trust that browser with your private information. ## How will Orion make money? {#business} -[Orion+](https://browser.kagi.com/orionplus.html) version allows users to support Orion’s development. Will it generate revenue? That’s up to you. Regardless, all funding for Orion will come from its users rather than ads, tracking, data monetization or any other indirect way. +[Orion+](https://browser.kagi.com/orionplus.html) version allows users to support Orion's development. Will it generate revenue? That's up to you. Regardless, all funding for Orion will come from its users rather than ads, tracking, data monetization or any other indirect method. We want Orion to be the number one Mac browser because it uses engineering craftsmanship and attention to detail to provide a superior product experience and unmatched features that work for everyone, from power users to grandmas. -We believe this project will deliver an experience that its users value enough to support. We believe that enough to promise that we’ll never resort to ads or other such funding methods. Orion makes it possible, and you make Orion possible. +We believe this project will deliver an experience that its users value enough to support. We believe this enough to promise that we'll never resort to ads or other such funding methods. Orion makes it possible, and you make Orion possible. ## Why does Orion look very similar to Safari (and not Chrome or Firefox)? {#based} -We see Safari as the "reference" implementation from the OS manufacturer itself, Apple. So using Safari as our reference ensures that Orion follows best practices in design, engineering, interactions, and more. We respect the decisions that Apple made and abide by them at every point where they serve our users’ interests. +We see Safari as the "reference" implementation from the OS manufacturer itself, Apple. So using Safari as our reference ensures that Orion follows best practices in design, engineering, interactions, and more. We respect the decisions that Apple made and abide by them at every point where they serve our users' interests. ## Any "pro tips" for Orion users? {#tips} Blocking web fonts can have a profound effect on news sites. On cnn.com, the average page size dropped from ~7MB to ~2MB, eliminating more than 70% of unnecessary data transfer. Those sites will load faster, use less bandwidth, and often look more readable too! -Also, on any sites that don’t require logging in, disabling cookies is a great way to boost your speed and privacy. +Also, on any sites that don't require logging in, disabling cookies is a great way to boost your speed and privacy. ## Why are some of the sites added to content blocker settings as OFF by default? {#contentblocker} -Orion comes with a built in content blocker that in rare cases can affect proper functionality of some websites. We decided to maintain a whitelist of websites where content blocker will be turned off by default. This list currently consists of: +Orion comes with a built-in content blocker that, in rare cases, can affect the proper functionality of some websites. +We decided to maintain a whitelist of websites where the content blocker will be turned off by default. This list currently consists of: -browserbench.org - Content blocker in general interferes with javascript performance benchmarking. We decided it is best to have it off to measure the real speed of WebKit's javascript engine. -wizzair.com - Interference with rendering of the website +- browserbench.org \ +The content blocker in general interferes with JavaScript performance benchmarking. +We decided it is best to have it off to measure the real speed of WebKit's JavaScript engine. +- wizzair.com \ +Interference with the rendering of the website -## Help! A site isn’t working! {#compatibility} -Orion has a "Compatibility mode" in the settings menu. Turning it on will suspend your currently running extensions (the most common cause of problems) and record the setting for this website so it works when you visit it again. +## Help! A site isn't working! {#compatibility} +Orion has a "Compatibility mode" in the settings menu. +Enabling it will suspend your currently running extensions (the most common cause of problems) and save the setting for this website so it works when you visit it again. If the site still fails, you may want to test it in Safari. If it works there, please report the problem to us via our [Discord server](https://kagi.com/discord). @@ -280,7 +285,7 @@ Yes. Please use [orionfeedback.org](https://orionfeedback.org/) (requires regist ## What is Orion based on? {#tech} -Orion shares much of the same technology as Safari, such as the WebKit rendering engine. We’re grateful for all the performance and privacy features that Apple and its contributors built into this tech. +Orion shares much of the same technology as Safari, such as the WebKit rendering engine. We're grateful for all the performance and privacy features that Apple and its contributors built into this tech. ## How to reset Orion to factory settings? {#reset} diff --git a/docs/orion/features/custom-blocklists.md b/docs/orion/features/custom-blocklists.md index db4fb349..2c07193e 100644 --- a/docs/orion/features/custom-blocklists.md +++ b/docs/orion/features/custom-blocklists.md @@ -18,23 +18,23 @@ Orion includes the following blocklists by default. The blocklists in **bold** are enabled by default and provide sufficient protection against most ads and trackers. -- **AdGuard Base filter (Optimized)** -- **AdGuard Tracking Protection filter (Optimized)** -- AdGuard Annoyances Filter (Optimized) -- AdGuard Social Media filter (Optimized) +- **Easylist** +- **EasyPrivacy** - Hagezi Light DNS Blocklist - Hagezi Pro Plus Mini +- Fanboy's Annoyance +- Privacy Essentials - Block third-party fonts On macOS, you can enable or disable these blocklists in **Orion** > **Settings** > **Privacy**, then click the **Manage Filter Lists...** button. -On iOS, the blocklists can be managed in the settings: **⋯** > **Settings** > Scroll down to **Content Blocker** and tap **Manage**. +On iOS, the blocklists can be managed in the settings: **⋯** > **Settings** > Scroll down to the **Content Blockers** section, open it and tap **Manage Content Blocker**. ## Custom Blocklists {#custom_blocklists} In addition to the default blocklists, Orion allows you to customize its ad blocker by using custom blocklists. -Blocklists are lists of domains that are known to serve ads, trackers, malware and other annoyances. +Blocklists are lists of domains that are known to serve ads, trackers, malware, and other annoyances. Orion checks web page requests against these lists and blocks any requests to the listed domains. This prevents ads from being displayed and trackers from following you around. @@ -47,7 +47,7 @@ Blocklists are constantly updated as new ad/tracking domains appear. List mainta On macOS, to manually update blocklists, go to **Orion** > **Settings** > **Privacy** and click **Update Now**. Wait for the "Processing update" message to disappear. -On iOS, blocklists can be updated in the settings: **⋯** > **Settings** > Scroll down to **Content Blocker** and tap **Update Now**. +On iOS, blocklists can be updated in the settings: **⋯** > **Settings** > Scroll down to the **Content Blockers** section and tap **Update Now**. Orion macOS Blocklists - Update Now
@@ -97,7 +97,7 @@ In the **Manage Content Blocker** window, click the **Add New** button. iOS Blocklists - Add Blocklist
-Then, paste the URL of the blocklist you wish to add and tap the **Done** button in the top right corner of the window. +Then, paste the URL of the blocklist you wish to add and tap the **Done** button in the top-right corner of the window. Finally, tap **Done** in the Manage Content Blocker window. The Custom Filter Name field can have any name you see fit. @@ -110,9 +110,9 @@ The Custom Filter Name field can have any name you see fit. ## Impact of Number of Blocking Rules on Performance {#performance_chart} -Orion's content blocker compiles each blocklist to convert it to native WebKit content blocking rules. -This results in minimal performance impact dependent on the number of blocking rules that are active. -The following chart illustrates the relationship between Orion's WebKit performance vs the number of blocking rules: +Orion's content blocker compiles each blocklist to convert it into native WebKit content blocking rules. +This results in minimal performance impact, dependening on the number of blocking rules that are active. +The following chart illustrates the relationship between Orion's WebKit performance and the number of blocking rules: Blocklists - Impact of Number of Blocking Rules on Performance
@@ -210,9 +210,10 @@ iam-py-test's The malicious website blocklist - [Info](https://github.com/iam-py ## Regional Blocklists {#regional_blocklists} -EasyList maintains [supplementary blocklists](https://easylist.to/pages/other-supplementary-filter-lists-and-easylist-variants.html) that can improve ad blocking on non-English websites. +EasyList maintains [supplementary blocklists](https://easylist.to/pages/other-supplementary-filter-lists-and-easylist-variants.html) that can enhance ad blocking on non-English websites. -The list of regional filters is below. Please visit the [EasyList website](https://easylist.to/pages/other-supplementary-filter-lists-and-easylist-variants.html) for more information. +The list of regional filters is provided below. +Please visit the [EasyList website](https://easylist.to/pages/other-supplementary-filter-lists-and-easylist-variants.html) for more information.

Show filters
@@ -290,7 +291,6 @@ Orion allows you to create your own filters directly in Orion Settings. On macOS, you can enable this feature in **Orion** > **Settings** > **Privacy** > **Manage Filter Lists**, then check the **Custom Filters** checkbox, and specify the rules in the text area. On iOS, custom filters can be added in the **Manage Content Blocker** window. -For example, users wishing to block ads on reddit could add `reddit.com##.promotedlink` into this section. Once finished, tap **Done** in the top right corner of the window. Blocklists - Custom Filters
@@ -300,7 +300,9 @@ Once finished, tap **Done** in the top right corner of the window. ## Blocklist Syntax {#blocklist-syntax} -Orion follows the Adblock Plus standard for its blocklist syntax, this means any filters created for Adblock Plus are compatible with Orion. You can learn how to create your own blocklists by following the [step-by-step guide](https://adblockplus.org/filter-cheatsheet), or visit the full [blocklist syntax reference](https://help.adblockplus.org/hc/en-us/articles/360062733293-How-to-write-filters) for more technical details. +Orion follows the Adblock Plus standard for its blocklist syntax. +This means any filters created for Adblock Plus are compatible with Orion. +You can learn how to create your own blocklists by following the [step-by-step guide](https://adblockplus.org/filter-cheatsheet) or visiting the full [blocklist syntax reference](https://help.adblockplus.org/hc/en-us/articles/360062733293-How-to-write-filters) for more technical details. Note: Snippet filters are not supported. @@ -308,4 +310,5 @@ Note: Snippet filters are not supported. ## Contributing to Blocklists {#contributing_blocklists} -Many blocklists are open source and maintained by independent groups and communities. Anyone can submit domains for inclusion in the lists. +Many blocklists are open-source and maintained by independent groups and communities. +Anyone can submit domains for inclusion in the lists. diff --git a/docs/orion/orion-plus/orion-plus.md b/docs/orion/orion-plus/orion-plus.md index 06cec80a..bfac8f73 100644 --- a/docs/orion/orion-plus/orion-plus.md +++ b/docs/orion/orion-plus/orion-plus.md @@ -1,13 +1,14 @@ # What is Orion+? -[Orion+](https://browser.kagi.com/orionplus.html) allows you to support the Orion project and mission. For a small fee ($5 per month or $50 per year), you’ll get: +[Orion+](https://browser.kagi.com/orionplus.html) allows you to support the Orion project and mission. +For a small fee ($5 per month or $50 per year), you’ll get: - Direct communication with the development team - The ability to influence the browser’s development - Access to nightly builds, bleeding-edge WebKit (faster than stable), and experimental features -- The satisfaction of supporting an ad-free, unmonetized browser -- An Orion+ icon to represent that support +- The satisfaction of supporting an ad-free, zero telemetry browser +- An Orion+ icon on the feedback forum to represent that support -We are still working on some of these features and they will be released shortly. +We are still working on some of these features, and they will be released shortly. -Your financial contribution will help us to stay independent and to deliver on our promise of becoming the best browser for Apple users. You can also help us by spreading the word about Orion everywhere you go, from social media to the dinner table. +Your financial contribution will help us stay independent and deliver on our promise of becoming the best browser for Apple users. You can also help us by spreading the word about Orion everywhere you go, from social media to the dinner table. diff --git a/docs/orion/privacy-and-security/preventing-fingerprinting.md b/docs/orion/privacy-and-security/preventing-fingerprinting.md index abb409ad..886aed29 100644 --- a/docs/orion/privacy-and-security/preventing-fingerprinting.md +++ b/docs/orion/privacy-and-security/preventing-fingerprinting.md @@ -1,9 +1,9 @@ # Preventing Fingerprinting -Orion approaches this problem with the philosophy of "no fingerprinter running, no fingerprinting possible". This is because it is literally impossible to prevent fingerprinting from a sophisticated fingerprinter, if one is ever allowed to run.  +Orion approaches this problem with the philosophy of "no fingerprinter running, no fingerprinting possible." This is because it is literally impossible to prevent fingerprinting from a sophisticated fingerprinter if one is ever allowed to run.  -Even a [simple JS/CSS based fingerprinter](https://fingerprintjs.com/) will bypass 99% of "protections" created by browsers, let alone something sophisticated such as [GPU fingerprinting](https://www.bleepingcomputer.com/news/security/researchers-use-gpu-fingerprinting-to-track-users-online/) or [audio driver fingerprinting](https://techcrunch.com/2016/05/19/audio-fingerprinting-being-used-to-track-web-users-study-finds/). Literally, if Javascript/CSS is allowed to run in your browser, and a fingerprinter runs on the page, your browser will be fingerprinted. +Even a [simple JS/CSS-based fingerprinter](https://fingerprintjs.com/) will bypass 99% of the "protections" created by browsers, let alone something sophisticated such as [GPU fingerprinting](https://www.bleepingcomputer.com/news/security/researchers-use-gpu-fingerprinting-to-track-users-online/) or [audio driver fingerprinting](https://techcrunch.com/2016/05/19/audio-fingerprinting-being-used-to-track-web-users-study-finds/). Literally, if JavaScript/CSS is allowed to run in your browser, and a fingerprinter runs on the page, your browser will be fingerprinted. So forget user agent/screen resolution/OS masking and other marketing talk used by browsers—this was maybe a thing 15 years ago, if ever. This does not protect you against sophisticated fingerprinters on the web. -The only efficient protection against fingerprinting is what Orion is doing - preventing any fingerprinter from running in the first place. Orion is the only browser on the market that comes with full first-party and third-party ad and tracking script blocking, built-in by default, making sure invasive fingerprinters never run on the page. \ No newline at end of file +The only efficient protection against fingerprinting is what Orion is doing — preventing any fingerprinter from running in the first place. Orion is the only browser on the market that comes with full first-party and third-party ad and tracking script blocking, built-in by default, making sure invasive fingerprinters never run on the page. diff --git a/docs/orion/privacy-and-security/protecting-privacy.md b/docs/orion/privacy-and-security/protecting-privacy.md index 938a57be..4dafab4d 100644 --- a/docs/orion/privacy-and-security/protecting-privacy.md +++ b/docs/orion/privacy-and-security/protecting-privacy.md @@ -1,7 +1,10 @@ # Protecting Privacy -Web ads have steadily eroded the online experience with their layout crowding, page slowing, annoying popups, and insidious malware. Yet, most browsers do not block ads by default. Orion is different. +Web ads have steadily eroded the online experience with their layout crowding, page slowing, annoying pop-ups, and insidious malware. +Yet, most browsers do not block ads by default. Orion is different. -It comes with a state-of-the-art ad and tracking blocker that blocks first-party and third-party scripts and requests. That means that Orion always blocks all trackers by default. We combined WebKit's Intelligent Tracking Protection with "Easy Privacy" and other lists, providing double protection. +It comes with a state-of-the-art ad and tracking blocker that blocks first-party and third-party scripts and requests. +That means that Orion always blocks all trackers by default. +We combined WebKit's Intelligent Tracking Protection with "Easy Privacy" and other lists, providing double protection. -We use WebKit's content-blocking functionality and an optimized content-blocking database to maximize speed and minimize latency as well. Orion successfully blocks 99.9% of all ads, including YouTube ads, both on desktop and mobile. \ No newline at end of file +We use WebKit's content-blocking functionality and an optimized content-blocking database to maximize speed and minimize latency as well. Orion successfully blocks 99.9% of all ads, including YouTube ads, both on desktop and mobile. diff --git a/docs/orion/why-orion/kagi-vs-others.md b/docs/orion/why-orion/kagi-vs-others.md index f388cdf5..18e44c93 100644 --- a/docs/orion/why-orion/kagi-vs-others.md +++ b/docs/orion/why-orion/kagi-vs-others.md @@ -1,9 +1,9 @@ # Orion vs. Chrome, Firefox, & Others -Google and Mozilla have made great technological strides over the past decades. We’re grateful for those efforts because they help us take the next step in browser evolution. Orion has superior performance, memory use, and battery efficiency compared to any non-WebKit browser on a macOS. +Google and Mozilla have made great technological strides over the past decades. We’re grateful for those efforts because they help us take the next step in browser evolution. Orion has superior performance, memory use, and battery efficiency compared to any non-WebKit browser on macOS. -Orion is the first browser to have a zero-telemetry policy, meaning it will never "phone home" with any of your data. It also comes with a default blocker that knocks out ads and trackers, keeping websites respectful of our users. +Orion is the first browser to have a zero-telemetry policy, meaning it will never "phone home" with any of your data. It also comes with a default blocker that eliminates ads and trackers, keeping websites respectful of our users. -As a native Mac app, Orion uses macOS components to give you the speed, look, and feel of a Mac app along with deep integration of native system technologies. +As a native Mac app, Orion uses macOS components to provide you with the speed, look, and feel of a Mac app along with deep integration of native system technologies. -And, of course, Orion takes its users seriously. Because we’re zero telemetry, we design the product based only on what our users tell us. We’re here for you, and we’re doing this together! \ No newline at end of file +And, of course, Orion takes its users seriously. Because we are zero telemetry, we design the product based only on what our users tell us. We’re here for you, and we’re doing this together! diff --git a/docs/orion/why-orion/orion-vs-safari.md b/docs/orion/why-orion/orion-vs-safari.md index 4094635b..88c110a2 100644 --- a/docs/orion/why-orion/orion-vs-safari.md +++ b/docs/orion/why-orion/orion-vs-safari.md @@ -6,7 +6,7 @@ next: # Orion vs. Safari -Safari is truly one of the best browsers you can use on macOS, and we’re grateful to Apple for creating such a solid foundation. By basing Orion on Safari’s tech stack, then adding productivity enhancements such as built-in ad-blocking, Orion can provide users with exactly what they need. +Safari is truly one of the best browsers you can use on macOS, and we’re grateful to Apple for creating such a solid foundation. By basing Orion on Safari’s tech stack and then adding productivity enhancements such as built-in ad-blocking, Orion can provide users with exactly what they need. You want speed? Orion is currently the fastest Mac browser out there. We built a snappy, lightweight browser around Safari’s WebKit engine to accelerate your web experience. From 64eb609437491bfd2f18a84dd4aecd22434043f9 Mon Sep 17 00:00:00 2001 From: laiz Date: Tue, 18 Feb 2025 08:46:59 +0200 Subject: [PATCH 4/4] further typo fixes --- docs/orion/features/custom-blocklists.md | 4 ++-- docs/orion/why-orion/kagi-vs-others.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/orion/features/custom-blocklists.md b/docs/orion/features/custom-blocklists.md index 2c07193e..31b69c8c 100644 --- a/docs/orion/features/custom-blocklists.md +++ b/docs/orion/features/custom-blocklists.md @@ -18,7 +18,7 @@ Orion includes the following blocklists by default. The blocklists in **bold** are enabled by default and provide sufficient protection against most ads and trackers. -- **Easylist** +- **EasyList** - **EasyPrivacy** - Hagezi Light DNS Blocklist - Hagezi Pro Plus Mini @@ -111,7 +111,7 @@ The Custom Filter Name field can have any name you see fit. ## Impact of Number of Blocking Rules on Performance {#performance_chart} Orion's content blocker compiles each blocklist to convert it into native WebKit content blocking rules. -This results in minimal performance impact, dependening on the number of blocking rules that are active. +This results in minimal performance impact, depending on the number of blocking rules that are active. The following chart illustrates the relationship between Orion's WebKit performance and the number of blocking rules: Blocklists - Impact of Number of Blocking Rules on Performance
diff --git a/docs/orion/why-orion/kagi-vs-others.md b/docs/orion/why-orion/kagi-vs-others.md index 18e44c93..73b7de09 100644 --- a/docs/orion/why-orion/kagi-vs-others.md +++ b/docs/orion/why-orion/kagi-vs-others.md @@ -6,4 +6,4 @@ Orion is the first browser to have a zero-telemetry policy, meaning it will neve As a native Mac app, Orion uses macOS components to provide you with the speed, look, and feel of a Mac app along with deep integration of native system technologies. -And, of course, Orion takes its users seriously. Because we are zero telemetry, we design the product based only on what our users tell us. We’re here for you, and we’re doing this together! +And, of course, Orion takes its users seriously. Because we are zero telemetry, we design the product based only on what our users tell us. We are here for our users, and we are doing this together!