├── README.md ├── vision ├── eurosky-vision.pdf ├── css │ ├── Mulish-VariableFont_wght.ttf │ ├── Cormorant-VariableFont_wght.ttf │ ├── Mulish-Italic-VariableFont_wght.ttf │ ├── Cormorant-Italic-VariableFont_wght.ttf │ └── academic.css ├── nemik.config.js └── eurosky-vision.html ├── arch-memo-en ├── .nemik │ ├── img │ │ └── logo.png │ └── css │ │ ├── Mulish-VariableFont_wght.ttf │ │ ├── JosefinSans-VariableFont_wght.ttf │ │ ├── Mulish-Italic-VariableFont_wght.ttf │ │ ├── JosefinSans-Italic-VariableFont_wght.ttf │ │ └── sky.css ├── eurosky-design-sovereignty-en.pdf ├── nemik.config.js ├── eurosky-design-sovereignty-en.html └── eurosky-design-sovereignty-en.json ├── .gitignore └── LICENSE /README.md: -------------------------------------------------------------------------------- 1 | # eurosky-vision 2 | Just the PDF generation 3 | -------------------------------------------------------------------------------- /vision/eurosky-vision.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darobin/eurosky-vision/main/vision/eurosky-vision.pdf -------------------------------------------------------------------------------- /arch-memo-en/.nemik/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darobin/eurosky-vision/main/arch-memo-en/.nemik/img/logo.png -------------------------------------------------------------------------------- /vision/css/Mulish-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darobin/eurosky-vision/main/vision/css/Mulish-VariableFont_wght.ttf -------------------------------------------------------------------------------- /vision/css/Cormorant-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darobin/eurosky-vision/main/vision/css/Cormorant-VariableFont_wght.ttf -------------------------------------------------------------------------------- /arch-memo-en/eurosky-design-sovereignty-en.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darobin/eurosky-vision/main/arch-memo-en/eurosky-design-sovereignty-en.pdf -------------------------------------------------------------------------------- /vision/css/Mulish-Italic-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darobin/eurosky-vision/main/vision/css/Mulish-Italic-VariableFont_wght.ttf -------------------------------------------------------------------------------- /vision/css/Cormorant-Italic-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darobin/eurosky-vision/main/vision/css/Cormorant-Italic-VariableFont_wght.ttf -------------------------------------------------------------------------------- /arch-memo-en/.nemik/css/Mulish-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darobin/eurosky-vision/main/arch-memo-en/.nemik/css/Mulish-VariableFont_wght.ttf -------------------------------------------------------------------------------- /arch-memo-en/.nemik/css/JosefinSans-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darobin/eurosky-vision/main/arch-memo-en/.nemik/css/JosefinSans-VariableFont_wght.ttf -------------------------------------------------------------------------------- /arch-memo-en/.nemik/css/Mulish-Italic-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darobin/eurosky-vision/main/arch-memo-en/.nemik/css/Mulish-Italic-VariableFont_wght.ttf -------------------------------------------------------------------------------- /arch-memo-en/.nemik/css/JosefinSans-Italic-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darobin/eurosky-vision/main/arch-memo-en/.nemik/css/JosefinSans-Italic-VariableFont_wght.ttf -------------------------------------------------------------------------------- /vision/nemik.config.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | export default async function (nemik) { 4 | nemik 5 | .warn(`Processing…`) 6 | .gdoc('gdoc-rb', '1u79M9wpetGQKQodk_HIUR9f1ImqbJa76KaEGERZAe2A', { save: 'eurosky-vision.json' }) 7 | .gdoc2html() 8 | // .bibliography() 9 | .theme('academic', { 10 | // cover: 'rhea.jpg', 11 | date: true, 12 | author: 'Robin Berjon', 13 | // appendices: ['Acknowledgements'], 14 | }) 15 | .pdf('eurosky-vision.pdf') 16 | .saveHTML({ to: 'eurosky-vision.html', pretty: true }) 17 | ; 18 | } 19 | -------------------------------------------------------------------------------- /arch-memo-en/nemik.config.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | export default async function (nemik) { 4 | nemik 5 | .warn(`Processing…`) 6 | .gdoc('gdoc-rb', '1T0X3x8XI-xbXKmRkWUEq7_NY0XPD2yexKWzpPJ4jRfA', { save: 'eurosky-design-sovereignty-en.json' }) 7 | .gdoc2html() 8 | // .bibliography() 9 | .theme('eurosky', { 10 | // cover: 'rhea.jpg', 11 | // date: true, 12 | // author: 'Robin Berjon', 13 | // appendices: ['Acknowledgements'], 14 | }) 15 | .lang('en') 16 | .pdf('eurosky-design-sovereignty-en.pdf') 17 | .saveHTML({ to: 'eurosky-design-sovereignty-en.html', pretty: true }) 18 | ; 19 | } 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # Snowpack dependency directory (https://snowpack.dev/) 45 | web_modules/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Optional stylelint cache 57 | .stylelintcache 58 | 59 | # Optional REPL history 60 | .node_repl_history 61 | 62 | # Output of 'npm pack' 63 | *.tgz 64 | 65 | # Yarn Integrity file 66 | .yarn-integrity 67 | 68 | # dotenv environment variable files 69 | .env 70 | .env.* 71 | !.env.example 72 | 73 | # parcel-bundler cache (https://parceljs.org/) 74 | .cache 75 | .parcel-cache 76 | 77 | # Next.js build output 78 | .next 79 | out 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and not Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # vuepress v2.x temp and cache directory 95 | .temp 96 | .cache 97 | 98 | # Sveltekit cache directory 99 | .svelte-kit/ 100 | 101 | # vitepress build output 102 | **/.vitepress/dist 103 | 104 | # vitepress cache directory 105 | **/.vitepress/cache 106 | 107 | # Docusaurus cache and generated files 108 | .docusaurus 109 | 110 | # Serverless directories 111 | .serverless/ 112 | 113 | # FuseBox cache 114 | .fusebox/ 115 | 116 | # DynamoDB Local files 117 | .dynamodb/ 118 | 119 | # Firebase cache directory 120 | .firebase/ 121 | 122 | # TernJS port file 123 | .tern-port 124 | 125 | # Stores VSCode versions used for testing VSCode extensions 126 | .vscode-test 127 | 128 | # yarn v3 129 | .pnp.* 130 | .yarn/* 131 | !.yarn/patches 132 | !.yarn/plugins 133 | !.yarn/releases 134 | !.yarn/sdks 135 | !.yarn/versions 136 | 137 | # Vite logs files 138 | vite.config.js.timestamp-* 139 | vite.config.ts.timestamp-* 140 | -------------------------------------------------------------------------------- /arch-memo-en/.nemik/css/sky.css: -------------------------------------------------------------------------------- 1 | 2 | @font-face { 3 | font-family: "Josefin Sans"; 4 | src: url("JosefinSans-VariableFont_wght.ttf"); 5 | font-style: normal; 6 | } 7 | @font-face { 8 | font-family: "Josefin Sans"; 9 | src: url("JosefinSans-Italic-VariableFont_wght.ttf"); 10 | font-style: italic; 11 | } 12 | @font-face { 13 | font-family: "Mulish"; 14 | src: url("Mulish-VariableFont_wght.ttf"); 15 | font-style: normal; 16 | } 17 | @font-face { 18 | font-family: "Mulish"; 19 | src: url("Mulish-Italic-VariableFont_wght.ttf"); 20 | font-style: italic; 21 | } 22 | 23 | :root { 24 | --page-width: 21cm; 25 | --brand-fam: 'Josefin Sans'; 26 | --header-fam: Mulish; 27 | --body-fam: Mulish; 28 | --highlight: #1A9BCC; 29 | --night-skies: linear-gradient(to bottom, #1B2847, #126CB4); 30 | --bright: #FAFF3B; 31 | } 32 | 33 | * { 34 | box-sizing: border-box; 35 | } 36 | html, body { 37 | margin: 0; 38 | padding: 0; 39 | font-size: 16px; 40 | font-family: var(--body-fam); 41 | } 42 | 43 | @page { 44 | size: A4; 45 | margin: 2cm; 46 | @bottom-left { 47 | height: 2cm; 48 | width: 21cm; 49 | background: url(../img/logo.png) no-repeat top 0.6cm left / 0.7cm 0.7cm; 50 | content: 'eurosky'; 51 | color: var(--highlight); 52 | font-family: var(--brand-fam); 53 | font-size: 24pt; 54 | font-weight: 100; 55 | padding-left: 0.7cm; 56 | } 57 | @bottom-right { 58 | content: counter(page); 59 | height: 2cm; 60 | text-align: center; 61 | width: 1cm; 62 | padding-top: 0; 63 | font-family: var(--brand-fam); 64 | } 65 | } 66 | 67 | @page :first { 68 | @top-left { 69 | height: 2cm; 70 | width: 21cm; 71 | margin-left: -2cm; 72 | background: 73 | url(../img/logo.png) no-repeat top 0.7cm left 0.5cm, 74 | var(--night-skies) 75 | ; 76 | content: 'eurosky'; 77 | color: #fff; 78 | font-family: var(--brand-fam); 79 | font-size: 36pt; 80 | font-weight: 100; 81 | padding-left: 2cm; 82 | padding-top: 0.5cm; 83 | } 84 | @bottom-left { 85 | content: ''; 86 | height: 0; 87 | } 88 | } 89 | 90 | strong { 91 | font-weight: bold; 92 | } 93 | header { 94 | margin-top: 1cm; 95 | } 96 | header p.title, header p.subtitle { 97 | font-family: var(--brand-fam); 98 | } 99 | h1, h2, h3, h4, h5, h6 { 100 | font-family: var(--header-fam); 101 | } 102 | header p.title { 103 | font-size: 42pt; 104 | font-weight: 200; 105 | margin: 0 0 0 -0.1cm; 106 | line-height: 1; 107 | } 108 | header p.subtitle { 109 | font-size: 1.6rem; 110 | font-weight: 300; 111 | color: #222; 112 | margin: 0; 113 | line-height: 1; 114 | } 115 | :is(h1, h2, h3, h4, h5, h6) + p { 116 | margin-top: 0; 117 | } 118 | h1 { 119 | margin: 4rem 0 0 0; 120 | line-height: 1.2; 121 | font-family: Josefin Sans; 122 | /*text-transform: lowercase;*/ 123 | font-size: 4rem; 124 | font-weight: 200; 125 | } 126 | h2 { 127 | font-size: inherit; 128 | margin: 0; 129 | } 130 | h3 { 131 | font-family: var(--brand-fam); 132 | margin-bottom: 0; 133 | font-weight: 400; 134 | } 135 | main { 136 | font-size: 11pt; 137 | columns: 2; 138 | column-gap: 0.8cm; 139 | column-fill: auto; 140 | } 141 | main p { 142 | margin-top: 0; 143 | text-align: justify; 144 | hyphens: auto; 145 | } 146 | 147 | /*img, video { 148 | max-width: 100%; 149 | } 150 | blockquote { 151 | clear: both; 152 | border-left: 0.5rem solid var(--highlight); 153 | margin-left: 0; 154 | padding-left: 1rem; 155 | font-style: italic; 156 | }*/ 157 | -------------------------------------------------------------------------------- /vision/css/academic.css: -------------------------------------------------------------------------------- 1 | 2 | @font-face { 3 | font-family: "Mulish"; 4 | src: url("Mulish-VariableFont_wght.ttf"); 5 | font-style: normal; 6 | } 7 | @font-face { 8 | font-family: "Mulish"; 9 | src: url("Mulish-Italic-VariableFont_wght.ttf"); 10 | font-style: italic; 11 | } 12 | @font-face { 13 | font-family: "Cormorant"; 14 | src: url("Cormorant-VariableFont_wght.ttf"); 15 | font-style: normal; 16 | } 17 | @font-face { 18 | font-family: "Cormorant"; 19 | src: url("Cormorant-Italic-VariableFont_wght.ttf"); 20 | font-style: italic; 21 | } 22 | 23 | :root { 24 | --page-width: 21cm; 25 | --header-fam: "Cormorant"; 26 | --logo-fam: "Cormorant"; 27 | --body-fam: "Mulish"; 28 | --line: 0; 29 | --mid-green: #4f9c5a; 30 | --bad-pink: #ae5395; 31 | --desat-pink: #efa1a6; 32 | --grey-teal: #729397; 33 | --yelly: #f4b32c; 34 | --too-red: #dc1b27; 35 | } 36 | 37 | * { 38 | box-sizing: border-box; 39 | } 40 | html, body { 41 | margin: 0; 42 | padding: 0; 43 | font-size: 16px; 44 | font-family: var(--body-fam); 45 | } 46 | 47 | header, nav, main, footer { 48 | max-width: var(--page-width); 49 | margin: auto; 50 | padding-left: 1rem; 51 | padding-right: 1rem; 52 | } 53 | header { 54 | padding-top: 12rem; 55 | padding-bottom: 2rem; 56 | } 57 | main { 58 | font-size: 1.1rem; 59 | font-weight: 300; 60 | line-height: 1.2; 61 | } 62 | a { 63 | color: inherit; 64 | text-decoration: underline; 65 | text-decoration-thickness: 3px; 66 | text-decoration-color: var(--highlight); 67 | transition: text-decoration-thickness .2s; 68 | } 69 | a:hover { 70 | text-decoration-thickness: 5px; 71 | } 72 | strong { 73 | font-weight: bold; 74 | } 75 | .title, .subtitle, h1, h2, h3, h4, h5, h6 { 76 | font-family: var(--header-fam); 77 | } 78 | .title { 79 | font-size: 4rem; 80 | font-weight: 700; 81 | margin: 0; 82 | padding: 0; 83 | line-height: 1.2; 84 | } 85 | .subtitle { 86 | font-size: 1.6rem; 87 | font-weight: 400; 88 | color: #222; 89 | margin: 0; 90 | padding: 0; 91 | line-height: 1; 92 | } 93 | :is(h1, h2, h3, h4, h5, h6) + p { 94 | margin-top: 0; 95 | } 96 | h1 { 97 | margin: 2rem 0 0 0; 98 | line-height: 1.2; 99 | } 100 | h2 { 101 | font-size: inherit; 102 | } 103 | /*.meta { 104 | font-size: 0.8rem; 105 | padding: 0; 106 | color: red; 107 | }*/ 108 | .author { 109 | text-align: left; 110 | } 111 | 112 | img.illustration { 113 | float: left; 114 | margin: 0 1rem 10px 0; 115 | } 116 | img, video { 117 | max-width: 100%; 118 | } 119 | .page { 120 | line-height: 1.3; 121 | } 122 | blockquote { 123 | clear: both; 124 | border-left: 0.5rem solid var(--highlight); 125 | margin-left: 0; 126 | padding-left: 1rem; 127 | font-style: italic; 128 | } 129 | dt { 130 | font-weight: bold; 131 | } 132 | 133 | /* Print */ 134 | @page { 135 | /* maybe move this to be with the text */ 136 | @top-left { 137 | background-image: url(../img/asterism.png); 138 | background-size: contain; 139 | background-position: top; 140 | background-repeat: no-repeat; 141 | content: ''; 142 | height: 1cm; 143 | width: 0.5cm; 144 | opacity: 0.4; 145 | } 146 | @top-right { 147 | content: string(heading); 148 | font-size: 9pt; 149 | font-family: var(--logo-fam); 150 | height: 1cm; 151 | vertical-align: top; 152 | width: 100%; 153 | } 154 | @bottom-right { 155 | content: counter(page); 156 | height: 1cm; 157 | text-align: center; 158 | width: 1cm; 159 | font-family: var(--logo-fam); 160 | } 161 | } 162 | @page :first { 163 | /* background-image: var(--cover); */ 164 | /* background-image: url(../../ernst-haeckel.png); */ 165 | background-repeat: no-repeat; 166 | background-position: center; 167 | background-size: cover; 168 | margin: 0; 169 | } 170 | @page :blank, @page nothing { 171 | @top-left { background: none; content: '' } 172 | @top-right { content: none } 173 | @bottom-right { content: none } 174 | } 175 | @page no-chapter { 176 | @top-left { background: none; content: none } 177 | @top-right { content: none } 178 | } 179 | @media print { 180 | header { 181 | height: 297mm; 182 | position: relative; 183 | margin: 1cm 1cm 0 1cm; 184 | page: nothing; 185 | } 186 | header p { 187 | background: #fff; 188 | padding: 5mm; 189 | text-align: left; 190 | text-indent: 0; 191 | } 192 | header .subtitle { 193 | /*margin-top: 1rem;*/ 194 | text-align: left; 195 | text-indent: 0; 196 | } 197 | header .meta { 198 | display: flex; 199 | flex-direction: column; 200 | /*align-items: end;*/ 201 | margin-top: 2rem; 202 | } 203 | header .meta div { 204 | font-family: var(--header-fam); 205 | /*margin-top: 1rem;*/ 206 | background: #fff; 207 | padding: 0; 208 | font-size: 1.6rem; 209 | font-weight: 400; 210 | color: #222; 211 | line-height: 1; 212 | width: fit-content; 213 | } 214 | h1 { 215 | break-before: always; 216 | string-set: heading content(); 217 | page: no-chapter; 218 | font-family: var(--logo-fam); 219 | font-weight: 300; 220 | font-size: 48pt; 221 | margin-bottom: 2em; 222 | line-height: 1; 223 | /*column-span: all;*/ 224 | } 225 | h2 { 226 | /*font-family: var(--logo-fam);*/ 227 | font-family: var(--body-fam); 228 | font-weight: 700; 229 | font-size: 14pt; 230 | margin: 1.6rem 0 0.4rem 0; 231 | line-height: 1.1; 232 | } 233 | .special-section h1 { 234 | margin-bottom: 1em; 235 | } 236 | #abstract { 237 | display: flex; 238 | flex-direction: column; 239 | justify-content: center; 240 | height: 297mm; 241 | break-before: always; 242 | break-after: always; 243 | page: no-chapter; 244 | font-style: italic; 245 | font-size: 10pt; 246 | } 247 | section { 248 | font-size: 11pt; 249 | } 250 | p { 251 | margin: 0; 252 | text-align: justify; 253 | } 254 | p:not(:first-of-type):not(.subtitle) { 255 | text-indent: 2em; 256 | } 257 | /* NOTE: this only does two levels */ 258 | section > h1 ~ p:last-child::after, 259 | section > h1 ~ section:last-child > p:last-child::after { 260 | content: "∎"; 261 | } 262 | /*main > section:not(.special-section) { 263 | columns: 2; 264 | column-gap: 0.8cm; 265 | column-fill: auto; 266 | }*/ 267 | a { 268 | text-decoration-thickness: 1px; 269 | text-decoration-color: #000; 270 | } 271 | ul { 272 | padding-left: 16pt; 273 | } 274 | } 275 | -------------------------------------------------------------------------------- /arch-memo-en/eurosky-design-sovereignty-en.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Designing for Sovereignty 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |

Designing for Sovereignty 16 |

17 |

How digital architectures can support democratic governance 18 |

19 |
20 |

This brief memorandum explains in non-technical terms why certain digital architectures align better with democratic governance and free markets than others. 21 |

22 |
23 |

When a digital system is hard to replace (e.g. because of network effects or two-sided markets), has a great diversity of societal uses, and sets the rules for how its users can use it then we consider it to be digital infrastructure. Just as with physical infrastructure, digital infrastructure holds power because it is a critical input to economic production and structures social activity. There are many kinds of digital infrastructure: social media, search, browsers, operating systems, cloud, advertising networks, productivity systems, app stores, secure chats, AI components, standards, digital payments, identity systems, and more. 24 |

25 |

Sovereignty is the ability to make and enforce rules in one’s own jurisdiction. When an infrastructure operator evades partly or fully jurisdictional oversight, the rules it sets to govern its users compete with and potentially supersede government-set laws. This happens for instance when businesses have to pay higher taxes to an app store than to the state, when social and search determine the rules of free speech and journalistic relevance, when ad networks decide who gets funded, when ride hailing companies determine labour rules. This is the problem of tech sovereignty. Without sovereignty, there is no democracy, no market, no self-determination. 26 |

27 |

Supporting innovation on captured infrastructure is a waste of money. Innovation can only rarely displace infrastructural power: an electric car will not remove a tollbooth on someone else’s road. The engine of the tech industry is not innovation, it is power. Nothing in digital technology makes sense, except in the light of power. In Silicon Valley, people don’t talk about research, they talk about moats, about how to use infrastructure to create power through choke-points. Talking about innovation is just a nice trick to keep the politicians out.

28 |

Whenever we bring innovation policy to a geopolitical power struggle, we lose. In order to win for European tech sovereignty, to give European companies the option to compete, to strengthen and promote our democratic society we need to deploy digital infrastructures that are architected to support democratic governance and sovereignty. 29 |

30 |

What does this mean for social media? 31 |

32 |

A core concern in digital architecture — just as in institution design — is determining who has authority over which action or information. To give an example: if Alice is reading a post from Bob on Twitter, she has to trust Twitter that they correctly authenticated Bob, that they verified Bob’s identity to some degree, and that they didn’t alter the content of Bob’s message. In this kind of architecture, Twitter is the authority that determines all of these aspects and more. 33 |

34 |

This creates authority monoliths: systems that are not just choke-holds over one area of responsibility but many, like identity, content, recommendation, advertising, speech rights, social graphs, appeals, or privacy. This creates systems that have extremely concentrated power because instead of having checks and balances between areas of responsibility they become mutually-reinforcing. 35 |

36 |

The Fediverse approach is to create smaller monoliths. The social system is separated into smaller instances, each of which has authority for its users but that are also connected so that messages can be seen between instances. This is an important step forward because it provides the option to exit an instance without exiting the network. However, it does introduce the challenge in picking the right instance, instances can fail (e.g. by running out of money or being operated by a small dictator), and if one monolith becomes larger than the others (e.g. if Google starts giving all Gmail users a free Fediverse account) then the network will lack the institutional capacity to resist it as the only balancing function is instance size. At the risk of scaring the computer people with technical jargon, given the complexity and power structure of social media, this kind of federation is insufficiently polycentric. 37 |

38 |

An alternative approach is to architect protocols around what is known technically as self-certifying data. Self-certifying data is data that has the ability to prove its own authenticity without resorting to an external authority. Anyone can verify that it is authentic. If Bob asks Eve to deliver a message to Alice, Alice can know with certainty that the message was indeed from Bob even if she doesn’t trust Eve at all. 39 |

40 |

Removing the reliance on central authority opens the door to creating a rich network of institutional arrangements that operate independently from one another, with a separation of powers and responsibilities, just as you would expect from a democratic system. Because the data is verifiable without an external authority, it becomes possible to have separate systems for identity or storing personal data. Recommendation feeds can come from completely arbitrary sources with assurance they aren’t lying about the content. And diverse moderation systems can coexist, grounded in the same trustworthy data rather than a single centre of control. This creates democratic affordances, checks and balances, and makes regulation both simpler and more enforceable, while reducing the need for it through the system’s increased self-governance — delivering a much better user experience. 41 |

42 |

Eurosky builds on AT (Authenticated Transfer) because this is the approach taken by the AT Protocol. It does not exist in opposition to the Fediverse approach (we know from experience how protocol wars are a waste of time), in fact the higher flexibility of self-certifying data protocols means that it is possible to support Fediverse-style governance and experience on top of the AT Protocol, while the reverse is not true. As it nears 40 million users, Bluesky has shown that it is possible to build highly attractive user experiences with this approach, and the new generation of social applications currently being developed on this open protocol shows how much more is possible. 43 |

44 |

All of these nice architectural properties cannot however be produced if we end up having only one operator running all of those different institutional components. That is why Eurosky is working to operate public social media infrastructure: to create guarantees that the AT network will remain open and operate in the public interest. 45 |

46 |
47 | 48 | 49 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /vision/eurosky-vision.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | EuroSky Vision 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |

EuroSky 16 |

17 |

Independent Social Media Infrastructure in Europe 18 |

19 |
20 |
Robin Berjon
21 |
2025-09-04
22 |
23 |
24 |
25 |
26 |

Any structural system that is hard to replace, has a great diversity of uses, and enables its operator to enforce rules on its users is infrastructure for the community that relies on it, and critical infrastructure if its misuse or failure can lead to serious disruptions. Due to its role in informing people, in providing traffic to media, and setting the political conversation, social media fits this description. 27 |

28 |

We can only have a thriving ecosystem of competing social media services, as well as security and resilience for the European information environment, if the social media infrastructure that we rely on operates in Europe and under European law. That is not the case. In the current geopolitical moment, as Europe faces significant threats from both east and west. 29 |

30 |

Eurosky has the technology, skills, and popular momentum to deliver such infrastructure quickly and reliably. This makes a European ecosystem of social web services possible that can deliver democracy, innovation, competitiveness, and societal resilience through pluralism, rooting European values in infrastructure that can also thrive globally. Most importantly, this future ecosystem is not merely theoretical; thanks to Bluesky it already has 38 million potential users and is growing fast. 31 |

32 |

This document details a plan for immediate action that can begin having an impact inside of 2025. 33 |

34 |
35 |
36 |

The World We Are Building 37 |

38 |

We are creating a new world. It isn’t built from whole cloth; most of the technology already exists and most of the governance methods are taken from non-digital systems. The resulting proposal, with its protocols, infrastructure, and institutional arrangements, can still feel abstract. To provide a clear understanding of this new digital world, we offer vignettes that illustrate how life works there. This isn’t a utopian vision — we are keenly aware that democracy is often messy and doesn’t magically fix our problems. But it is a much better world all the same. 39 |

40 |
41 |

A Data Privacy Scandal with Real Consequences 42 |

43 |

Vienna, 2029 44 |

45 |

In late 2029, a mid-sized Personal Data Server (PDS) provider — OneNode — was found to be secretly mining users’ private data for targeted advertising. In the old world of centralised platforms, this would have triggered media outrage, a generic CEO apology, and perhaps a minor fine from a regulator. But in the open, modular world enabled by Euroskys and the AT Protocol community, the response was very different. 46 |

47 |

Thanks to the collective covenant governing the Eurosky network, OneNode’s actions were a clear violation of agreed community norms and technical guarantees. After an independent review, the provider was temporarily suspended from the network. This meant it could no longer serve social content to it. 48 |

49 |

And yet — no users were locked out. Because PDS services are interoperable, affected users received a simple prompt: “Would you like to migrate to a new provider?” With a single click, they moved their content to a trusted alternative, with their identities and connections intact. 50 |

51 |

This event marked a turning point. Not only did it demonstrate the enforceability of social media governance beyond PR gestures, it proved that real accountability and user choice are possible—when the infrastructure is designed for it. 52 |

53 |
54 |
55 |

A new category of journalism 56 |

57 |

Today's dominant social media companies have complete control over the algorithms that sources information, determines its eligibility, and ranks its relevance. This concentration of power over our attention is incompatible with democratic values of pluralism, and has led to abuses of power. 58 |

59 |

In a future world in which decentralized social media platforms dominate, a multiplicity of feeds are available, sourced and ranked according to an endless combination of approaches. User-friendly services like Graze Social make feed creation easy for everyone. 60 |

61 |

A new kind of journalistic curation has grown up around that structural change in how we organize our information: curated feeds of quality journalism as a respected editorial function. This role is already emerging, for example in the work of Ændra Rininsland, a technologist currently with the FT and creator of the Verified News and Trending News feeds. 62 |

63 |
64 |
65 |

Advertising Governing Body Debates Privacy Change 66 |

67 |

Two-sided markets create tremendous power. Whoever gets to operate the marketplace itself is dealing with two captive audiences, both of which need to reach the other and neither of which can decide to leave on its own. That is how today’s advertising market is (predominantly) structured and, unsurprisingly, the parties in the middle are making use of that power. Neither buyers nor sellers have any visibility into what happens inside the marketplace, and we know from what has surfaced in court cases that the monopolies in charge manipulate auctions in their own interest. Companies lose billions a year to this arrangement all the while publishers see their work defunded. 68 |

69 |

The way forward is to have the marketplace operating under strict rules of fairness (of infrastructure neutrality), and the ideal approach to that is to have its stakeholders govern it. For open social media to adhere to its public interest mission, it will need to be sustainable, and advertising will have to be part of that equation. 70 |

71 |

The headline alludes to the fact that a governing body for adtech will have to make difficult decisions that balance the interests of publishers, advertisers, and people. However, such negotiated outcomes stand a very good chance of being better than anything we currently have. 72 |

73 |
74 |
75 |

European Search Index Cracks Down On Friends-For-Pay Scheme 76 |

77 |

We’re building on an existing open and interoperable social media protocol, where people’s social graphs can be explicitly used to rank search results based on the people they trust. 78 |

79 |

Back in the 90s, Google’s founders stumbled onto underexploited information: the web’s link graph. By ranking results based on the structure of the web’s links, they were able to produce a search engine with greater relevance than its competition. 80 |

81 |

The link graph, which underpins the world's dominant web search engine, has long been gameable by sites that interlink solely to increase their ranking. This has made interlinking information far less valuable. 82 |

83 |

The social graph that connects people has similar properties to those of the web’s link graph, and can also be used for relevance ranking. Indeed, information trusted by people you trust is likely to match what you would consider relevant. And, interestingly, this is much harder to game because people have limited incentives to undermine those they trust. 84 |

85 |

We’re building a world in which a search index — the part of search that takes crawled information and makes it (technically) easy to query and that can then be used for ranking and with a user interface — has been developed as shared public infrastructure augmented by social signals from users’ trusted networks. (See the Initiative for Neutral Search or the Staan API.) A powerful aspect of the approach we are taking to open infrastructure is that open infrastructural systems reinforce one another. 86 |

87 |
88 |
89 |

The Teletubbies Return! 90 |

91 |

The internet has been unkind to children in many ways. Children are easy targets of attentional techniques and require safe, curated spaces that are of little interest to incumbent monopolies as they are challenging to monetise with their preferred methods. 92 |

93 |

Understandably, this has led to a flurry of regulatory measures aimed at limiting children's access to online content. However, the internet was envisioned as a source of knowledge and wonder, and age-gating to keep children from the worst of what we have shouldn’t be the only solution: we need online spaces that are beneficial for children. 94 |

95 |

AT Proto supports composable moderation, which means that instead of relying on a single source of content moderation from a monopolistic platform, multiple sources can collaborate to moderate content. This makes it possible for any content to be age-labelled. Creating new feeds is open to all, such that curated child-directed content is possible — for instance, by public broadcasters or other parents. And because the protocol is open, anyone with some programming chops can create a child-directed product that builds upon of these capabilities and incorporates additional smart features such as limiting duration or engagement. 96 |

97 |

Our headline proudly announces that the hit children’s series Teletubbies is scheduled for a (second) reboot. The headline doesn’t mention that this happens through the BBC’s social media presence, with content labelled correctly and syndicated through a variety of child-friendly feeds — in this future, every parent knows that. 98 |

99 |
100 |
101 |

AT Mobile OS (ATMOS) Gains Ground In Mobile 102 |

103 |

Every time we load a web page, we are setting up a small, ephemeral application that we can interact with until we navigate away. This model has huge potential to offer a significantly better experience than we get from installed apps, especially now that AI agents can interact with multiple systems simultaneously without incurring excessive UI complexity. 104 |

105 |

This opens the door for people to use computers centered on tasks rather than applications. To offer an example, this is the difference between the task of choosing a picture from your collection, editing and inserting it into a document, versus the application-centric approach of going to your photo management app to select a picture, exporting it, opening it in your photo editor, exporting the result, and bringing that edited version into your document editor. 106 |

107 |

At present, the web’s security model is a poor fit to compose services together. The approach that ATproto has taken allows for small, single-purpose applets that are good at carrying out a single task—then composing them based on needs. 108 |

109 |

The headline is reporting on the gains made by ATMOS (AT Mobile OS), an imagined operating system built entirely atop this exact model. Such a system has the potential to break open app stores and liberate developers from the 15-30% tax that Apple and Google arbitrarily collect from them. The transition to that world can be gradual, starting with a social media app and eventually taking over the system. 110 |

111 |
112 |
113 |

Publishers Alliance Commits To Zero-Paywall During Elections 114 |

115 |

News media have long faced a difficult tension. Many people receive news from an aggregator that gives them access to multiple sources, but aggregator offerings such as Apple News, Google News, and Facebook News, rarely offer publishers good deals, lowering advertising revenue and decreasing subscription conversion rates. 116 |

117 |

To address this, in 2026, a group of enterprising publishers and technologists joined forces to launch Lede, a news aggregator built atop shared social media infrastructure and governed by and for participating publishers. On Lede, publishers rely on a shared advertising system that can support aggregated advertising deals, and offers a bundled subscription system paying publishers a prorated chunk based on what people read. This system respects people’s privacy, does not share hard-won audience data with third parties, and offers users real options to shape what personal information they share with publishers and advertisers. 118 |

119 |

Lede stories are published on ATProto and are natively social. They can be integrated into multiple formats in various social experiences. Search is built-in and exposed through the shared index, which facilitates SEO, and facilitates easy access to original content while restricting generative AI content on the same platform. 120 |

121 |

While the media may never return to its pre-Internet profitability, in this world journalism is funded and revenues are sustainable. 122 |

123 |

In our headline, the publisher multistakeholder group in charge of governing Lede and its infrastructure has reached an agreement to systematically offer unpaywalled articles during elections in all relevant jurisdictions — because they can afford to. 124 |

125 |
126 |
127 |

Internet Community Opens Bowling Alley 128 |

129 |

The ActivityPub protocol (that powers the Fediverse and partly Mastodon) is well suited for “human-sized” communities that have an existing but lesser connection to the wider world — something that many people find highly desirable but that isn’t offered by legacy social media companies. One great use case is social networking for a city or neighbourhood. ActivityPub and AT Proto complement each other well, and in fact, running the former on top of the latter makes for a powerful combo that enables just this sort of use case. 130 |

131 |
132 |
133 |

Youth Assembly Remains Torn Over Proposed Anti-Bullying Measures 134 |

135 |

Young people often understand the problems that the digital world creates for them much better than adults do. Despite this, they are rarely empowered to take an active part in the world that affects them. Instead, their lives are governed entirely by a tussle between Silicon Valley product directors and policymakers. 136 |

137 |

Our approach to social media makes it possible to establish governance for distinct spaces — which is to say that everything from what kinds of content can be posted to what type of content moderation is enforced can be decided by a given group. This offers the possibility of youth-governed social media platforms, accessible only to specific age ranges and governed by them. 138 |

139 |

In this headline, we imagine a world in which the governance of this system takes place through a democratic assembly of the youth network’s users. Establishing democratic self-governance doesn’t make hard problems disappear, but it does empower the affected parties to make difficult decisions for themselves and to learn democracy by doing democracy. 140 |

141 |
142 |
143 |

CSAM Prevention Struggles Persist; New Research Promising 144 |

145 |

Combating the sharing of Child Sexual Abuse Material (CSAM) is a persistent challenge for social media platforms. Platforms should have a moral obligation to protect victims, but often struggle to manage this duty: moderating CSAM content takes a toll on the people charged with stopping it and those who distribute it are often very practised at evading interception. CSAM also puts social media operators in legal jeopardy, which for small operators may be existential. 146 |

147 |

Rather than requiring every social media operator to reinvent CSAM prevention from scratch, an interoperable protocol makes it easier for platforms to pool resources to combat a shared problem. We are already working on a common infrastructure for precisely this purpose. 148 |

149 |

The headline reflects the fact that even with a better, shared system, some challenges will remain, but hints at the fact that shared, open research is our best bet to tackle them. 150 |

151 |
152 |
153 |

Emergency Social Messaging Gets Upgrade In Wake Of Floods 154 |

155 |

Disinformation is a problem at the best of times, but it is both particularly rampant and deadly during emergencies. People often use social media to coordinate during emergency situations, but this has increasingly come into conflict with the tendency of legacy platforms to downrank content that is useful in emergencies while amplifying sensational information that is deceptive or false. 156 |

157 |

ATProto offers potential improvements. First, every piece of content is authenticated (“AT” stands for “Authenticated Transfer”). This offers the possibility of distinguishing official messages and validated claims. Second, the ATProto’s labelling system ensures that official emergency management sources, relevant journalism, and citizen monitoring can be identified as trustworthy, even if people are unfamiliar with the names of the agencies and entities responsible for emergencies. Third, unrelated feeds and social apps can decide to make emergency messages more prominent (in fact, emergency messaging could be supported at the protocol level). And finally, because feeds can be manually curated, it is possible for trustworthy sources to create feeds to relay credible information being shared by people on the ground. Together, these components allow us to build a more reliable information environment during crises. 158 |

159 |

Our headline refers to a world in which these capabilities were not fully put to work during a tragic flooding event. As a result, ministries, emergency management agencies, technologists, and community-based organizations came together to establish better practices and capabilities.

160 |
161 |
162 |
163 |

Our Approach 164 |

165 |

We believe that social media should prioritize the needs of the people who use it, actively promote democracy, and support a thriving ecosystem of innovative businesses that are internationally competitive. We propose the following fundamental shifts in the design of our social media: 166 |

167 | 179 |
180 |
181 |

Deliverables 182 |

183 |
184 |

European AT Proto Infrastructure 185 |

186 |

We are working to operate social media infrastructure in Europe using AT Proto. Our goal is to ensure that social media in Europe cannot be disrupted at the whim of hostile foreign companies, to ensure social media operate accordingly with European laws, and to support emerging novel social products that can be built quickly and easily because they don’t need to reinvent core infrastructure. Just as unbundling telecommunications infrastructure sparked innovation, the unbundling of social platforms is creating space for new entrants. 187 |

188 |
    189 |
  • A Personal Data Server (PDS) is a system that stores a person’s data in a way that guarantees that they can always take it to another PDS without losing their identity or followers. We will establish a European PDS provider and a service to facilitate seamless transitions between PDS providers. 190 |
  • 191 |
  • A relay is a system that asks PDSs for the latest posts, likes, etc. that people have made and produces a firehose of events for that data, which can be consumed, for instance, by feed generators, content moderation systems, apps, etc. We will set up and operate a European relay. 192 |
  • 193 |
  • The PLC Directory is the primary system used for people to register their identity with AT Proto. There can be only one PLC Directory (to guarantee unique identifiers). We are working to ensure the PLC is independently and robustly governed as a global commons. 194 |
  • 195 |
  • An index makes the content of an AT network searchable, allowing people, posts, or other content to be easily found. We will work with a search partner (perhaps the European Search Perspective) to operate an index. 196 |
  • 197 |
198 |
199 |
200 |

Commons for Content Moderation 201 |

202 |

Europe urgently needs its own stack to preserve information integrity, built with public interest values and legal compliance in mind. To guarantee robust defense against manipulations and foreign interference, integrity standards need to be rooted in the design of the technology. We think of information trust and integrity as foundational design elements, not afterthoughts. 203 |

204 |

We are thus seeking to build a foundational component for the Eurostack: a Commons for Content Moderation (CoCoMo). 205 |

206 |

A CoCoMo will provide a shared moderation system for developers and startups interested in building applications on top of AT Proto, which will encode regulatory standards and simplify and reduce the cost of managing the moderation obligations of technology platforms. It will also ensure that moderation processes happen in accountable and sovereign infrastructures. This system makes it possible to deliver both regulation and innovation at the same time. 207 |

208 |

The CoCoMo will: 209 |

210 |
    211 |
  • Provide a modular and transparent moderation relay for decentralised platforms. 212 |
  • 213 |
214 |
    215 |
  • Feature label-based filtering, geo-specific content controls, audit logs, user appeals, and policy transparency. 216 |
  • 217 |
  • Support apps, app views, and smaller operators by design, without centralizing power. 218 |
  • 219 |
  • Be field-tested on Flashes, a European social media app that is pioneering new uses for AT Proto. 220 |
  • 221 |
222 |

This commons-based and interoperable approach is aligned with emerging trust and safety and moderation practices. It complements and builds upon projects such as those of our partners ROOST, a user safety initiative also joined by most current industry leaders, which was launched at the recent AI Action Summit in Paris. 223 |

224 |

Building a CoCoMo for Eurosky will both support the integrity of our information ecosystem, and support entrepreneurial opportunities in Europe. 225 |

226 |
227 |
228 |

Governance 229 |

230 |

Social media forms complex systems that require substantial governance at multiple levels. We do not propose to single-handedly govern the entire system, as that would just reproduce familiar dynamics of power concentration, but we can host, organise, and contribute. 231 |

232 |
    233 |
  • Keeping AT Proto open requires well-governed standards to ensure that it is interoperable and usable by all. We will either host the standards process or support standard setting, either in the community or in a formal organisation. 234 |
  • 235 |
  • We will develop an AT Covenant and the corresponding institutional structures to ensure that participants in the AT network are well-behaved, for instance, that PDSs aren’t used for data mining. 236 |
  • 237 |
  • We will help support the governance of AT open-source projects, notably working to ensure a strong feedback loop with the standards process, community involvement, and that developers are adequately funded. 238 |
  • 239 |
  • We will support integration between AT Proto and other protocols (specifically ActivityPub) to work in the direction of a universal standardised protocol that serves everyone. 240 |
  • 241 |
  • We will develop sustainability models for all components of the infrastructure to ensure that it is sustainable. 242 |
  • 243 |
244 |
245 |
246 |

Ecosystem 247 |

248 |

Infrastructure is successful when it supports a thriving ecosystem of downstream uses. 249 |

250 |
    251 |
  • We will support emerging novel social products and startups operating on this infrastructure. 252 |
  • 253 |
  • We will establish collaborations, for instance with the media, to grow interest and develop a healthy information environment. 254 |
  • 255 |
  • We will partner to develop feeds and ensure the durable pluralism of the platform. 256 |
  • 257 |
258 |
259 |
260 |

Conditionalities 261 |

262 |

On the assumption that this system will receive public funding, we are elaborating conditionalities to match. At a high level: 263 |

264 |
    265 |
  • High level of privacy protection. People remain in charge of their identity and data. No PDS or Relay can be used for profiling purposes. 266 |
  • 267 |
  • Public interest. The system will keep operating in the public interest, and it will not be possible to buy it. 268 |
  • 269 |
  • Healthy algorithms. To the extent that we develop feeds or recommendations (which may not happen), they will not involve toxic algorithms. 270 |
  • 271 |
  • Credible oversight involving, amongst others, civil society. 272 |
  • 273 |
  • Compliance with European law and respect for fundamental rights. We also endeavour to create as much subsidiarity as possible so that Member State laws can also apply in their own sphere. 274 |
  • 275 |
276 |
277 |
278 |
279 |

Beyond 280 |

281 |
282 |

AT Proto & ActivityPub 283 |

284 |

A common and important question is why we are focusing our efforts on AT Proto (that underlies Bluesky and a growing number of other systems) rather than ActivityPub (that underlies Mastodon). The short answer is: because AT Proto provides us with much greater flexibility in terms of the governance and institutions that we can build on top of it ensuring that we have a democratic, competitive, and capture-resistant social network infrastructure. It provides an unbundling of the social web, making it possible to establish good governance for social media infrastructure, in Europe, run by a European public interest foundation, following European laws, and utilising European cloud infrastructure. It is worth noting that it is possible to implement ActivityPub and the institutions that ActivityPub supports on top of AT Proto, but that the reverse is not true. 285 |

286 |

Both are open source. Both have (different) cost challenges when operated at scale. ActivityPub is a W3C standard (though note that Mastodon, by far the dominant actor in that space, is more accurately described as a proprietary system with partial ActivityPub compatibility). AT Proto is being discussed as a potential IETF workstream, although with no formal commitment at this time. The community is working on taking over the protocol specification. 287 |

288 |

The protocols have been bridged to one another successfully multiple times. 289 |

290 |

Ultimately, the kind of governance that ActivityPub is strong at (reasonably-sized communities) is highly valuable and desired by many users, even if it is limiting to have it as the primary structure, and our plan is to simply support ActivityPub atop AT infrastructure. 291 |

292 |
293 |
294 |

Relevant Organisations 295 |

296 |

Several overlapping organisations are relevant to this work in one way or another. Here is how they relate. 297 |

298 |
    299 |
  • The EuroStack project is a broad alliance of individuals and businesses in Europe that advocates for greater digital sovereignty across digital infrastructure (see notably the pitch, the support letter from businesses, and the European Way report). EuroSky is the social media component of the EuroStack. 300 |
  • 301 |
  • FreeOurFeeds is a campaign, led by some of the world’s top public-interest technologists, that aims to establish a social media infrastructure that is sustainably free from billionaire control. EuroSky is the European concretisation of this campaign. 302 |
  • 303 |
  • IndieSky is a collective of developers and technologists organising open-source and open-standards work around AT Proto to help guarantee the protocol's independence from Bluesky and to make it easy for people to deploy sovereign infrastructure anywhere in the world. EuroSky is collaborating directly with IndieSky 304 |
  • 305 |
  • Flashes is a European AT Proto application comparable to Instagram, and collaborates directly with EuroSky. 306 |
  • 307 |
  • Bluesky is an American startup in the social media space and the inventor of AT Proto. They operate one application on top of AT Proto. While they have expressed enthusiastic support for independent AT infrastructure, they are not involved in EuroSky nor have they been invited to be. 308 |
  • 309 |
310 |
311 |
312 |
313 | 314 | 315 | -------------------------------------------------------------------------------- /arch-memo-en/eurosky-design-sovereignty-en.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Designing for Sovereignty", 3 | "revisionId": "AD8KACQKrDKgp0s0Xm9PcOm_gMc768pVRgN4JV7QFTwdayJA-2ecgBTI8yobuyE4GZogGLvFF7yS6vXJp4cv-A", 4 | "suggestionsViewMode": "SUGGESTIONS_INLINE", 5 | "documentId": "1T0X3x8XI-xbXKmRkWUEq7_NY0XPD2yexKWzpPJ4jRfA", 6 | "tabs": [ 7 | { 8 | "tabProperties": { 9 | "tabId": "t.0", 10 | "title": "Tab 1", 11 | "index": 0 12 | }, 13 | "documentTab": { 14 | "body": { 15 | "content": [ 16 | { 17 | "endIndex": 1, 18 | "sectionBreak": { 19 | "sectionStyle": { 20 | "columnSeparatorStyle": "NONE", 21 | "contentDirection": "LEFT_TO_RIGHT", 22 | "sectionType": "CONTINUOUS" 23 | } 24 | } 25 | }, 26 | { 27 | "startIndex": 1, 28 | "endIndex": 27, 29 | "paragraph": { 30 | "elements": [ 31 | { 32 | "startIndex": 1, 33 | "endIndex": 27, 34 | "textRun": { 35 | "content": "Designing for Sovereignty\n", 36 | "textStyle": {} 37 | } 38 | } 39 | ], 40 | "paragraphStyle": { 41 | "headingId": "h.s6m4e4wvfbgq", 42 | "namedStyleType": "TITLE", 43 | "direction": "LEFT_TO_RIGHT" 44 | } 45 | } 46 | }, 47 | { 48 | "startIndex": 27, 49 | "endIndex": 87, 50 | "paragraph": { 51 | "elements": [ 52 | { 53 | "startIndex": 27, 54 | "endIndex": 87, 55 | "textRun": { 56 | "content": "How digital architectures can support democratic governance\n", 57 | "textStyle": {} 58 | } 59 | } 60 | ], 61 | "paragraphStyle": { 62 | "headingId": "h.d7humm5kjuf6", 63 | "namedStyleType": "SUBTITLE", 64 | "direction": "LEFT_TO_RIGHT" 65 | } 66 | } 67 | }, 68 | { 69 | "startIndex": 87, 70 | "endIndex": 245, 71 | "paragraph": { 72 | "elements": [ 73 | { 74 | "startIndex": 87, 75 | "endIndex": 245, 76 | "textRun": { 77 | "content": "This brief memorandum explains in non-technical terms why certain digital architectures align better with democratic governance and free markets than others.\n", 78 | "textStyle": { 79 | "italic": true 80 | } 81 | } 82 | } 83 | ], 84 | "paragraphStyle": { 85 | "namedStyleType": "NORMAL_TEXT", 86 | "direction": "LEFT_TO_RIGHT" 87 | } 88 | } 89 | }, 90 | { 91 | "startIndex": 245, 92 | "endIndex": 246, 93 | "paragraph": { 94 | "elements": [ 95 | { 96 | "startIndex": 245, 97 | "endIndex": 246, 98 | "textRun": { 99 | "content": "\n", 100 | "textStyle": {} 101 | } 102 | } 103 | ], 104 | "paragraphStyle": { 105 | "namedStyleType": "NORMAL_TEXT", 106 | "direction": "LEFT_TO_RIGHT" 107 | } 108 | } 109 | }, 110 | { 111 | "startIndex": 246, 112 | "endIndex": 888, 113 | "paragraph": { 114 | "elements": [ 115 | { 116 | "startIndex": 246, 117 | "endIndex": 457, 118 | "textRun": { 119 | "content": "When a digital system is hard to replace (e.g. because of network effects or two-sided markets), has a great diversity of societal uses, and sets the rules for how its users can use it then we consider it to be ", 120 | "textStyle": {} 121 | } 122 | }, 123 | { 124 | "startIndex": 457, 125 | "endIndex": 479, 126 | "textRun": { 127 | "content": "digital infrastructure", 128 | "textStyle": { 129 | "bold": true 130 | } 131 | } 132 | }, 133 | { 134 | "startIndex": 479, 135 | "endIndex": 650, 136 | "textRun": { 137 | "content": ". Just as with physical infrastructure, digital infrastructure holds power because it is a critical input to economic production and structures social activity. There are ", 138 | "textStyle": {} 139 | } 140 | }, 141 | { 142 | "startIndex": 650, 143 | "endIndex": 654, 144 | "textRun": { 145 | "content": "many", 146 | "textStyle": { 147 | "italic": true 148 | } 149 | } 150 | }, 151 | { 152 | "startIndex": 654, 153 | "endIndex": 888, 154 | "textRun": { 155 | "content": " kinds of digital infrastructure: social media, search, browsers, operating systems, cloud, advertising networks, productivity systems, app stores, secure chats, AI components, standards, digital payments, identity systems, and more.\n", 156 | "textStyle": {} 157 | } 158 | } 159 | ], 160 | "paragraphStyle": { 161 | "namedStyleType": "NORMAL_TEXT", 162 | "direction": "LEFT_TO_RIGHT" 163 | } 164 | } 165 | }, 166 | { 167 | "startIndex": 888, 168 | "endIndex": 1547, 169 | "paragraph": { 170 | "elements": [ 171 | { 172 | "startIndex": 888, 173 | "endIndex": 1451, 174 | "textRun": { 175 | "content": "Sovereignty is the ability to make and enforce rules in one’s own jurisdiction. When an infrastructure operator evades partly or fully jurisdictional oversight, the rules it sets to govern its users compete with and potentially supersede government-set laws. This happens for instance when businesses have to pay higher taxes to an app store than to the state, when social and search determine the rules of free speech and journalistic relevance, when ad networks decide who gets funded, when ride hailing companies determine labour rules. This is the problem of ", 176 | "textStyle": {} 177 | } 178 | }, 179 | { 180 | "startIndex": 1451, 181 | "endIndex": 1468, 182 | "textRun": { 183 | "content": "tech sovereignty.", 184 | "textStyle": { 185 | "bold": true 186 | } 187 | } 188 | }, 189 | { 190 | "startIndex": 1468, 191 | "endIndex": 1547, 192 | "textRun": { 193 | "content": " Without sovereignty, there is no democracy, no market, no self-determination.\n", 194 | "textStyle": {} 195 | } 196 | } 197 | ], 198 | "paragraphStyle": { 199 | "namedStyleType": "NORMAL_TEXT", 200 | "direction": "LEFT_TO_RIGHT" 201 | } 202 | } 203 | }, 204 | { 205 | "startIndex": 1547, 206 | "endIndex": 2102, 207 | "paragraph": { 208 | "elements": [ 209 | { 210 | "startIndex": 1547, 211 | "endIndex": 1744, 212 | "textRun": { 213 | "content": "Supporting innovation on captured infrastructure is a waste of money. Innovation can only rarely displace infrastructural power: an electric car will not remove a tollbooth on someone else’s road. ", 214 | "textStyle": {} 215 | } 216 | }, 217 | { 218 | "startIndex": 1744, 219 | "endIndex": 1806, 220 | "textRun": { 221 | "content": "The engine of the tech industry is not innovation, it is power", 222 | "textStyle": { 223 | "bold": true 224 | } 225 | } 226 | }, 227 | { 228 | "startIndex": 1806, 229 | "endIndex": 1924, 230 | "textRun": { 231 | "content": ". Nothing in digital technology makes sense, except in the light of power. In Silicon Valley, people don’t talk about ", 232 | "textStyle": {} 233 | } 234 | }, 235 | { 236 | "startIndex": 1924, 237 | "endIndex": 1938, 238 | "textRun": { 239 | "content": "research, they", 240 | "textStyle": {} 241 | } 242 | }, 243 | { 244 | "startIndex": 1938, 245 | "endIndex": 2101, 246 | "textRun": { 247 | "content": " talk about moats, about how to use infrastructure to create power through choke-points. Talking about innovation is just a nice trick to keep the politicians out.", 248 | "textStyle": {} 249 | } 250 | }, 251 | { 252 | "startIndex": 2101, 253 | "endIndex": 2102, 254 | "textRun": { 255 | "content": "\n", 256 | "textStyle": {} 257 | } 258 | } 259 | ], 260 | "paragraphStyle": { 261 | "namedStyleType": "NORMAL_TEXT", 262 | "direction": "LEFT_TO_RIGHT" 263 | } 264 | } 265 | }, 266 | { 267 | "startIndex": 2102, 268 | "endIndex": 2440, 269 | "paragraph": { 270 | "elements": [ 271 | { 272 | "startIndex": 2102, 273 | "endIndex": 2180, 274 | "textRun": { 275 | "content": "Whenever we bring innovation policy to a geopolitical power struggle, we lose.", 276 | "textStyle": { 277 | "bold": true 278 | } 279 | } 280 | }, 281 | { 282 | "startIndex": 2180, 283 | "endIndex": 2440, 284 | "textRun": { 285 | "content": " In order to win for European tech sovereignty, to give European companies the option to compete, to strengthen and promote our democratic society we need to deploy digital infrastructures that are architected to support democratic governance and sovereignty.\n", 286 | "textStyle": {} 287 | } 288 | } 289 | ], 290 | "paragraphStyle": { 291 | "namedStyleType": "NORMAL_TEXT", 292 | "direction": "LEFT_TO_RIGHT" 293 | } 294 | } 295 | }, 296 | { 297 | "startIndex": 2440, 298 | "endIndex": 2478, 299 | "paragraph": { 300 | "elements": [ 301 | { 302 | "startIndex": 2440, 303 | "endIndex": 2478, 304 | "textRun": { 305 | "content": "What does this mean for social media?\n", 306 | "textStyle": {} 307 | } 308 | } 309 | ], 310 | "paragraphStyle": { 311 | "headingId": "h.s1vsndg0dehd", 312 | "namedStyleType": "HEADING_3", 313 | "direction": "LEFT_TO_RIGHT" 314 | } 315 | } 316 | }, 317 | { 318 | "startIndex": 2478, 319 | "endIndex": 2959, 320 | "paragraph": { 321 | "elements": [ 322 | { 323 | "startIndex": 2478, 324 | "endIndex": 2574, 325 | "textRun": { 326 | "content": "A core concern in digital architecture — just as in institution design — is determining who has ", 327 | "textStyle": {} 328 | } 329 | }, 330 | { 331 | "startIndex": 2574, 332 | "endIndex": 2583, 333 | "textRun": { 334 | "content": "authority", 335 | "textStyle": { 336 | "bold": true 337 | } 338 | } 339 | }, 340 | { 341 | "startIndex": 2583, 342 | "endIndex": 2690, 343 | "textRun": { 344 | "content": " over which action or information. To give an example: if Alice is reading a post from Bob on Twitter, she ", 345 | "textStyle": {} 346 | } 347 | }, 348 | { 349 | "startIndex": 2690, 350 | "endIndex": 2693, 351 | "textRun": { 352 | "content": "has", 353 | "textStyle": { 354 | "italic": true 355 | } 356 | } 357 | }, 358 | { 359 | "startIndex": 2693, 360 | "endIndex": 2959, 361 | "textRun": { 362 | "content": " to trust Twitter that they correctly authenticated Bob, that they verified Bob’s identity to some degree, and that they didn’t alter the content of Bob’s message. In this kind of architecture, Twitter is the authority that determines all of these aspects and more.\n", 363 | "textStyle": {} 364 | } 365 | } 366 | ], 367 | "paragraphStyle": { 368 | "namedStyleType": "NORMAL_TEXT", 369 | "direction": "LEFT_TO_RIGHT" 370 | } 371 | } 372 | }, 373 | { 374 | "startIndex": 2959, 375 | "endIndex": 3349, 376 | "paragraph": { 377 | "elements": [ 378 | { 379 | "startIndex": 2959, 380 | "endIndex": 2972, 381 | "textRun": { 382 | "content": "This creates ", 383 | "textStyle": {} 384 | } 385 | }, 386 | { 387 | "startIndex": 2972, 388 | "endIndex": 2991, 389 | "textRun": { 390 | "content": "authority monoliths", 391 | "textStyle": { 392 | "bold": true 393 | } 394 | } 395 | }, 396 | { 397 | "startIndex": 2991, 398 | "endIndex": 3349, 399 | "textRun": { 400 | "content": ": systems that are not just choke-holds over one area of responsibility but many, like identity, content, recommendation, advertising, speech rights, social graphs, appeals, or privacy. This creates systems that have extremely concentrated power because instead of having checks and balances between areas of responsibility they become mutually-reinforcing.\n", 401 | "textStyle": {} 402 | } 403 | } 404 | ], 405 | "paragraphStyle": { 406 | "namedStyleType": "NORMAL_TEXT", 407 | "direction": "LEFT_TO_RIGHT" 408 | } 409 | } 410 | }, 411 | { 412 | "startIndex": 3349, 413 | "endIndex": 4270, 414 | "paragraph": { 415 | "elements": [ 416 | { 417 | "startIndex": 3349, 418 | "endIndex": 3403, 419 | "textRun": { 420 | "content": "The Fediverse approach is to create smaller monoliths.", 421 | "textStyle": { 422 | "bold": true 423 | } 424 | } 425 | }, 426 | { 427 | "startIndex": 3403, 428 | "endIndex": 4270, 429 | "textRun": { 430 | "content": " The social system is separated into smaller instances, each of which has authority for its users but that are also connected so that messages can be seen between instances. This is an important step forward because it provides the option to exit an instance without exiting the network. However, it does introduce the challenge in picking the right instance, instances can fail (e.g. by running out of money or being operated by a small dictator), and if one monolith becomes larger than the others (e.g. if Google starts giving all Gmail users a free Fediverse account) then the network will lack the institutional capacity to resist it as the only balancing function is instance size. At the risk of scaring the computer people with technical jargon, given the complexity and power structure of social media, this kind of federation is insufficiently polycentric.\n", 431 | "textStyle": {} 432 | } 433 | } 434 | ], 435 | "paragraphStyle": { 436 | "namedStyleType": "NORMAL_TEXT", 437 | "direction": "LEFT_TO_RIGHT" 438 | } 439 | } 440 | }, 441 | { 442 | "startIndex": 4270, 443 | "endIndex": 4694, 444 | "paragraph": { 445 | "elements": [ 446 | { 447 | "startIndex": 4270, 448 | "endIndex": 4356, 449 | "textRun": { 450 | "content": "An alternative approach is to architect protocols around what is known technically as ", 451 | "textStyle": {} 452 | } 453 | }, 454 | { 455 | "startIndex": 4356, 456 | "endIndex": 4376, 457 | "textRun": { 458 | "content": "self-certifying data", 459 | "textStyle": { 460 | "bold": true 461 | } 462 | } 463 | }, 464 | { 465 | "startIndex": 4376, 466 | "endIndex": 4694, 467 | "textRun": { 468 | "content": ". Self-certifying data is data that has the ability to prove its own authenticity without resorting to an external authority. Anyone can verify that it is authentic. If Bob asks Eve to deliver a message to Alice, Alice can know with certainty that the message was indeed from Bob even if she doesn’t trust Eve at all.\n", 469 | "textStyle": {} 470 | } 471 | } 472 | ], 473 | "paragraphStyle": { 474 | "namedStyleType": "NORMAL_TEXT", 475 | "direction": "LEFT_TO_RIGHT" 476 | } 477 | } 478 | }, 479 | { 480 | "startIndex": 4694, 481 | "endIndex": 5575, 482 | "paragraph": { 483 | "elements": [ 484 | { 485 | "startIndex": 4694, 486 | "endIndex": 4953, 487 | "textRun": { 488 | "content": "Removing the reliance on central authority opens the door to creating a rich network of institutional arrangements that operate independently from one another, with a separation of powers and responsibilities, just as you would expect from a democratic system", 489 | "textStyle": { 490 | "bold": true 491 | } 492 | } 493 | }, 494 | { 495 | "startIndex": 4953, 496 | "endIndex": 5546, 497 | "textRun": { 498 | "content": ". Because the data is verifiable without an external authority, it becomes possible to have separate systems for identity or storing personal data. Recommendation feeds can come from completely arbitrary sources with assurance they aren’t lying about the content. And diverse moderation systems can coexist, grounded in the same trustworthy data rather than a single centre of control. This creates democratic affordances, checks and balances, and makes regulation both simpler and more enforceable, while reducing the need for it through the system’s increased self-governance — delivering a ", 499 | "textStyle": {} 500 | } 501 | }, 502 | { 503 | "startIndex": 5546, 504 | "endIndex": 5550, 505 | "textRun": { 506 | "content": "much", 507 | "textStyle": { 508 | "italic": true 509 | } 510 | } 511 | }, 512 | { 513 | "startIndex": 5550, 514 | "endIndex": 5575, 515 | "textRun": { 516 | "content": " better user experience.\n", 517 | "textStyle": {} 518 | } 519 | } 520 | ], 521 | "paragraphStyle": { 522 | "namedStyleType": "NORMAL_TEXT", 523 | "direction": "LEFT_TO_RIGHT" 524 | } 525 | } 526 | }, 527 | { 528 | "startIndex": 5575, 529 | "endIndex": 6260, 530 | "paragraph": { 531 | "elements": [ 532 | { 533 | "startIndex": 5575, 534 | "endIndex": 5629, 535 | "textRun": { 536 | "content": "Eurosky builds on AT (Authenticated Transfer) because ", 537 | "textStyle": {} 538 | } 539 | }, 540 | { 541 | "startIndex": 5629, 542 | "endIndex": 5674, 543 | "textRun": { 544 | "content": "this is the approach taken by the AT Protocol", 545 | "textStyle": { 546 | "bold": true 547 | } 548 | } 549 | }, 550 | { 551 | "startIndex": 5674, 552 | "endIndex": 6260, 553 | "textRun": { 554 | "content": ". It does not exist in opposition to the Fediverse approach (we know from experience how protocol wars are a waste of time), in fact the higher flexibility of self-certifying data protocols means that it is possible to support Fediverse-style governance and experience on top of the AT Protocol, while the reverse is not true. As it nears 40 million users, Bluesky has shown that it is possible to build highly attractive user experiences with this approach, and the new generation of social applications currently being developed on this open protocol shows how much more is possible.\n", 555 | "textStyle": {} 556 | } 557 | } 558 | ], 559 | "paragraphStyle": { 560 | "namedStyleType": "NORMAL_TEXT", 561 | "direction": "LEFT_TO_RIGHT" 562 | } 563 | } 564 | }, 565 | { 566 | "startIndex": 6260, 567 | "endIndex": 6597, 568 | "paragraph": { 569 | "elements": [ 570 | { 571 | "startIndex": 6260, 572 | "endIndex": 6425, 573 | "textRun": { 574 | "content": "All of these nice architectural properties cannot however be produced if we end up having only one operator running all of those different institutional components. ", 575 | "textStyle": {} 576 | } 577 | }, 578 | { 579 | "startIndex": 6425, 580 | "endIndex": 6597, 581 | "textRun": { 582 | "content": "That is why Eurosky is working to operate public social media infrastructure: to create guarantees that the AT network will remain open and operate in the public interest.\n", 583 | "textStyle": { 584 | "bold": true 585 | } 586 | } 587 | } 588 | ], 589 | "paragraphStyle": { 590 | "namedStyleType": "NORMAL_TEXT", 591 | "direction": "LEFT_TO_RIGHT" 592 | } 593 | } 594 | } 595 | ] 596 | }, 597 | "documentStyle": { 598 | "background": { 599 | "color": {} 600 | }, 601 | "pageNumberStart": 1, 602 | "marginTop": { 603 | "magnitude": 72, 604 | "unit": "PT" 605 | }, 606 | "marginBottom": { 607 | "magnitude": 72, 608 | "unit": "PT" 609 | }, 610 | "marginRight": { 611 | "magnitude": 72, 612 | "unit": "PT" 613 | }, 614 | "marginLeft": { 615 | "magnitude": 72, 616 | "unit": "PT" 617 | }, 618 | "pageSize": { 619 | "height": { 620 | "magnitude": 841.8897637795277, 621 | "unit": "PT" 622 | }, 623 | "width": { 624 | "magnitude": 595.2755905511812, 625 | "unit": "PT" 626 | } 627 | }, 628 | "marginHeader": { 629 | "magnitude": 36, 630 | "unit": "PT" 631 | }, 632 | "marginFooter": { 633 | "magnitude": 36, 634 | "unit": "PT" 635 | }, 636 | "useCustomHeaderFooterMargins": true 637 | }, 638 | "namedStyles": { 639 | "styles": [ 640 | { 641 | "namedStyleType": "NORMAL_TEXT", 642 | "textStyle": { 643 | "bold": false, 644 | "italic": false, 645 | "underline": false, 646 | "strikethrough": false, 647 | "smallCaps": false, 648 | "backgroundColor": {}, 649 | "foregroundColor": { 650 | "color": { 651 | "rgbColor": {} 652 | } 653 | }, 654 | "fontSize": { 655 | "magnitude": 11, 656 | "unit": "PT" 657 | }, 658 | "weightedFontFamily": { 659 | "fontFamily": "Proxima Nova", 660 | "weight": 400 661 | }, 662 | "baselineOffset": "NONE" 663 | }, 664 | "paragraphStyle": { 665 | "namedStyleType": "NORMAL_TEXT", 666 | "alignment": "START", 667 | "lineSpacing": 115, 668 | "direction": "LEFT_TO_RIGHT", 669 | "spacingMode": "NEVER_COLLAPSE", 670 | "spaceAbove": { 671 | "unit": "PT" 672 | }, 673 | "spaceBelow": { 674 | "magnitude": 10, 675 | "unit": "PT" 676 | }, 677 | "borderBetween": { 678 | "color": {}, 679 | "width": { 680 | "unit": "PT" 681 | }, 682 | "padding": { 683 | "unit": "PT" 684 | }, 685 | "dashStyle": "SOLID" 686 | }, 687 | "borderTop": { 688 | "color": {}, 689 | "width": { 690 | "unit": "PT" 691 | }, 692 | "padding": { 693 | "unit": "PT" 694 | }, 695 | "dashStyle": "SOLID" 696 | }, 697 | "borderBottom": { 698 | "color": {}, 699 | "width": { 700 | "unit": "PT" 701 | }, 702 | "padding": { 703 | "unit": "PT" 704 | }, 705 | "dashStyle": "SOLID" 706 | }, 707 | "borderLeft": { 708 | "color": {}, 709 | "width": { 710 | "unit": "PT" 711 | }, 712 | "padding": { 713 | "unit": "PT" 714 | }, 715 | "dashStyle": "SOLID" 716 | }, 717 | "borderRight": { 718 | "color": {}, 719 | "width": { 720 | "unit": "PT" 721 | }, 722 | "padding": { 723 | "unit": "PT" 724 | }, 725 | "dashStyle": "SOLID" 726 | }, 727 | "indentFirstLine": { 728 | "unit": "PT" 729 | }, 730 | "indentStart": { 731 | "unit": "PT" 732 | }, 733 | "indentEnd": { 734 | "unit": "PT" 735 | }, 736 | "keepLinesTogether": false, 737 | "keepWithNext": false, 738 | "avoidWidowAndOrphan": true, 739 | "shading": { 740 | "backgroundColor": {} 741 | }, 742 | "pageBreakBefore": false 743 | } 744 | }, 745 | { 746 | "namedStyleType": "HEADING_1", 747 | "textStyle": { 748 | "fontSize": { 749 | "magnitude": 20, 750 | "unit": "PT" 751 | } 752 | }, 753 | "paragraphStyle": { 754 | "namedStyleType": "NORMAL_TEXT", 755 | "direction": "LEFT_TO_RIGHT", 756 | "spaceAbove": { 757 | "magnitude": 20, 758 | "unit": "PT" 759 | }, 760 | "spaceBelow": { 761 | "magnitude": 6, 762 | "unit": "PT" 763 | }, 764 | "keepLinesTogether": true, 765 | "keepWithNext": true, 766 | "pageBreakBefore": false 767 | } 768 | }, 769 | { 770 | "namedStyleType": "HEADING_2", 771 | "textStyle": { 772 | "fontSize": { 773 | "magnitude": 16, 774 | "unit": "PT" 775 | }, 776 | "weightedFontFamily": { 777 | "fontFamily": "Libre Franklin", 778 | "weight": 200 779 | } 780 | }, 781 | "paragraphStyle": { 782 | "headingId": "h.mmq68xjggp1n", 783 | "namedStyleType": "HEADING_2", 784 | "direction": "LEFT_TO_RIGHT", 785 | "spaceAbove": { 786 | "magnitude": 18, 787 | "unit": "PT" 788 | }, 789 | "spaceBelow": { 790 | "magnitude": 6, 791 | "unit": "PT" 792 | }, 793 | "keepLinesTogether": true, 794 | "keepWithNext": true 795 | } 796 | }, 797 | { 798 | "namedStyleType": "HEADING_3", 799 | "textStyle": { 800 | "foregroundColor": { 801 | "color": { 802 | "rgbColor": { 803 | "red": 0.2627451, 804 | "green": 0.2627451, 805 | "blue": 0.2627451 806 | } 807 | } 808 | }, 809 | "weightedFontFamily": { 810 | "fontFamily": "Libre Franklin", 811 | "weight": 600 812 | } 813 | }, 814 | "paragraphStyle": { 815 | "headingId": "h.j461uvsxu54v", 816 | "namedStyleType": "HEADING_3", 817 | "direction": "LEFT_TO_RIGHT", 818 | "spaceAbove": { 819 | "magnitude": 16, 820 | "unit": "PT" 821 | }, 822 | "spaceBelow": { 823 | "magnitude": 4, 824 | "unit": "PT" 825 | }, 826 | "keepLinesTogether": true, 827 | "keepWithNext": true 828 | } 829 | }, 830 | { 831 | "namedStyleType": "HEADING_4", 832 | "textStyle": { 833 | "foregroundColor": { 834 | "color": { 835 | "rgbColor": { 836 | "red": 0.4, 837 | "green": 0.4, 838 | "blue": 0.4 839 | } 840 | } 841 | }, 842 | "fontSize": { 843 | "magnitude": 12, 844 | "unit": "PT" 845 | } 846 | }, 847 | "paragraphStyle": { 848 | "namedStyleType": "NORMAL_TEXT", 849 | "direction": "LEFT_TO_RIGHT", 850 | "spaceAbove": { 851 | "magnitude": 14, 852 | "unit": "PT" 853 | }, 854 | "spaceBelow": { 855 | "magnitude": 4, 856 | "unit": "PT" 857 | }, 858 | "keepLinesTogether": true, 859 | "keepWithNext": true, 860 | "pageBreakBefore": false 861 | } 862 | }, 863 | { 864 | "namedStyleType": "HEADING_5", 865 | "textStyle": { 866 | "foregroundColor": { 867 | "color": { 868 | "rgbColor": { 869 | "red": 0.4, 870 | "green": 0.4, 871 | "blue": 0.4 872 | } 873 | } 874 | }, 875 | "fontSize": { 876 | "magnitude": 11, 877 | "unit": "PT" 878 | } 879 | }, 880 | "paragraphStyle": { 881 | "namedStyleType": "NORMAL_TEXT", 882 | "direction": "LEFT_TO_RIGHT", 883 | "spaceAbove": { 884 | "magnitude": 12, 885 | "unit": "PT" 886 | }, 887 | "spaceBelow": { 888 | "magnitude": 4, 889 | "unit": "PT" 890 | }, 891 | "keepLinesTogether": true, 892 | "keepWithNext": true, 893 | "pageBreakBefore": false 894 | } 895 | }, 896 | { 897 | "namedStyleType": "HEADING_6", 898 | "textStyle": { 899 | "italic": true, 900 | "foregroundColor": { 901 | "color": { 902 | "rgbColor": { 903 | "red": 0.4, 904 | "green": 0.4, 905 | "blue": 0.4 906 | } 907 | } 908 | }, 909 | "fontSize": { 910 | "magnitude": 11, 911 | "unit": "PT" 912 | } 913 | }, 914 | "paragraphStyle": { 915 | "namedStyleType": "NORMAL_TEXT", 916 | "direction": "LEFT_TO_RIGHT", 917 | "spaceAbove": { 918 | "magnitude": 12, 919 | "unit": "PT" 920 | }, 921 | "spaceBelow": { 922 | "magnitude": 4, 923 | "unit": "PT" 924 | }, 925 | "keepLinesTogether": true, 926 | "keepWithNext": true, 927 | "pageBreakBefore": false 928 | } 929 | }, 930 | { 931 | "namedStyleType": "TITLE", 932 | "textStyle": { 933 | "fontSize": { 934 | "magnitude": 26, 935 | "unit": "PT" 936 | }, 937 | "weightedFontFamily": { 938 | "fontFamily": "Libre Franklin", 939 | "weight": 200 940 | } 941 | }, 942 | "paragraphStyle": { 943 | "headingId": "h.qn6wqvd6l1st", 944 | "namedStyleType": "TITLE", 945 | "direction": "LEFT_TO_RIGHT", 946 | "spaceBelow": { 947 | "magnitude": 3, 948 | "unit": "PT" 949 | }, 950 | "keepLinesTogether": true, 951 | "keepWithNext": true 952 | } 953 | }, 954 | { 955 | "namedStyleType": "SUBTITLE", 956 | "textStyle": { 957 | "foregroundColor": { 958 | "color": { 959 | "rgbColor": { 960 | "red": 0.4, 961 | "green": 0.4, 962 | "blue": 0.4 963 | } 964 | } 965 | }, 966 | "fontSize": { 967 | "magnitude": 15, 968 | "unit": "PT" 969 | } 970 | }, 971 | "paragraphStyle": { 972 | "headingId": "h.p164h467bxwt", 973 | "namedStyleType": "SUBTITLE", 974 | "direction": "LEFT_TO_RIGHT", 975 | "spaceBelow": { 976 | "magnitude": 16, 977 | "unit": "PT" 978 | }, 979 | "keepLinesTogether": true, 980 | "keepWithNext": true 981 | } 982 | } 983 | ] 984 | }, 985 | "lists": { 986 | "kix.d6mv1gqudstd": { 987 | "listProperties": { 988 | "nestingLevels": [ 989 | { 990 | "bulletAlignment": "START", 991 | "glyphSymbol": "-", 992 | "glyphFormat": "%0", 993 | "indentFirstLine": { 994 | "magnitude": 18, 995 | "unit": "PT" 996 | }, 997 | "indentStart": { 998 | "magnitude": 36, 999 | "unit": "PT" 1000 | }, 1001 | "textStyle": { 1002 | "underline": false 1003 | }, 1004 | "startNumber": 1 1005 | }, 1006 | { 1007 | "bulletAlignment": "START", 1008 | "glyphSymbol": "-", 1009 | "glyphFormat": "%1", 1010 | "indentFirstLine": { 1011 | "magnitude": 54, 1012 | "unit": "PT" 1013 | }, 1014 | "indentStart": { 1015 | "magnitude": 72, 1016 | "unit": "PT" 1017 | }, 1018 | "textStyle": { 1019 | "underline": false 1020 | }, 1021 | "startNumber": 1 1022 | }, 1023 | { 1024 | "bulletAlignment": "START", 1025 | "glyphSymbol": "-", 1026 | "glyphFormat": "%2", 1027 | "indentFirstLine": { 1028 | "magnitude": 90, 1029 | "unit": "PT" 1030 | }, 1031 | "indentStart": { 1032 | "magnitude": 108, 1033 | "unit": "PT" 1034 | }, 1035 | "textStyle": { 1036 | "underline": false 1037 | }, 1038 | "startNumber": 1 1039 | }, 1040 | { 1041 | "bulletAlignment": "START", 1042 | "glyphSymbol": "-", 1043 | "glyphFormat": "%3", 1044 | "indentFirstLine": { 1045 | "magnitude": 126, 1046 | "unit": "PT" 1047 | }, 1048 | "indentStart": { 1049 | "magnitude": 144, 1050 | "unit": "PT" 1051 | }, 1052 | "textStyle": { 1053 | "underline": false 1054 | }, 1055 | "startNumber": 1 1056 | }, 1057 | { 1058 | "bulletAlignment": "START", 1059 | "glyphSymbol": "-", 1060 | "glyphFormat": "%4", 1061 | "indentFirstLine": { 1062 | "magnitude": 162, 1063 | "unit": "PT" 1064 | }, 1065 | "indentStart": { 1066 | "magnitude": 180, 1067 | "unit": "PT" 1068 | }, 1069 | "textStyle": { 1070 | "underline": false 1071 | }, 1072 | "startNumber": 1 1073 | }, 1074 | { 1075 | "bulletAlignment": "START", 1076 | "glyphSymbol": "-", 1077 | "glyphFormat": "%5", 1078 | "indentFirstLine": { 1079 | "magnitude": 198, 1080 | "unit": "PT" 1081 | }, 1082 | "indentStart": { 1083 | "magnitude": 216, 1084 | "unit": "PT" 1085 | }, 1086 | "textStyle": { 1087 | "underline": false 1088 | }, 1089 | "startNumber": 1 1090 | }, 1091 | { 1092 | "bulletAlignment": "START", 1093 | "glyphSymbol": "-", 1094 | "glyphFormat": "%6", 1095 | "indentFirstLine": { 1096 | "magnitude": 234, 1097 | "unit": "PT" 1098 | }, 1099 | "indentStart": { 1100 | "magnitude": 252, 1101 | "unit": "PT" 1102 | }, 1103 | "textStyle": { 1104 | "underline": false 1105 | }, 1106 | "startNumber": 1 1107 | }, 1108 | { 1109 | "bulletAlignment": "START", 1110 | "glyphSymbol": "-", 1111 | "glyphFormat": "%7", 1112 | "indentFirstLine": { 1113 | "magnitude": 270, 1114 | "unit": "PT" 1115 | }, 1116 | "indentStart": { 1117 | "magnitude": 288, 1118 | "unit": "PT" 1119 | }, 1120 | "textStyle": { 1121 | "underline": false 1122 | }, 1123 | "startNumber": 1 1124 | }, 1125 | { 1126 | "bulletAlignment": "START", 1127 | "glyphSymbol": "-", 1128 | "glyphFormat": "%8", 1129 | "indentFirstLine": { 1130 | "magnitude": 306, 1131 | "unit": "PT" 1132 | }, 1133 | "indentStart": { 1134 | "magnitude": 324, 1135 | "unit": "PT" 1136 | }, 1137 | "textStyle": { 1138 | "underline": false 1139 | }, 1140 | "startNumber": 1 1141 | } 1142 | ] 1143 | } 1144 | }, 1145 | "kix.dcu70cmusp3i": { 1146 | "listProperties": { 1147 | "nestingLevels": [ 1148 | { 1149 | "bulletAlignment": "START", 1150 | "glyphType": "GLYPH_TYPE_UNSPECIFIED", 1151 | "indentFirstLine": { 1152 | "magnitude": 18, 1153 | "unit": "PT" 1154 | }, 1155 | "indentStart": { 1156 | "magnitude": 36, 1157 | "unit": "PT" 1158 | }, 1159 | "textStyle": { 1160 | "underline": false 1161 | }, 1162 | "startNumber": 1 1163 | }, 1164 | { 1165 | "bulletAlignment": "START", 1166 | "glyphType": "GLYPH_TYPE_UNSPECIFIED", 1167 | "indentFirstLine": { 1168 | "magnitude": 54, 1169 | "unit": "PT" 1170 | }, 1171 | "indentStart": { 1172 | "magnitude": 72, 1173 | "unit": "PT" 1174 | }, 1175 | "textStyle": { 1176 | "underline": false 1177 | }, 1178 | "startNumber": 1 1179 | }, 1180 | { 1181 | "bulletAlignment": "START", 1182 | "glyphType": "GLYPH_TYPE_UNSPECIFIED", 1183 | "indentFirstLine": { 1184 | "magnitude": 90, 1185 | "unit": "PT" 1186 | }, 1187 | "indentStart": { 1188 | "magnitude": 108, 1189 | "unit": "PT" 1190 | }, 1191 | "textStyle": { 1192 | "underline": false 1193 | }, 1194 | "startNumber": 1 1195 | }, 1196 | { 1197 | "bulletAlignment": "START", 1198 | "glyphType": "GLYPH_TYPE_UNSPECIFIED", 1199 | "indentFirstLine": { 1200 | "magnitude": 126, 1201 | "unit": "PT" 1202 | }, 1203 | "indentStart": { 1204 | "magnitude": 144, 1205 | "unit": "PT" 1206 | }, 1207 | "textStyle": { 1208 | "underline": false 1209 | }, 1210 | "startNumber": 1 1211 | }, 1212 | { 1213 | "bulletAlignment": "START", 1214 | "glyphType": "GLYPH_TYPE_UNSPECIFIED", 1215 | "indentFirstLine": { 1216 | "magnitude": 162, 1217 | "unit": "PT" 1218 | }, 1219 | "indentStart": { 1220 | "magnitude": 180, 1221 | "unit": "PT" 1222 | }, 1223 | "textStyle": { 1224 | "underline": false 1225 | }, 1226 | "startNumber": 1 1227 | }, 1228 | { 1229 | "bulletAlignment": "START", 1230 | "glyphType": "GLYPH_TYPE_UNSPECIFIED", 1231 | "indentFirstLine": { 1232 | "magnitude": 198, 1233 | "unit": "PT" 1234 | }, 1235 | "indentStart": { 1236 | "magnitude": 216, 1237 | "unit": "PT" 1238 | }, 1239 | "textStyle": { 1240 | "underline": false 1241 | }, 1242 | "startNumber": 1 1243 | }, 1244 | { 1245 | "bulletAlignment": "START", 1246 | "glyphType": "GLYPH_TYPE_UNSPECIFIED", 1247 | "indentFirstLine": { 1248 | "magnitude": 234, 1249 | "unit": "PT" 1250 | }, 1251 | "indentStart": { 1252 | "magnitude": 252, 1253 | "unit": "PT" 1254 | }, 1255 | "textStyle": { 1256 | "underline": false 1257 | }, 1258 | "startNumber": 1 1259 | }, 1260 | { 1261 | "bulletAlignment": "START", 1262 | "glyphType": "GLYPH_TYPE_UNSPECIFIED", 1263 | "indentFirstLine": { 1264 | "magnitude": 270, 1265 | "unit": "PT" 1266 | }, 1267 | "indentStart": { 1268 | "magnitude": 288, 1269 | "unit": "PT" 1270 | }, 1271 | "textStyle": { 1272 | "underline": false 1273 | }, 1274 | "startNumber": 1 1275 | }, 1276 | { 1277 | "bulletAlignment": "START", 1278 | "glyphType": "GLYPH_TYPE_UNSPECIFIED", 1279 | "indentFirstLine": { 1280 | "magnitude": 306, 1281 | "unit": "PT" 1282 | }, 1283 | "indentStart": { 1284 | "magnitude": 324, 1285 | "unit": "PT" 1286 | }, 1287 | "textStyle": { 1288 | "underline": false 1289 | }, 1290 | "startNumber": 1 1291 | } 1292 | ] 1293 | } 1294 | } 1295 | } 1296 | } 1297 | } 1298 | ] 1299 | } --------------------------------------------------------------------------------