1327 lines
45 KiB
HTML
1327 lines
45 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>Solutions · Federated Computer</title>
|
||
<meta name="description" content="Four ways to run on Federated Computer: open-source apps; apps plus AI development; Federated AI for the open-source apps you already run; or the full stack with agents.">
|
||
<meta name="theme-color" content="#ffffff">
|
||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
<link href="https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600&family=Geist+Mono:wght@400;500&display=swap" rel="stylesheet">
|
||
<link rel="stylesheet" href="../css/style.css">
|
||
|
||
</head>
|
||
<body id="top">
|
||
<a class="skip" href="#content">Skip to content</a>
|
||
<div class="page">
|
||
|
||
|
||
<aside class="rail">
|
||
<div class="rail-bar">
|
||
<a href="../" class="brand" aria-label="Federated Computer, home">
|
||
<img src="../images/logo.png" alt="Federated Computer" class="brand-logo" width="775" height="129">
|
||
</a>
|
||
|
||
<details class="menu">
|
||
<summary><span class="menu-word">Menu</span><span class="menu-glyph" aria-hidden="true"><i></i><i></i></span></summary>
|
||
<nav class="menu-panel" aria-label="Site">
|
||
|
||
<a href="../" class="menu-top">Home</a>
|
||
|
||
|
||
<a href="../solutions/" class="menu-top">Solutions</a>
|
||
|
||
<div class="menu-sub">
|
||
<a href="../solutions/open-source-apps/">Open-Source Apps</a><a href="../solutions/apps-and-ai-development/">Apps + AI Development</a><a href="../solutions/ai-for-your-apps/">AI for Your Own Apps</a><a href="../solutions/full-stack/">The Full Stack</a><a href="../solutions/#compare">Compare All Four</a>
|
||
</div>
|
||
|
||
|
||
<a href="../product/" class="menu-top">Product</a>
|
||
|
||
<div class="menu-sub">
|
||
<a href="../product/federated-core/">Federated Core</a><a href="../product/software-library/">Software Library</a><a href="../product/agent-sandbox/">Agent Sandbox</a><a href="../product/data-controls/">Data & Controls</a>
|
||
</div>
|
||
|
||
|
||
<a href="../ai-privacy-advantage/" class="menu-top">AI Privacy Advantage</a>
|
||
|
||
|
||
<a href="../pricing/" class="menu-top">Pricing</a>
|
||
|
||
|
||
<a href="../about/" class="menu-top">About</a>
|
||
|
||
|
||
<div class="menu-actions">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<a href="../start-now/" class="btn btn-primary">
|
||
<span class="btn-tile" aria-hidden="true"><svg viewBox="0 0 16 16" width="14" height="14" fill="none"><path d="M3 8h9M8.5 4.5 12 8l-3.5 3.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="square"/></svg></span>
|
||
<span class="btn-label">Start Now</span>
|
||
</a>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<a href="../sign-in/" class="btn btn-secondary">Sign In<span class="arrow" aria-hidden="true">→</span></a>
|
||
|
||
|
||
|
||
</div>
|
||
</nav>
|
||
</details>
|
||
</div>
|
||
|
||
<nav class="nav nav-doors" aria-label="Site">
|
||
|
||
|
||
<a href="../">Home</a>
|
||
|
||
|
||
|
||
<a href="../solutions/" aria-current="page">Solutions</a>
|
||
|
||
|
||
<div class="nav-sub">
|
||
|
||
<a href="../solutions/open-source-apps/">Open-Source Apps</a>
|
||
|
||
<a href="../solutions/apps-and-ai-development/">Apps + AI Development</a>
|
||
|
||
<a href="../solutions/ai-for-your-apps/">AI for Your Own Apps</a>
|
||
|
||
<a href="../solutions/full-stack/">The Full Stack</a>
|
||
|
||
<a href="../solutions/#compare">Compare All Four</a>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<a href="../product/">Product</a>
|
||
|
||
|
||
|
||
<a href="../ai-privacy-advantage/">AI Privacy Advantage</a>
|
||
|
||
|
||
|
||
<a href="../pricing/">Pricing</a>
|
||
|
||
|
||
|
||
<a href="../about/">About</a>
|
||
|
||
|
||
</nav>
|
||
|
||
<div class="rail-actions">
|
||
<a href="../start-now/" class="btn btn-primary btn-sm"><span class="btn-label">Start Now</span></a>
|
||
<a href="../sign-in/" class="rail-signin">Sign In</a>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<hr class="rail-rule">
|
||
<nav class="nav nav-here" aria-label="On this page">
|
||
<a href="#choose-your-path">Choose Your Path</a><a href="#compare">Compare</a><a href="#same-promise-on-every-path">Same Promise on Every Path</a>
|
||
</nav>
|
||
|
||
|
||
|
||
|
||
|
||
<nav class="app-wall" aria-label="Apps + AI">
|
||
<a class="app-wall-head" href="../product/software-library/">
|
||
<span class="app-wall-title">Apps + AI</span>
|
||
<span class="app-wall-count">Catalog<span class="arrow" aria-hidden="true">→</span></span>
|
||
</a>
|
||
<div class="app-wall-view">
|
||
<div class="app-wall-scroll">
|
||
|
||
<ul class="app-wall-grid">
|
||
|
||
<li>
|
||
<a class="app-tile" href="../nextcloud/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#nextcloud"></use></svg>
|
||
|
||
<span class="app-tile-name">Nextcloud</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../product/software-library/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#claude"></use></svg>
|
||
|
||
<span class="app-tile-name">Claude Code</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../product/software-library/#mcp">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#mcp"></use></svg>
|
||
|
||
<span class="app-tile-name">MCP</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../jitsi/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#jitsi"></use></svg>
|
||
|
||
<span class="app-tile-name">Jitsi</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../espocrm/">
|
||
<span class="app-tile-icon app-tile-letter" aria-hidden="true">E</span>
|
||
<span class="app-tile-name">EspoCRM</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../element/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#element"></use></svg>
|
||
|
||
<span class="app-tile-name">Element</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../n8n/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#n8n"></use></svg>
|
||
|
||
<span class="app-tile-name">n8n</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../immich/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#immich"></use></svg>
|
||
|
||
<span class="app-tile-name">Immich</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../product/software-library/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#jupyter"></use></svg>
|
||
|
||
<span class="app-tile-name">Jupyter</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../wordpress/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#wordpress"></use></svg>
|
||
|
||
<span class="app-tile-name">WordPress</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../freescout/">
|
||
<span class="app-tile-icon app-tile-letter" aria-hidden="true">F</span>
|
||
<span class="app-tile-name">FreeScout</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../collabora-writer/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#collabora"></use></svg>
|
||
|
||
<span class="app-tile-name">Collabora</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../product/software-library/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#opencode"></use></svg>
|
||
|
||
<span class="app-tile-name">OpenCode</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../vaultwarden/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#vaultwarden"></use></svg>
|
||
|
||
<span class="app-tile-name">Vaultwarden</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../calcom/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#calcom"></use></svg>
|
||
|
||
<span class="app-tile-name">Cal.com</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../gitea/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#gitea"></use></svg>
|
||
|
||
<span class="app-tile-name">Gitea</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../discourse/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#discourse"></use></svg>
|
||
|
||
<span class="app-tile-name">Discourse</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../product/software-library/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#grafana"></use></svg>
|
||
|
||
<span class="app-tile-name">Grafana</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../bookstack/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#bookstack"></use></svg>
|
||
|
||
<span class="app-tile-name">BookStack</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../docuseal/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#docuseal"></use></svg>
|
||
|
||
<span class="app-tile-name">DocuSeal</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../plane/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#plane"></use></svg>
|
||
|
||
<span class="app-tile-name">Plane</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../baserow/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#baserow"></use></svg>
|
||
|
||
<span class="app-tile-name">Baserow</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../listmonk/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#listmonk"></use></svg>
|
||
|
||
<span class="app-tile-name">Listmonk</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../product/software-library/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#postgresql"></use></svg>
|
||
|
||
<span class="app-tile-name">PostgreSQL</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../mautic/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#mautic"></use></svg>
|
||
|
||
<span class="app-tile-name">Mautic</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../plausible-analytics/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#plausible"></use></svg>
|
||
|
||
<span class="app-tile-name">Plausible</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../matomo/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#matomo"></use></svg>
|
||
|
||
<span class="app-tile-name">Matomo</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../kimai/">
|
||
<span class="app-tile-icon app-tile-letter" aria-hidden="true">K</span>
|
||
<span class="app-tile-name">Kimai</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../castopod/">
|
||
<span class="app-tile-icon app-tile-letter" aria-hidden="true">C</span>
|
||
<span class="app-tile-name">Castopod</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../woocommerce-ecommerce/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#woocommerce"></use></svg>
|
||
|
||
<span class="app-tile-name">WooCommerce</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../roundcube/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#roundcube"></use></svg>
|
||
|
||
<span class="app-tile-name">Roundcube</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../headscale/">
|
||
<span class="app-tile-icon app-tile-letter" aria-hidden="true">H</span>
|
||
<span class="app-tile-name">Headscale</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../solutions/ai-for-your-apps/">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#add"></use></svg>
|
||
|
||
<span class="app-tile-name">Add Yours</span>
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<ul class="app-wall-grid" aria-hidden="true">
|
||
|
||
<li>
|
||
<a class="app-tile" href="../nextcloud/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#nextcloud"></use></svg>
|
||
|
||
<span class="app-tile-name">Nextcloud</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../product/software-library/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#claude"></use></svg>
|
||
|
||
<span class="app-tile-name">Claude Code</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../product/software-library/#mcp" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#mcp"></use></svg>
|
||
|
||
<span class="app-tile-name">MCP</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../jitsi/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#jitsi"></use></svg>
|
||
|
||
<span class="app-tile-name">Jitsi</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../espocrm/" tabindex="-1">
|
||
<span class="app-tile-icon app-tile-letter" aria-hidden="true">E</span>
|
||
<span class="app-tile-name">EspoCRM</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../element/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#element"></use></svg>
|
||
|
||
<span class="app-tile-name">Element</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../n8n/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#n8n"></use></svg>
|
||
|
||
<span class="app-tile-name">n8n</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../immich/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#immich"></use></svg>
|
||
|
||
<span class="app-tile-name">Immich</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../product/software-library/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#jupyter"></use></svg>
|
||
|
||
<span class="app-tile-name">Jupyter</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../wordpress/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#wordpress"></use></svg>
|
||
|
||
<span class="app-tile-name">WordPress</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../freescout/" tabindex="-1">
|
||
<span class="app-tile-icon app-tile-letter" aria-hidden="true">F</span>
|
||
<span class="app-tile-name">FreeScout</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../collabora-writer/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#collabora"></use></svg>
|
||
|
||
<span class="app-tile-name">Collabora</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../product/software-library/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#opencode"></use></svg>
|
||
|
||
<span class="app-tile-name">OpenCode</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../vaultwarden/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#vaultwarden"></use></svg>
|
||
|
||
<span class="app-tile-name">Vaultwarden</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../calcom/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#calcom"></use></svg>
|
||
|
||
<span class="app-tile-name">Cal.com</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../gitea/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#gitea"></use></svg>
|
||
|
||
<span class="app-tile-name">Gitea</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../discourse/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#discourse"></use></svg>
|
||
|
||
<span class="app-tile-name">Discourse</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../product/software-library/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#grafana"></use></svg>
|
||
|
||
<span class="app-tile-name">Grafana</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../bookstack/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#bookstack"></use></svg>
|
||
|
||
<span class="app-tile-name">BookStack</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../docuseal/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#docuseal"></use></svg>
|
||
|
||
<span class="app-tile-name">DocuSeal</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../plane/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#plane"></use></svg>
|
||
|
||
<span class="app-tile-name">Plane</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../baserow/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#baserow"></use></svg>
|
||
|
||
<span class="app-tile-name">Baserow</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../listmonk/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#listmonk"></use></svg>
|
||
|
||
<span class="app-tile-name">Listmonk</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../product/software-library/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#postgresql"></use></svg>
|
||
|
||
<span class="app-tile-name">PostgreSQL</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../mautic/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#mautic"></use></svg>
|
||
|
||
<span class="app-tile-name">Mautic</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../plausible-analytics/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#plausible"></use></svg>
|
||
|
||
<span class="app-tile-name">Plausible</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../matomo/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#matomo"></use></svg>
|
||
|
||
<span class="app-tile-name">Matomo</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../kimai/" tabindex="-1">
|
||
<span class="app-tile-icon app-tile-letter" aria-hidden="true">K</span>
|
||
<span class="app-tile-name">Kimai</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../castopod/" tabindex="-1">
|
||
<span class="app-tile-icon app-tile-letter" aria-hidden="true">C</span>
|
||
<span class="app-tile-name">Castopod</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../woocommerce-ecommerce/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#woocommerce"></use></svg>
|
||
|
||
<span class="app-tile-name">WooCommerce</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../roundcube/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#roundcube"></use></svg>
|
||
|
||
<span class="app-tile-name">Roundcube</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../headscale/" tabindex="-1">
|
||
<span class="app-tile-icon app-tile-letter" aria-hidden="true">H</span>
|
||
<span class="app-tile-name">Headscale</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a class="app-tile" href="../solutions/ai-for-your-apps/" tabindex="-1">
|
||
<svg class="app-tile-icon" aria-hidden="true"><use href="../images/app-icons.svg#add"></use></svg>
|
||
|
||
<span class="app-tile-name">Add Yours</span>
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
</aside>
|
||
|
||
<main class="col" id="content" tabindex="-1">
|
||
|
||
|
||
|
||
|
||
|
||
<header class="hero hero-compact">
|
||
<p class="note" data-reveal><span class="note-live" aria-hidden="true"></span><span class="note-text">Solutions</span></p>
|
||
<h1 class="statement" data-reveal style="--d:80ms">One Platform. Four Places to Start.</h1>
|
||
<p class="dek" data-reveal style="--d:140ms">Federated Computer is built in layers, so you only take on what you need today. Here’s how each kind of customer uses it — and what’s there when you want more.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</header>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<section class="section section-paths" id="choose-your-path" data-reveal>
|
||
|
||
|
||
|
||
|
||
<div class="section-head">
|
||
<p class="eyebrow">Choose Your Path</p>
|
||
<h2>Which One Sounds Like You?</h2>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<ol class="entries path-list">
|
||
|
||
<li>
|
||
<a href="../solutions/open-source-apps/" class="path-row" data-fit="{"controls":"no","core":"yes","library":"yes","sandbox":"no"}">
|
||
<div class="path-body">
|
||
<span class="path-who"><span class="entry-n">001</span>For teams leaving Google Workspace or Microsoft 365</span>
|
||
<h3>Open-Source Apps</h3>
|
||
<p>You want software that works, costs less, and keeps your data private. AI can wait.</p>
|
||
<span class="more path-link">Explore Open-Source Apps<span class="arrow" aria-hidden="true">→</span></span>
|
||
</div>
|
||
<div class="path-fit">
|
||
|
||
<ul class="fit fit-compact">
|
||
|
||
|
||
<li class="fit-row fit-core is-yes">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Federated Core</span>
|
||
<span class="fit-state">Included</span>
|
||
</li>
|
||
|
||
|
||
<li class="fit-row fit-library is-yes">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Software Library</span>
|
||
<span class="fit-state">Included</span>
|
||
</li>
|
||
|
||
|
||
<li class="fit-row fit-sandbox is-no">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Agent Sandbox</span>
|
||
<span class="fit-state">Add anytime</span>
|
||
</li>
|
||
|
||
|
||
<li class="fit-row fit-controls is-no">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Data & Controls</span>
|
||
<span class="fit-state">Add anytime</span>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="../solutions/apps-and-ai-development/" class="path-row" data-fit="{"controls":"yes","core":"yes","library":"yes","sandbox":"no"}">
|
||
<div class="path-body">
|
||
<span class="path-who"><span class="entry-n">002</span>For teams who want to build AI on their own business data</span>
|
||
<h3>Apps + AI Development</h3>
|
||
<p>You want the apps, and a private place for your developers to build AI features and automations against real business data.</p>
|
||
<span class="more path-link">Explore Apps + AI Development<span class="arrow" aria-hidden="true">→</span></span>
|
||
</div>
|
||
<div class="path-fit">
|
||
|
||
<ul class="fit fit-compact">
|
||
|
||
|
||
<li class="fit-row fit-core is-yes">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Federated Core</span>
|
||
<span class="fit-state">Included</span>
|
||
</li>
|
||
|
||
|
||
<li class="fit-row fit-library is-yes">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Software Library</span>
|
||
<span class="fit-state">Included</span>
|
||
</li>
|
||
|
||
|
||
<li class="fit-row fit-sandbox is-no">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Agent Sandbox</span>
|
||
<span class="fit-state">Add anytime</span>
|
||
</li>
|
||
|
||
|
||
<li class="fit-row fit-controls is-yes">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Data & Controls</span>
|
||
<span class="fit-state">Included</span>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="../solutions/ai-for-your-apps/" class="path-row" data-fit="{"controls":"yes","core":"yes","library":"own","sandbox":"no"}">
|
||
<div class="path-body">
|
||
<span class="path-who"><span class="entry-n">003</span>For teams already running their own open-source apps</span>
|
||
<h3>AI for Your Own Apps</h3>
|
||
<p>You already host your open-source apps and don’t want to move them. You want Federated’s AI capabilities connected to what you have.</p>
|
||
<span class="more path-link">Explore AI for Your Own Apps<span class="arrow" aria-hidden="true">→</span></span>
|
||
</div>
|
||
<div class="path-fit">
|
||
|
||
<ul class="fit fit-compact">
|
||
|
||
|
||
<li class="fit-row fit-core is-yes">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Federated Core</span>
|
||
<span class="fit-state">Included</span>
|
||
</li>
|
||
|
||
|
||
<li class="fit-row fit-library is-own">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Software Library</span>
|
||
<span class="fit-state">Your own</span>
|
||
</li>
|
||
|
||
|
||
<li class="fit-row fit-sandbox is-no">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Agent Sandbox</span>
|
||
<span class="fit-state">Add anytime</span>
|
||
</li>
|
||
|
||
|
||
<li class="fit-row fit-controls is-yes">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Data & Controls</span>
|
||
<span class="fit-state">Included</span>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="../solutions/full-stack/" class="path-row" data-fit="{"controls":"yes","core":"yes","library":"yes","sandbox":"yes"}">
|
||
<div class="path-body">
|
||
<span class="path-who"><span class="entry-n">004</span>For teams ready to put AI agents to work</span>
|
||
<h3>The Full Stack</h3>
|
||
<p>You want the apps, the AI development loop, and somewhere safe and affordable to run the agents you build.</p>
|
||
<span class="more path-link">Explore the Full Stack<span class="arrow" aria-hidden="true">→</span></span>
|
||
</div>
|
||
<div class="path-fit">
|
||
|
||
<ul class="fit fit-compact">
|
||
|
||
|
||
<li class="fit-row fit-core is-yes">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Federated Core</span>
|
||
<span class="fit-state">Included</span>
|
||
</li>
|
||
|
||
|
||
<li class="fit-row fit-library is-yes">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Software Library</span>
|
||
<span class="fit-state">Included</span>
|
||
</li>
|
||
|
||
|
||
<li class="fit-row fit-sandbox is-yes">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Agent Sandbox</span>
|
||
<span class="fit-state">Included</span>
|
||
</li>
|
||
|
||
|
||
<li class="fit-row fit-controls is-yes">
|
||
<span class="fit-bar" aria-hidden="true"><span></span></span>
|
||
<span class="fit-name">Data & Controls</span>
|
||
<span class="fit-state">Included</span>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</a>
|
||
</li>
|
||
|
||
</ol>
|
||
|
||
|
||
|
||
</section>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<section class="section section-matrix" id="compare" data-reveal>
|
||
|
||
|
||
|
||
|
||
<div class="section-head">
|
||
<p class="eyebrow">Compare</p>
|
||
<h2>What Each Path Includes</h2>
|
||
<p class="lede">Nothing here is a dead end. Anything marked “Add anytime” can be switched on later, on the same platform, without migrating.</p>
|
||
</div>
|
||
|
||
|
||
<div class="table-scroll">
|
||
<table class="compare-table matrix-table">
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Capability</th>
|
||
<th scope="col"><a href="../solutions/open-source-apps/">Open-Source Apps</a></th><th scope="col"><a href="../solutions/apps-and-ai-development/">Apps + AI Development</a></th><th scope="col"><a href="../solutions/ai-for-your-apps/">AI for Your Own Apps</a></th><th scope="col"><a href="../solutions/full-stack/">The Full Stack</a></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<th scope="row">100+ managed open-source apps<span class="matrix-layer">Software Library</span></th>
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-own">Your own</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Unlimited users, one login, monitoring and backup<span class="matrix-layer">Federated Core</span></th>
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-note">For Federated services</td>
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Built-in AI connectors (MCP)<span class="matrix-layer">Software Library</span></th>
|
||
|
||
<td class="m-note">Built in, ready when you are</td>
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-note">Connected to your apps</td>
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Organizational Brain — a live index of your business<span class="matrix-layer">Data & Controls</span></th>
|
||
|
||
<td class="m-no">Add anytime</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Jupyter notebooks with local AI<span class="matrix-layer">Data & Controls</span></th>
|
||
|
||
<td class="m-no">Add anytime</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Gitea version control and CI/CD<span class="matrix-layer">Data & Controls</span></th>
|
||
|
||
<td class="m-no">Add anytime</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Digital twin test environments<span class="matrix-layer">Data & Controls</span></th>
|
||
|
||
<td class="m-no">Add anytime</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Grafana and Prometheus monitoring<span class="matrix-layer">Data & Controls</span></th>
|
||
|
||
<td class="m-no">Add anytime</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Federated learning<span class="matrix-layer">Federated Core</span></th>
|
||
|
||
<td class="m-no">Add anytime</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
<td class="m-yes">Included</td>
|
||
|
||
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Agent Sandbox — run your agents on Federated<span class="matrix-layer">Agent Sandbox</span></th>
|
||
|
||
<td class="m-no">Add anytime</td>
|
||
|
||
|
||
<td class="m-no">Add anytime</td>
|
||
|
||
|
||
<td class="m-no">Add anytime</td>
|
||
|
||
|
||
<td class="m-note">Included (beta)</td>
|
||
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
|
||
|
||
</section>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<section class="section section-text" id="same-promise-on-every-path" data-reveal>
|
||
|
||
|
||
|
||
<div class="section-head">
|
||
<p class="eyebrow">Same Promise on Every Path</p>
|
||
<h2>Private by Architecture, Whichever Layers You Use</h2>
|
||
|
||
</div>
|
||
|
||
|
||
<div class="prose">
|
||
Every path runs on single-tenant infrastructure that’s yours alone. Once you change your admin password, we can’t see your data. It’s never used for advertising or to train anyone’s AI — not on the apps-only path, and not on the full stack.
|
||
</div>
|
||
<div class="cta-row mt-2">
|
||
|
||
|
||
|
||
|
||
|
||
<a href="../ai-privacy-advantage/" class="more">Read About the AI Privacy Advantage<span class="arrow" aria-hidden="true">→</span></a>
|
||
|
||
|
||
</div>
|
||
|
||
</section>
|
||
|
||
|
||
|
||
|
||
|
||
<aside class="cta" data-reveal>
|
||
<h2 class="cta-title">Not sure which path fits?</h2>
|
||
<p class="cta-text">Tell us what you run today and what you want AI to do. We’ll show you where to start.</p>
|
||
<div class="actions">
|
||
|
||
|
||
|
||
|
||
|
||
<a href="https://calcom.federated.computer/david/60-min-meeting" class="btn btn-primary">
|
||
<span class="btn-tile" aria-hidden="true"><svg viewBox="0 0 16 16" width="14" height="14" fill="none"><path d="M3 8h9M8.5 4.5 12 8l-3.5 3.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="square"/></svg></span>
|
||
<span class="btn-label">Book a Demo</span>
|
||
</a>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<a href="../start-now/" class="btn btn-secondary">Start 7-Day Free Trial<span class="arrow" aria-hidden="true">→</span></a>
|
||
|
||
|
||
</div>
|
||
</aside>
|
||
|
||
|
||
|
||
|
||
|
||
<footer class="foot" data-reveal>
|
||
<div class="foot-brand">
|
||
<a href="../" class="foot-mark" aria-label="Federated Computer, home">
|
||
<img src="../images/logo.png" alt="Federated Computer" class="brand-logo" width="775" height="129">
|
||
</a>
|
||
<p class="foot-line">The open-source operating system for your business — and the private AI that runs on it.</p>
|
||
<span class="foot-place">Colorado Springs, Colorado</span>
|
||
<ul class="foot-social">
|
||
<li><a href="https://www.linkedin.com/company/federated-computer" target="_blank" rel="noopener">LinkedIn<span class="arrow" aria-hidden="true">↗</span></a></li><li><a href="https://x.com/federatedcomp" target="_blank" rel="noopener">X<span class="arrow" aria-hidden="true">↗</span></a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="foot-grid">
|
||
|
||
<nav class="foot-group" aria-label="Solutions">
|
||
<span class="foot-head">Solutions</span>
|
||
<ul class="foot-links">
|
||
|
||
<li><a href="../solutions/open-source-apps/">Open-Source Apps</a></li>
|
||
|
||
<li><a href="../solutions/apps-and-ai-development/">Apps + AI Development</a></li>
|
||
|
||
<li><a href="../solutions/ai-for-your-apps/">AI for Your Own Apps</a></li>
|
||
|
||
<li><a href="../solutions/full-stack/">The Full Stack</a></li>
|
||
|
||
<li><a href="../solutions/#compare">Compare All Four</a></li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<nav class="foot-group" aria-label="Product">
|
||
<span class="foot-head">Product</span>
|
||
<ul class="foot-links">
|
||
|
||
<li><a href="../product/federated-core/">Federated Core</a></li>
|
||
|
||
<li><a href="../product/software-library/">Software Library</a></li>
|
||
|
||
<li><a href="../product/agent-sandbox/">Agent Sandbox</a></li>
|
||
|
||
<li><a href="../product/data-controls/">Data & Controls</a></li>
|
||
|
||
<li><a href="../ai-privacy-advantage/">AI Privacy Advantage</a></li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<nav class="foot-group" aria-label="Company">
|
||
<span class="foot-head">Company</span>
|
||
<ul class="foot-links">
|
||
|
||
<li><a href="../about/">About</a></li>
|
||
|
||
<li><a href="../about/#team">Team</a></li>
|
||
|
||
<li><a href="../about/#jobs">Jobs</a></li>
|
||
|
||
<li><a href="https://freescout.federated.computer/help/3593186542">Support</a></li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
<nav class="foot-group" aria-label="Get Started">
|
||
<span class="foot-head">Get Started</span>
|
||
<ul class="foot-links">
|
||
|
||
<li><a href="../start-now/">Start Now</a></li>
|
||
|
||
<li><a href="../sign-in/">Sign In</a></li>
|
||
|
||
<li><a href="../pricing/">Pricing</a></li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</div>
|
||
|
||
<div class="foot-legal">
|
||
<span class="foot-copy">© 2026 Federated Computer, Inc. FedQ'd in Colorado Springs — built on Federated Computer by a team around the world.</span>
|
||
<a class="foot-policy" href="../privacy-policy/">Privacy Policy</a><a class="foot-policy" href="../terms-and-conditions/">Terms & Conditions</a>
|
||
<a class="foot-top" href="#top">Back to top<span class="foot-up" aria-hidden="true">↑</span></a>
|
||
</div>
|
||
</footer>
|
||
|
||
</main>
|
||
</div>
|
||
<script>
|
||
|
||
|
||
(function () {
|
||
var root = document.documentElement;
|
||
if (!('IntersectionObserver' in window)) return;
|
||
root.classList.add('js');
|
||
|
||
var io = new IntersectionObserver(function (entries) {
|
||
entries.forEach(function (e) {
|
||
if (e.isIntersecting) { e.target.classList.add('is-visible'); io.unobserve(e.target); }
|
||
});
|
||
}, { rootMargin: '0px 0px -8% 0px' });
|
||
document.querySelectorAll('[data-reveal]').forEach(function (el) { io.observe(el); });
|
||
|
||
var links = [].slice.call(document.querySelectorAll('.nav-here a'));
|
||
if (!links.length) return;
|
||
var targets = links.map(function (a) { return document.getElementById(decodeURIComponent(a.hash.slice(1))); });
|
||
var ticking = false;
|
||
function update() {
|
||
ticking = false;
|
||
var current = -1;
|
||
targets.forEach(function (t, i) { if (t && t.getBoundingClientRect().top < innerHeight * 0.3) current = i; });
|
||
links.forEach(function (a, i) {
|
||
if (i === current) a.setAttribute('aria-current', 'location'); else a.removeAttribute('aria-current');
|
||
});
|
||
}
|
||
addEventListener('scroll', function () { if (!ticking) { ticking = true; requestAnimationFrame(update); } }, { passive: true });
|
||
update();
|
||
})();
|
||
|
||
|
||
(function () {
|
||
function openPanel() {
|
||
var panel = location.hash && document.getElementById(decodeURIComponent(location.hash.slice(1)));
|
||
if (!panel || !panel.classList.contains('plan-panel')) return;
|
||
var i = [].indexOf.call(panel.parentNode.children, panel);
|
||
var radio = panel.closest('.plan-switch').querySelectorAll('.plan-radio')[i];
|
||
if (radio) { radio.checked = true; (panel.closest('.section') || panel).scrollIntoView(); }
|
||
}
|
||
addEventListener('hashchange', openPanel);
|
||
openPanel();
|
||
})();
|
||
</script>
|
||
</body>
|
||
</html>
|