-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstory.html
More file actions
537 lines (533 loc) · 20.8 KB
/
Copy pathstory.html
File metadata and controls
537 lines (533 loc) · 20.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
<!doctype html>
<html lang="de-CH">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Die Geschichte von Keera</title>
<meta
name="description"
content="Ein Comic in vier Akten: Keera folgt den Daten bis in eine Halle ohne Adresse und baut das Tor, das ihr dort gefehlt hat."
/>
<link rel="canonical" href="https://keera.ch/story.html" />
<link rel="alternate" hreflang="de" href="https://keera.ch/story.html" />
<link rel="alternate" hreflang="fr" href="https://keera.ch/fr/story.html" />
<link rel="alternate" hreflang="en" href="https://keera.ch/en/story.html" />
<link
rel="alternate"
hreflang="x-default"
href="https://keera.ch/story.html"
/>
<!-- The LCP element. This host only speaks HTTP/1.1, so the six connections a
browser will open are the whole budget and whatever is asked for first
gets one first: discovered down in the body, the hero art waited on the
fonts and the stylesheet ahead of it. Named here, before them, it claims
a connection as soon as the head is parsed. -->
<link
rel="preload"
href="assets/img/keera-story-cast-keera.webp"
as="image"
fetchpriority="high"
/>
<link
rel="preload"
href="assets/fonts/space-grotesk-latin.woff2"
as="font"
type="font/woff2"
crossorigin
/>
<link
rel="preload"
href="assets/fonts/jetbrains-mono-latin.woff2"
as="font"
type="font/woff2"
crossorigin
/>
<link rel="stylesheet" href="assets/css/keera.css" />
<link rel="icon" type="image/svg+xml" href="assets/img/keera-favicon.svg" />
<link
rel="alternate icon"
type="image/png"
href="assets/img/keera-apple-touch-icon.png"
/>
<link rel="apple-touch-icon" href="assets/img/keera-apple-touch-icon.png" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Keera" />
<meta property="og:locale" content="de_CH" />
<meta property="og:url" content="https://keera.ch/story.html" />
<meta property="og:title" content="Die Geschichte von Keera" />
<meta
property="og:description"
content="Ein Comic in vier Akten: Keera folgt den Daten bis in eine Halle ohne Adresse und baut das Tor, das ihr dort gefehlt hat."
/>
<meta
property="og:image"
content="https://keera.ch/assets/img/keera-og-story.jpg"
/>
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta
property="og:image:alt"
content="Keera, Cache und Omnivor, die drei Figuren des Comics"
/>
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Die Geschichte von Keera" />
<meta
name="twitter:description"
content="Ein Comic in vier Akten: Keera folgt den Daten bis in eine Halle ohne Adresse und baut das Tor, das ihr dort gefehlt hat."
/>
<meta
name="twitter:image"
content="https://keera.ch/assets/img/keera-og-story.jpg"
/>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Startseite",
"item": "https://keera.ch/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Die Geschichte",
"item": "https://keera.ch/story.html"
}
]
}
]
}
</script>
<!-- Google tag (gtag.js) -->
<script src="assets/js/google-tag.js" defer></script>
</head>
<body>
<a class="skip-link" href="#main">Zum Inhalt springen</a>
<header class="site-header">
<div class="wrap">
<a class="brand" href="./"
><img
src="assets/img/keera-favicon.svg"
width="24"
height="24"
alt=""
aria-hidden="true"
/><span>Keera</span></a
>
<span class="lang"
><span aria-current="true">DE</span><span aria-hidden="true">/</span
><a
href="fr/story.html"
lang="fr"
hreflang="fr"
title="Cette page en français"
>FR</a
><span aria-hidden="true">/</span
><a
href="en/story.html"
lang="en"
hreflang="en"
title="This page in English"
>EN</a
></span
>
<input class="site-menu-state" type="checkbox" id="site-menu" />
<label class="site-menu-toggle" for="site-menu"
><span class="site-menu-bars" aria-hidden="true"></span
><span class="site-menu-text">Menü</span></label
>
<nav class="site-nav" aria-label="Hauptnavigation">
<a href="gateway.html">Keera Gateway</a
><a href="code.html">Keera Code</a
><a href="sovereignty.html">Souveränität</a
><a href="sustainability.html">Nachhaltigkeit</a
><a href="story.html" aria-current="page">Die Geschichte</a>
</nav>
</div>
</header>
<main id="main" tabindex="-1">
<section class="hero">
<div class="wrap">
<div class="prose">
<p class="eyebrow">Die Geschichte · Vier Akte, 24 Bilder</p>
<h1>
Keera fängt nicht als Heldin an. Sie fängt als Zuschauerin an.
</h1>
<p class="lede">
Wie Keera in einem Serverraum anfängt - ohne Befugnisse und ohne
Publikum -, den Daten bis in eine Halle ohne Adresse folgt und mit
genau dem zurückkommt, was ihr dort gefehlt hat.
</p>
<p class="note">
Den Konzern Omnivor gibt es nicht. Die Klauseln und die
Rechenzentren, aus denen wir ihn gebaut haben, schon.
</p>
</div>
</div>
</section>
<section class="band">
<div class="wrap">
<div class="prose">
<h2>Die Besetzung</h2>
</div>
<div class="cast">
<div>
<img
src="assets/img/keera-story-cast-keera.webp"
width="760"
height="760"
alt="Keera"
loading="lazy"
decoding="async"
/>
<p class="eyebrow">Die Heldin</p>
<h3>Keera</h3>
<p>
Hartnäckig und geduldig. Sie folgt einem Kabel bis zum Ende und
kommt mit einer Liste zurück.
</p>
</div>
<div>
<img
src="assets/img/keera-story-cast-cache.webp"
width="760"
height="760"
alt="Cache"
loading="lazy"
decoding="async"
/>
<p class="eyebrow">Der Sidekick</p>
<h3>Cache</h3>
<p>
Ein Kater aus dem Serverraum. Er starrt an, was sonst niemand
bemerkt. Es schaut nur lange niemand hin.
</p>
</div>
<div>
<img
src="assets/img/keera-story-cast-omnivor.webp"
width="760"
height="760"
alt="Omnivor"
loading="lazy"
decoding="async"
/>
<p class="eyebrow">Der Gegner</p>
<h3>Omnivor</h3>
<p>
Ein Konzern ohne Adresse. Er stiehlt nie - er nimmt, was niemand
ihm ausdrücklich verboten hat.
</p>
</div>
</div>
</div>
</section>
<section class="act">
<div class="wrap">
<div class="act-intro">
<p class="eyebrow">Akt I - Das Geschenk</p>
<h2>Keera sieht es zuerst und kann nichts tun</h2>
<p>
Eine Übernahme fängt nicht mit einer Drohung an. Sie fängt mit
einem Werkzeug an, das nichts kostet und funktioniert.
</p>
</div>
<figure class="comic">
<img
src="assets/img/keera-story-de-page-1.webp"
width="1024"
height="1536"
alt="Comicseite 1, Bilder 01 bis 05: der kleine Serverraum mit Cache auf dem warmen Rack, das müde Team nebenan, Omnivors Gratis-Plugin über seinem Turm, der grüne Testlauf und Cache, der das Kabel in der Wand anstarrt."
loading="lazy"
decoding="async"
/>
<figcaption>
<details>
<summary>Seite 1 als Text, Bilder 01-05</summary>
<ol class="script" start="1">
<li>
Ein kleiner Serverraum in einer kleinen Stadt. Hier wohnt
Keera, noch neu und noch klein. Auf dem wärmsten Rack
schläft Cache.
</li>
<li>
Nebenan ist Dienstagmorgen: vier Repos, Deadline am Freitag,
zwei Leute krank. Keera könnte helfen. Nur kennt sie hier
niemand.
</li>
<li>
Dann kommt Omnivor. Kein Angriff, ein Geschenk: ein Plugin,
ein Klick, null Franken.
</li>
<li>
Und es funktioniert. Der Test, für den drei Sprints keine
Zeit war, schreibt sich in elf Sekunden. Keera schaut von
der Seite zu.
</li>
<li>
Cache starrt die Wand an. Dahinter führt ein Kabel aus jeder
Tastatur hinaus - mit dem Code, den Kommentaren und einem
echten Kundennamen im Test. Jemand kratzt ihn hinter den
Ohren. Nur Keera folgt seinem Blick.
</li>
</ol>
</details>
</figcaption>
</figure>
</div>
</section>
<section class="act">
<div class="wrap">
<div class="act-intro">
<p class="eyebrow">Akt II - Die stille Invasion</p>
<h2>Also folgt sie den Daten</h2>
<p>
Omnivor muss keine Grenze überschreiten. Ein Häkchen bei den AGB
genügt.
</p>
</div>
<figure class="comic">
<img
src="assets/img/keera-story-de-page-2.webp"
width="1122"
height="1402"
alt="Comicseite 2, Bilder 06 bis 12: Keera und Cache im Datenstrom, Seite 40 der AGB, der Flug über den Ozean, die fensterlose Halle mit dem Schweizerkreuz in einem Rack, Omnivors Webformular, die umgefärbte Landkarte und die Rechnung mit dem verdreifachten Preis."
loading="lazy"
decoding="async"
/>
<figcaption>
<details>
<summary>Seite 2 als Text, Bilder 06-12</summary>
<ol class="script" start="6">
<li>
Keera steigt in den Datenstrom. Cache kommt mit, empört, auf
ihrer Schulter.
</li>
<li>
Unterwegs liest sie die AGB. Seite 40, ein Halbsatz über die
«Verbesserung der Dienste». Das heisst: Wir behalten alles.
</li>
<li>
Über dem Ozean wird es kalt und weit. Hinter ihnen werden
die Alpen klein.
</li>
<li>
Am Ende steht eine Halle ohne Fenster und ohne Adresse. In
einem Rack leuchtet ein Schweizerkreuz. Keera erkennt es
wieder.
</li>
<li>
Sie fragt, ob sie es zurückhaben kann. Es gibt keinen Raum
und keine Person - nur ein Webformular und 30 Tage Frist.
</li>
<li>
Zu Hause hat die Landkarte die Farbe gewechselt. Im Standup
fragt ein Junior, wo der Code eigentlich landet. Keera kennt
die Antwort und hat keine Stimme.
</li>
<li>
Zwei Jahre später verdreifacht Omnivor den Preis. Wechseln?
Die Weights waren nie deine. Es ging nie um das Plugin,
sondern um eine Tür ohne Schloss.
</li>
</ol>
</details>
</figcaption>
</figure>
</div>
</section>
<section class="act">
<div class="wrap">
<div class="act-intro">
<p class="eyebrow">Akt III - Was er nicht bezahlt</p>
<h2>Auf dem Rückweg nimmt sie den Umweg</h2>
<p>
Ein Modell dieser Grösse braucht nicht nur Daten, sondern Strom,
Wasser und Landschaft.
</p>
</div>
<figure class="comic">
<img
src="assets/img/keera-story-de-page-3.webp"
width="1024"
height="1536"
alt="Comicseite 3, Bilder 13 bis 17: Omnivors Anlage dort, wo der Strom billig ist, das warme Auslaufrohr im Fluss, die Dieselgeneratoren unter dem Schild «99,99 %», die Abwärme über dunklen Häusern und Keera und Cache im Morgengrauen auf dem Grat."
loading="lazy"
decoding="async"
/>
<figcaption>
<details>
<summary>Seite 3 als Text, Bilder 13-17</summary>
<ol class="script" start="13">
<li>
Auf dem Rückweg sieht Keera, wo Omnivor baut: wo der Strom
billig ist und niemand nachfragt.
</li>
<li>
Am Fluss sitzt Cache lange still. Das Rohr drückt warmes
Wasser in ein Wasser, das schon zu warm ist. Diesmal ist
niemand da, dem sein Blick etwas sagen würde.
</li>
<li>
Hinter der Halle brüllen Dieselgeneratoren. Nicht für den
Notfall, für die Verfügbarkeit. Auf dem Schild steht «99,99
%».
</li>
<li>
Die Abwärme geht in einen kalten Himmel. Sie hätte ein
Quartier heizen können. Bezahlt hat das Tal.
</li>
<li>
Im Morgengrauen sitzen die zwei auf einem Grat. Omnivor hat
nie gestohlen - er hat genommen, was niemand ihm verboten
hat. Und Keera beschliesst, dass das kein Naturgesetz ist.
</li>
</ol>
</details>
</figcaption>
</figure>
</div>
</section>
<section class="act">
<div class="wrap">
<div class="act-intro">
<p class="eyebrow">Akt IV - Das Tor</p>
<h2>Keera baut das Tor, das ihr gefehlt hat</h2>
<p>Sie kommt nicht als Heldin zurück, sondern mit einer Liste.</p>
</div>
<figure class="comic">
<img
src="assets/img/keera-story-de-page-4.webp"
width="1024"
height="1536"
alt="Comicseite 4, Bilder 18 bis 24: Keera neu gebaut am Pult neben Cache, offene Weights auf einem Stick, eine Schweizer Adresse, das Tor, das Secrets und Personendaten aussortiert, Caches Protokoll mit einem rot markierten Eintrag, Wasserkraft und Abwärme ins Tal und derselbe Dienstagmorgen ein Jahr später."
loading="lazy"
decoding="async"
/>
<figcaption>
<details>
<summary>Seite 4 als Text, Bilder 18-24</summary>
<ol class="script" start="18">
<li>
Sie kommt mit einer Liste zurück. Keera wird neu gebaut: aus
offenen Weights, aus vLLM, aus zwei Regionen und vielen
Abenden. Cache bekommt ein eigenes Pult.
</li>
<li>
Offene Weights heissen: aufmachen, nachlesen, mitnehmen.
Damit ist Omnivors Schlüssel aus Bild 12 wertlos.
</li>
<li>
Keera kommt mit einer Adresse in der Schweiz zurück. Kein
Fallback ins Ausland - es gibt keines.
</li>
<li>
Das Tor übernimmt sie selbst. Secrets und Personendaten
fallen raus, bevor ein Modell sie sieht. Der Kundenname aus
Bild 05 kommt hier nicht mehr durch.
</li>
<li>
Caches Starren hat endlich ein Ziel: Keera hat ihm ein
Protokoll gebaut. Er legt die Pfote auf den roten Eintrag.
Diesmal schauen alle hin.
</li>
<li>
Der Strom kommt aus dem Netz, an dem das ganze Land hängt:
Wasserkraft und Solar. Die Abwärme geht ins Tal, in die
Häuser, die in Bild 16 dunkel waren.
</li>
<li>
Dienstagmorgen, ein Jahr später. Vier Repos, Deadline am
Freitag, dieselbe Engineerin - und Keera neben ihr. Cache
schläft auf dem warmen Rack. Nur geht jetzt nichts mehr
hinaus.
</li>
</ol>
</details>
</figcaption>
</figure>
</div>
</section>
<section class="band band--alt">
<div class="wrap">
<div class="prose">
<h2>Von der Figur zur Funktion</h2>
<p>
Die Geschichte ist erfunden, die Gegenzüge sind es nicht. Caches
Starren zum Beispiel ist der Audit-Trail.
</p>
<ul class="plain-list">
<li>
<strong>Offene Weights</strong> - keine Blackbox. Du kannst
nachlesen und mitnehmen.
</li>
<li>
<strong>Schweizer Boden</strong> - kein Fallback ins Ausland,
weil es keines gibt.
</li>
<li>
<strong>Redaction am Edge</strong> - Secrets und Personendaten
fallen raus, bevor ein Modell sie sieht.
</li>
<li>
<strong>Audit-Trail</strong> - jeder Versuch wird sichtbar. Auch
der aus dem eigenen Haus.
</li>
<li>
<strong>Erneuerbarer Strom</strong> - Wasserkraft und Solar aus
dem Netz des Landes.
</li>
<li>
<strong>Weniger Token</strong> - Routing und Caching statt
Rohgewalt.
</li>
</ul>
</div>
</div>
</section>
<section class="band">
<div class="wrap">
<div class="prose">
<h2>Was wir nicht behaupten</h2>
<p>
Dass das gratis sei. Dass es klimaneutral sei. Ein Modell zu
betreiben kostet Strom, Wasser und Material, und daran ändert kein
Zertifikat etwas. Wir sagen dir, woher der Strom kommt, wohin die
Wärme geht und wie viele Token eine Aufgabe gekostet hat. Den Rest
kannst du selber nachrechnen - genau das ist der Unterschied zu
Omnivor.
</p>
<p class="btn-row">
<a class="btn" href="./#contact">Keera testen</a>
<a class="arrow" href="./">Der Stack im Überblick →</a>
</p>
</div>
</div>
</section>
</main>
<footer class="site-footer">
<div class="wrap">
<p>
Keera - Agentisches Coding. Digital souverän. Gebaut in Bern von
bespinian.
</p>
<nav aria-label="Fussnavigation">
<a href="gateway.html">Keera Gateway</a
><a href="code.html">Keera Code</a
><a href="sovereignty.html">Souveränität</a
><a href="sustainability.html">Nachhaltigkeit</a
><a href="story.html">Die Geschichte</a
><a href="./#contact">Kontakt</a
><a href="https://bespinian.io/de/imprint">Impressum</a>
</nav>
<p class="note">© 2026 bespinian · Bern</p>
</div>
</footer>
</body>
</html>