feat: vision page as manifesto

This commit is contained in:
Jonathan 2026-04-19 20:30:57 +02:00
parent d9c75a1921
commit f7bd9085de

View file

@ -1,211 +1,292 @@
--- ---
import AppLayout from '../layouts/AppLayout.astro'; import AppLayout from '../layouts/AppLayout.astro';
import ProjectLockup from '../components/ProjectLockup.astro';
const user = Astro.locals.user; const user = Astro.locals.user;
--- ---
<AppLayout title="Vision" user={user}> <AppLayout title="Vision" user={user}>
<div class="page"> <div class="page">
<header class="page-header"> <!-- ── Hero ───────────────────────────────────────────────────── -->
<header class="hero">
<p class="label-sm eyebrow">Vision</p> <p class="label-sm eyebrow">Vision</p>
<h1 class="display-md page-title">Why this matters.</h1> <h1 class="hero-headline">
A European platform for <em>sovereign AI.</em>
</h1>
</header> </header>
<div class="content"> <!-- ── The stakes ─────────────────────────────────────────────── -->
<section class="section stakes-section">
<h2 class="section-heading label-sm">The stakes</h2>
<div class="prose-column">
<p class="body-lg">
Foreign governments can compel access to Europe's most sensitive data.
Foreign companies can cut off access to the AI that runs on it — overnight,
without warning, and with no recourse. Today, 97% of AI foundational model
usage falls outside EU jurisdiction. For hospitals, public authorities,
defence contractors, and financial institutions, this is not an abstract risk.
It is an active exposure.
</p>
<p class="body-lg">
For critical infrastructure, healthcare, defence, and finance, reliance on
foreign-controlled AI is not a strategy. It is a vulnerability — one that
organisations can no longer afford to ignore as AI becomes central to how
decisions are made.
</p>
</div>
<blockquote class="pulled-quote">
<p class="pulled-quote__text">We can't build our digital fortress on foreign clouds.</p>
<footer class="pulled-quote__attribution">— The imperative behind Project Bifrost</footer>
</blockquote>
</section>
<!-- Fenja AI --> <!-- ── What Fenja is building ─────────────────────────────────── -->
<section class="section"> <section class="section">
<h2 class="headline-md section-title">Fenja AI</h2> <h2 class="section-heading label-sm">What we are building</h2>
<div class="prose"> <div class="prose-column">
<p class="body-lg"> <p class="body-lg">
Fenja enables the safe, sovereign use of Artificial Intelligence in organisations Fenja enables the safe, sovereign use of AI in organisations where data is
where data is highly sensitive, operations are mission-critical, and strict data highly sensitive, operations are mission-critical, and strict privacy is
privacy is essential. We are building the premier solution for public authorities non-negotiable. We are building the solution for public authorities and
and companies operating in heavily regulated industries — pharmaceuticals, critical regulated industries — pharmaceuticals, critical infrastructure, finance —
infrastructure, finance — where standard AI solutions hosted on foreign-owned public where standard AI hosted on foreign-owned public clouds is simply not
clouds are simply not a viable or compliant option. a compliant option.
</p> </p>
<p class="body-lg"> <p class="body-lg">
Many organisations are eager to harness the transformative power of AI but cannot The core proposition is direct: highly advanced, customer-hosted AI within
accept the risk of their data, workflows, and critical functions becoming dependent the client's own secure infrastructure. Data remains under absolute, localised
on external providers with foreign ownership and control. Fenja directly addresses control. The AI understands the organisation's language, context, and structure.
this gap by enabling highly advanced, customer-hosted AI within the client's own Every response is traceable to its source documents. Nothing leaves the building.
secure infrastructure. Data remains under absolute, localised control while we
deliver the robust security, traceability, and documentation demanded by the market.
</p> </p>
<p class="body-lg"> <p class="body-lg">
As the global demand for digital sovereignty accelerates, Fenja is positioned to As global demand for digital sovereignty accelerates, this becomes a matter of
generate profound societal value. We are making cutting-edge AI safely usable in strategic necessity. Backed by Innofounder, we are executing the first pilot
the most critical of functions without ever compromising security or compliance. projects and building the foundational customer cases. The long-term ambition
Backed by investment from the Innovation Fund, we are accelerating product is to establish Fenja as the definitive Danish and European platform for
development, executing high-impact pilot projects, and establishing foundational locally controlled AI in regulated environments.
customer cases. Our long-term ambition is to establish Fenja as the definitive
Danish and European platform for secure, locally controlled AI in regulated
environments.
</p> </p>
</div> </div>
</section> </section>
<!-- Project Bifrost --> <!-- ── Project Bifrost in context ────────────────────────────── -->
<section class="section"> <section class="section bifrost-context-section">
<h2 class="headline-md section-title">Project Bifrost</h2> <div class="bifrost-lockup-col">
<div class="prose"> <ProjectLockup size="lg" alignment="left" showWordmark={false} />
</div>
<div class="bifrost-text-col">
<h2 class="section-heading label-sm">The first step</h2>
<div class="prose-column">
<p class="body-lg"> <p class="body-lg">
Project Bifrost is one of the first stones in the foundation of Denmark and the EU's Project Bifrost is not a proof of concept in a lab. It is a working
sovereign AI platform — a platform controlled by its customers, that understands not collaboration with five organisations who are already operating in the
just your business, but you and your department, and builds on that knowledge environments this platform is built for. Two are running paid pilots.
automatically. Open-source LLMs in a modern, secure, customer-hosted environment. Three are on the Customer Advisory Board. All of them are shaping what
the platform becomes.
</p> </p>
<p class="body-lg statement"> <p class="body-lg">
This is Project Bifrost. The trajectory is clear: from a working pilot → the Danish standard for
sovereign AI deployment → the foundation for EU-scale expansion. Project
Bifrost participants are at the beginning of that arc — helping to define
what it looks like at every step.
</p> </p>
</div> </div>
<div class="horizon-list">
<div class="horizon-item">
<span class="horizon-label label-sm">Now</span>
<p class="horizon-desc body-md">Pilot — five organisations shaping the first working version.</p>
</div>
<div class="horizon-item">
<span class="horizon-label label-sm">Next</span>
<p class="horizon-desc body-md">Danish standard — a proven, replicable sovereign AI deployment.</p>
</div>
<div class="horizon-item">
<span class="horizon-label label-sm">Further</span>
<p class="horizon-desc body-md">EU expansion — the platform for regulated AI across Europe.</p>
</div>
</div>
</div>
</section> </section>
<!-- What comes after --> <!-- ── Closing ─────────────────────────────────────────────────── -->
<section class="section"> <section class="closing-section">
<h2 class="headline-md section-title">What comes after</h2> <p class="closing-text">
<p class="body-md section-intro"> This is not a product that gets built in a boardroom.
The current pilot is one chapter. The platform we are building toward is something It gets built with the organisations who will depend on it.
more ambitious. In reserved terms: That is what Project Bifrost is for.
</p> </p>
<ul class="after-list">
<li class="after-item">
<h3 class="headline-sm item-title">Full developer agentic experience</h3>
<p class="body-md item-body">
A platform where developers can compose, orchestrate, and deploy AI agents that
work within your infrastructure — deeply integrated, auditable, and under your control.
</p>
</li>
<li class="after-item">
<h3 class="headline-sm item-title">Agentic data extraction and analysis</h3>
<p class="body-md item-body">
Agents that move across your document corpus, surface connections, extract
structured information, and return findings with provenance intact.
</p>
</li>
<li class="after-item">
<h3 class="headline-sm item-title">Self-service agent work automation</h3>
<p class="body-md item-body">
Non-technical users define repeatable tasks in natural language. The platform
handles execution, scheduling, and audit — without IT involvement.
</p>
</li>
</ul>
</section> </section>
</div> </div>
</div>
</AppLayout> </AppLayout>
<style> <style>
.page { .page {
padding: var(--space-12) var(--space-20) var(--space-16);
max-width: var(--content-max); max-width: var(--content-max);
margin: 0 auto; margin: 0 auto;
padding: 0 var(--space-20) var(--space-16);
} }
/* ── Header ──────────────────────────────────────────────────────── */ /* ── Hero ────────────────────────────────────────────────────────── */
.page-header { .hero {
margin-bottom: var(--space-12); padding-top: var(--space-16);
max-width: 44rem; padding-bottom: var(--space-12);
max-width: 52rem;
border-bottom: var(--ghost-border);
} }
.eyebrow { .eyebrow {
letter-spacing: var(--tracking-wider); letter-spacing: var(--tracking-wider);
text-transform: uppercase; text-transform: uppercase;
color: var(--on-surface-muted); color: var(--on-surface-muted);
margin-bottom: var(--space-3); margin-bottom: var(--space-4);
} }
.page-title { .hero-headline {
margin: 0;
}
/* ── Content ─────────────────────────────────────────────────────── */
.content {
display: flex;
flex-direction: column;
gap: var(--space-16);
max-width: 52rem;
}
/* ── Section ─────────────────────────────────────────────────────── */
.section {
display: flex;
flex-direction: column;
gap: var(--space-6);
}
.section-title {
font-family: var(--font-serif); font-family: var(--font-serif);
font-size: var(--text-display-md);
font-weight: 400; font-weight: 400;
letter-spacing: var(--tracking-snug); letter-spacing: var(--tracking-tight);
margin: 0; line-height: var(--leading-snug);
color: var(--on-surface); color: var(--on-surface);
margin: 0;
} }
.section-intro { .hero-headline em {
color: var(--on-surface-variant); font-weight: 700;
margin: 0; font-style: italic;
}
/* ── Sections ────────────────────────────────────────────────────── */
.section {
padding: var(--space-12) 0;
border-bottom: var(--ghost-border);
}
.section-heading {
letter-spacing: var(--tracking-wider);
text-transform: uppercase;
color: var(--on-surface-muted);
margin-bottom: var(--space-6);
} }
/* ── Prose ───────────────────────────────────────────────────────── */ /* ── Prose ───────────────────────────────────────────────────────── */
.prose { .prose-column {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: var(--space-5); gap: var(--space-5);
max-width: 44rem;
} }
.prose .body-lg { .prose-column .body-lg {
margin: 0; margin: 0;
color: var(--on-surface-variant); color: var(--on-surface-variant);
line-height: var(--leading-relaxed); line-height: var(--leading-relaxed);
max-width: var(--reading-max);
} }
.statement { /* ── Pulled quote ────────────────────────────────────────────────── */
font-family: var(--font-serif); .stakes-section {
font-size: var(--text-headline-sm) !important; display: flex;
font-weight: 700; flex-direction: column;
font-style: italic; gap: var(--space-8);
color: var(--on-surface) !important;
letter-spacing: var(--tracking-snug);
} }
/* ── After list ──────────────────────────────────────────────────── */ .pulled-quote {
.after-list {
list-style: none;
padding: 0;
margin: 0; margin: 0;
padding: 0 0 0 var(--space-6);
border-left: 3px solid var(--secondary);
display: flex;
flex-direction: column;
gap: var(--space-3);
max-width: 44rem;
}
.pulled-quote__text {
font-family: var(--font-serif);
font-size: var(--text-display-md);
font-style: italic;
font-weight: 400;
letter-spacing: var(--tracking-tight);
line-height: var(--leading-snug);
color: var(--on-surface-variant);
margin: 0;
}
.pulled-quote__attribution {
font-family: var(--font-sans);
font-size: var(--text-label-md);
letter-spacing: var(--tracking-wide);
text-transform: uppercase;
color: var(--on-surface-muted);
}
/* ── Bifrost context — two-column ───────────────────────────────── */
.bifrost-context-section {
display: grid;
grid-template-columns: 14rem 1fr;
gap: var(--space-10);
align-items: start;
}
.bifrost-lockup-col {
padding-top: var(--space-7);
}
.bifrost-text-col {
display: flex;
flex-direction: column;
gap: var(--space-8);
}
.bifrost-text-col .section-heading {
margin-bottom: var(--space-4);
}
/* ── Horizon list ────────────────────────────────────────────────── */
.horizon-list {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 0; gap: 0;
} }
.after-item { .horizon-item {
padding: var(--space-6) 0; display: grid;
display: flex; grid-template-columns: 4.5rem 1fr;
flex-direction: column; gap: var(--space-4);
gap: var(--space-3); align-items: baseline;
padding: var(--space-4) 0;
border-top: var(--ghost-border); border-top: var(--ghost-border);
} }
.after-item:last-child { .horizon-item:last-child {
border-bottom: var(--ghost-border); border-bottom: var(--ghost-border);
} }
.item-title { .horizon-label {
font-family: var(--font-serif); letter-spacing: var(--tracking-wider);
font-weight: 400; text-transform: uppercase;
letter-spacing: var(--tracking-snug); color: var(--on-surface-muted);
margin: 0; font-weight: 600;
color: var(--on-surface);
} }
.item-body { .horizon-desc {
margin: 0;
color: var(--on-surface-variant); color: var(--on-surface-variant);
max-width: var(--reading-max); margin: 0;
line-height: var(--leading-relaxed); line-height: var(--leading-relaxed);
} }
/* ── Closing ─────────────────────────────────────────────────────── */
.closing-section {
padding: var(--space-16) 0 var(--space-12);
max-width: 44rem;
}
.closing-text {
font-family: var(--font-serif);
font-size: var(--text-headline-md);
font-weight: 400;
font-style: italic;
letter-spacing: var(--tracking-snug);
line-height: var(--leading-relaxed);
color: var(--on-surface-variant);
margin: 0;
}
</style> </style>