duckduckgo/apple-browsers

DuckDuckGo iOS & macOS browsers

252Stars on the repository
53Mods indexed here, across every type
todayLast push, which is what freshness is scored on
Apache-2.0Licence, which decides whether bodies are shown

duckduckgo/apple-browsers

Cursor rule Cursor

The DuckDuckGo browser includes a comprehensive A/B/N experiment framework that enables data-driven feature testing across iOS and macOS platforms. This framework allows you to safely experiment with new ideas while maintaining control groups and measuring impact.

252 today A 0 tokens Apache-2.0

duckduckgo/apple-browsers

Cursor rule Cursor

The DuckDuckGo browser has moved away from traditional AppDelegate-based lifecycle handling to a state machine architecture. While AppDelegate still exists, it has been significantly thinned out and now delegates responsibility to a structured state machine.

252 today A 0 tokens Apache-2.0

architecture

05

duckduckgo/apple-browsers

Cursor rule Cursor

Cursor rule "architecture" from duckduckgo/apple-browsers, covering duckduckgo browser architecture guidelines, overall architecture, architecture patterns, mvvm for swiftui views and coordinator pattern.

252 today A 0 tokens Apache-2.0

duckduckgo/apple-browsers

Cursor rule Cursor

DuckDuckGo browser development follows GitHub Flow, a streamlined branching strategy that maintains a single main branch with feature branches for development work.

252 today A 0 tokens Apache-2.0

duckduckgo/apple-browsers

Cursor rule Cursor

BrowserServicesKit is the core shared library providing essential browser functionality to both iOS and macOS DuckDuckGo applications. It ensures consistent behavior and code reuse across platforms while maintaining privacy as the primary focus.

252 today A 0 tokens Apache-2.0

code-style

08

duckduckgo/apple-browsers

Cursor rule Cursor

This style guide is based on the official iOS style guide and incorporates DuckDuckGo-specific patterns and requirements.

252 today B 5,762 tokens Apache-2.0

duckduckgo/apple-browsers

Cursor rule Cursor

The DuckDuckGo iOS design system is implemented through DesignResourcesKit (DRK), a shared Swift package that contains our design tokens, type styles, colors, and design system elements.

252 today A 3,138 tokens Apache-2.0

duckduckgo/apple-browsers

Cursor rule Cursor

How to organize DocC documentation between package and app level; the entry point for any task that creates or updates DocC articles.

252 today A 26 tokens Apache-2.0

duckplayer

15

duckduckgo/apple-browsers

Cursor rule Cursor

DuckPlayer provides video playback within the app, separate from the web view-based player. The architecture separates concerns into distinct components using a presenter pattern, native UI views, and JavaScript integration for seamless video playback experiences.

252 today A 0 tokens Apache-2.0

general

18

duckduckgo/apple-browsers

Cursor rule Cursor

This is the DuckDuckGo browser for iOS and macOS, built with privacy-first principles, modern Swift patterns, and cross-platform architecture.

252 today A 1,808 tokens Apache-2.0

import-hygiene

19

duckduckgo/apple-browsers

Cursor rule Cursor

Prevent accidental or unrequested import churn that causes build/lint issues and diffs unrelated to the task. Ensure SwiftUI is only imported where required (e.g., #Preview blocks) and avoid touching existing imports unless strictly necessary.

252 today A 525 tokens Apache-2.0

duckduckgo/apple-browsers

Cursor rule Cursor

This document provides a comprehensive overview of how content blocking has been implemented on iOS to protect user privacy and block tracking attempts. Our implementation uses a dual-approach strategy that combines the efficiency of WebKit's native content blocking with the flexibility of JavaScript-based protection.

252 today A 0 tokens Apache-2.0

logging-guidelines

23

duckduckgo/apple-browsers

Cursor rule Cursor

The DuckDuckGo browser apps for iOS and macOS leverage Apple's Unified Logging System for capturing telemetry and debugging information. This system enables efficient tracking of app behavior, issue diagnosis, and performance monitoring in a structured and privacy-conscious manner.

252 today B 0 tokens Apache-2.0

duckduckgo/apple-browsers

Cursor rule Cursor

Define a concrete pattern for removing .shared singletons in the macOS app by replacing them with app-owned instances and dependency injection. The AIChatPreferences and AboutPreferences refactors in AppDelegate are canonical examples.

252 today A 0 tokens Apache-2.0