# badmojr/1hosts architecture

> Architecture diagram of the GitHub repository badmojr/1hosts, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/badmojr/1hosts
- Repository: https://github.com/badmojr/1hosts

## Overview

1Hosts is a maintained ad-, tracker-, and malware-blocking list product. Users choose the balanced Lite or aggressive Xtra variant, select a format supported by their software or DNS setup, and apply the published list. The tree contains curation and submission list files as well as the published variants; sampled source does not establish how those inputs are transformed into outputs, so that wiring is not asserted.

Main entry points: [`Lite`](https://github.com/badmojr/1hosts/tree/master/Lite) (Lite lists), [`Xtra`](https://github.com/badmojr/1hosts/tree/master/Xtra) (Xtra lists), [`Lite/hosts.txt`](https://github.com/badmojr/1hosts/blob/master/Lite/hosts.txt) (Hosts formats), [`Lite/domains.txt`](https://github.com/badmojr/1hosts/blob/master/Lite/domains.txt) (DNS formats)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_curation["List curation"]
  node_curation_lists["Curation lists"]
  node_submissions["List submissions"]
end

subgraph group_variants["Blocklist variants"]
  node_lite["Lite lists"]
  node_xtra["Xtra lists"]
end

subgraph group_formats["Client formats"]
  node_hosts["Hosts formats<br/>[hosts.txt]"]
  node_dns_formats["DNS formats<br/>[domains.txt]"]
  node_wildcard_formats["Wildcard formats<br/>[domains.wildcards]"]
  node_adblock["Adblock format<br/>[adblock.txt]"]
  node_service_formats["Resolver formats<br/>[dnsmasq.conf]"]
  node_other_formats["Other formats<br/>[snitch.rules]"]
end

subgraph group_delivery["Use and delivery"]
  node_clients["Compatible clients"]
  node_dns_services["DNS services"]
  node_mirrors["Repository mirrors"]
end

node_user(("User"))

node_user -->|"chooses balanced"| node_lite
node_user -->|"chooses aggressive"| node_xtra
node_user -->|"submits lists"| node_submissions
node_lite -->|"offers"| node_hosts
node_lite -->|"offers"| node_dns_formats
node_lite -->|"offers"| node_wildcard_formats
node_lite -->|"offers"| node_adblock
node_lite -->|"offers"| node_service_formats
node_lite -->|"offers"| node_other_formats
node_xtra -->|"offers format"| node_hosts
node_xtra -->|"offers format"| node_dns_formats
node_xtra -->|"offers format"| node_wildcard_formats
node_xtra -->|"offers format"| node_adblock
node_xtra -->|"offers format"| node_service_formats
node_xtra -->|"offers format"| node_other_formats
node_user -->|"downloads from"| node_mirrors
node_mirrors -->|"serves"| node_lite
node_mirrors -->|"serves"| node_xtra
node_user -->|"configures"| node_clients
node_user -->|"uses DNS"| node_dns_services

click node_curation_lists "https://github.com/badmojr/1hosts/tree/master/-data/lists"
click node_submissions "https://github.com/badmojr/1hosts/tree/master/submit_here"
click node_lite "https://github.com/badmojr/1hosts/tree/master/Lite"
click node_xtra "https://github.com/badmojr/1hosts/tree/master/Xtra"
click node_hosts "https://github.com/badmojr/1hosts/blob/master/Lite/hosts.txt"
click node_dns_formats "https://github.com/badmojr/1hosts/blob/master/Lite/domains.txt"
click node_wildcard_formats "https://github.com/badmojr/1hosts/blob/master/Lite/domains.wildcards"
click node_adblock "https://github.com/badmojr/1hosts/blob/master/Lite/adblock.txt"
click node_service_formats "https://github.com/badmojr/1hosts/blob/master/Lite/dnsmasq.conf"
click node_other_formats "https://github.com/badmojr/1hosts/blob/master/Lite/snitch.rules"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_curation_lists,node_submissions,node_user toneBlue
class node_lite,node_xtra toneAmber
class node_hosts,node_dns_formats,node_wildcard_formats,node_adblock,node_service_formats,node_other_formats toneMint
class node_clients,node_dns_services,node_mirrors toneRose
```

## Components

### List curation

- [Curation lists](https://github.com/badmojr/1hosts/tree/master/-data/lists): `-data/lists`
- [List submissions](https://github.com/badmojr/1hosts/tree/master/submit_here): `submit_here`

### Blocklist variants

- [Lite lists](https://github.com/badmojr/1hosts/tree/master/Lite): `Lite`
- [Xtra lists](https://github.com/badmojr/1hosts/tree/master/Xtra): `Xtra`

### Client formats

- [Hosts formats](https://github.com/badmojr/1hosts/blob/master/Lite/hosts.txt): `Lite/hosts.txt`
- [DNS formats](https://github.com/badmojr/1hosts/blob/master/Lite/domains.txt): `Lite/domains.txt`
- [Wildcard formats](https://github.com/badmojr/1hosts/blob/master/Lite/domains.wildcards): `Lite/domains.wildcards`
- [Adblock format](https://github.com/badmojr/1hosts/blob/master/Lite/adblock.txt): `Lite/adblock.txt`
- [Resolver formats](https://github.com/badmojr/1hosts/blob/master/Lite/dnsmasq.conf): `Lite/dnsmasq.conf`
- [Other formats](https://github.com/badmojr/1hosts/blob/master/Lite/snitch.rules): `Lite/snitch.rules`

### Use and delivery

- **Compatible clients**
- **DNS services**
- **Repository mirrors**

### Other components

- **User**

## Connections

- User → Lite lists: chooses balanced
- User → Xtra lists: chooses aggressive
- User → List submissions: submits lists
- Lite lists → Hosts formats: offers
- Lite lists → DNS formats: offers
- Lite lists → Wildcard formats: offers
- Lite lists → Adblock format: offers
- Lite lists → Resolver formats: offers
- Lite lists → Other formats: offers
- Xtra lists → Hosts formats: offers format
- Xtra lists → DNS formats: offers format
- Xtra lists → Wildcard formats: offers format
- Xtra lists → Adblock format: offers format
- Xtra lists → Resolver formats: offers format
- Xtra lists → Other formats: offers format
- User → Repository mirrors: downloads from
- Repository mirrors → Lite lists: serves
- Repository mirrors → Xtra lists: serves
- User → Compatible clients: configures
- User → DNS services: uses DNS
