habemus new tagline
All checks were successful
Build and Deploy / build (push) Successful in 1m6s
Django Tests / test (push) Successful in 1m15s
Build and Deploy / deploy (push) Successful in 5s

This commit is contained in:
Tobias Brunner 2025-08-29 10:08:42 +02:00
parent 71d4962d18
commit d680c8b093
Signed by: tobru
SSH key fingerprint: SHA256:kOXg1R6c11XW3/Pt9dbLdQvOJGFAy+B2K6v6PtRWBGQ
6 changed files with 47 additions and 47 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 316 KiB

After

Width:  |  Height:  |  Size: 316 KiB

Before After
Before After

View file

@ -35,15 +35,15 @@
<div class="bg-primary text-white py-2 text-center">
<div class="container">
<a href="https://www.vshn.ch/en/blog/vshn-launches-servala-open-cloud-native-service-hub/" class="text-white text-decoration-none" target="_blank">
VSHN launches Servala Open Cloud Native Service Hub
VSHN launches Servala The Sovereign App Store
</a>
<i class="bi bi-box-arrow-up-right"></i>
</div>
</div>
<header class="site-header position-relative"
x-data="{
isMenuOpen: false,
<header class="site-header position-relative"
x-data="{
isMenuOpen: false,
isAtTop: true,
toggleMenu() {
this.isMenuOpen = !this.isMenuOpen;
@ -75,8 +75,8 @@
}
});
">
<div class="header-nav"
:class="isAtTop ? 'header-nav--top' : 'header-nav--fixed'"
<div class="header-nav"
:class="isAtTop ? 'header-nav--top' : 'header-nav--fixed'"
id="headerNav">
<div class="container-xl mx-auto px-3 px-lg-0 position-relative">
<div class="nav__wrapper d-flex justify-content-between align-items-center">
@ -85,8 +85,8 @@
<img src="{% static "img/header-logo.png" %}" alt="Servala Logo" width="191" height="43">
</a>
</div>
<div class="nav__menu"
:class="isMenuOpen ? 'nav__menu-active' : 'nav__menu-hidden'"
<div class="nav__menu"
:class="isMenuOpen ? 'nav__menu-active' : 'nav__menu-hidden'"
id="navMenu">
<nav class="navbar d-lg-flex justify-content-lg-end align-items-lg-center">
<ul class="navbar__menu menu mr-lg-27">
@ -103,21 +103,21 @@
</nav>
</div>
<div class="nav__toggle">
<button @click="toggleMenu()"
name="menu"
class="nav__button"
role="button"
:aria-expanded="isMenuOpen.toString()"
<button @click="toggleMenu()"
name="menu"
class="nav__button"
role="button"
:aria-expanded="isMenuOpen.toString()"
aria-controls="navMenu">
<svg class="nav__button-svg" width="22" height="24">
<line class="button-svg__line"
:class="isMenuOpen ? 'svg-line-top' : ''"
<line class="button-svg__line"
:class="isMenuOpen ? 'svg-line-top' : ''"
x1="0" x2="22" y1="6" y2="6"></line>
<line class="button-svg__line"
:class="isMenuOpen ? 'svg-line-center' : ''"
<line class="button-svg__line"
:class="isMenuOpen ? 'svg-line-center' : ''"
x1="0" x2="22" y1="12" y2="12"></line>
<line class="button-svg__line"
:class="isMenuOpen ? 'svg-line-bottom' : ''"
<line class="button-svg__line"
:class="isMenuOpen ? 'svg-line-bottom' : ''"
x1="0" x2="22" y1="18" y2="18"></line>
</svg>
</button>
@ -126,7 +126,7 @@
</div>
</div>
</header>
{% block content %}
{% endblock %}
@ -180,7 +180,7 @@
</a>
</div>
<div class="fs-14 fw-semibold">
<p>Unlock the Power of Cloud Native Applications</p>
<p>Unlock the Power of Sovereign Managed Applications</p>
</div>
<div class="d-flex align-items-center space-x-20">
<a href="https://www.linkedin.com/company/servala/">
@ -192,7 +192,7 @@
</a>
</div>
</div>
<div class="col-12 col-lg-2 mb-60 mb-lg-0">
<div class="space-y-20">
<h4 class="fs-base fw-semibold">Contents</h4>
@ -206,7 +206,7 @@
</ul>
</div>
</div>
<div class="col-12 col-lg-2 mb-60 mb-lg-0">
<div class="space-y-20">
<h4 class="fs-base fw-semibold">Company</h4>
@ -218,7 +218,7 @@
</ul>
</div>
</div>
<div class="col-12 col-lg-4">
<div class="space-y-20 w-lg-90">
<h4 class="fs-base fw-semibold">Contact</h4>
@ -275,7 +275,7 @@
</ul>
</div>
</div>
</div>
</div>
</section>

View file

@ -2,7 +2,7 @@
{% load static %}
{% load contact_tags %}
{% block title %}About Open Cloud Native Services Hub{% endblock %}
{% block title %}About The Sovereign App Store{% endblock %}
{% block content %}
<section class="section bg-primary-subtle">
@ -10,7 +10,7 @@
<header class="section-primary__header text-center">
<h1 class="section-h1 fs-40 fs-lg-64 mb-24">About Servala</h1>
<div class="text-gray-300 w-lg-37 mx-auto">
<p class="mb-0">Open Cloud Native Service Hub. Unlock the Power of Cloud Native Applications.</p>
<p class="mb-0">The Sovereign App Store. Unlock the Power of Sovereign Managed Applications.</p>
</div>
</header>
</div>
@ -238,7 +238,7 @@
</div>
<div class="w-lg-30">
<div class="page-header__image-wrapper">
<img class="page-header__image" src="{% static "img/sir-vala-text.png" %}" alt="Cartoon serval cat named Sir Vala with blue eyes and a happy expression. It's the mascot of Servala - Open Cloud Native Service Hub" title="Sir Vala - Mascot of Servala">
<img class="page-header__image" src="{% static "img/sir-vala-text.png" %}" alt="Cartoon serval cat named Sir Vala with blue eyes and a happy expression. It's the mascot of Servala - The Sovereign App Store" title="Sir Vala - Mascot of Servala">
</div>
</div>
</div>
@ -251,4 +251,4 @@
</div>
</div>
</section>
{% endblock %}
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends 'base.html' %}
{% load static %}
{% block title %}Open Cloud Native Services Hub{% endblock %}
{% block title %}The Sovereign App Store{% endblock %}
{% block content %}
<section class="section section-hero bg-primary-subtle">
@ -9,9 +9,9 @@
<div class="section-hero-mask"></div>
<div class="px-3 px-lg-0 pt-80 pb-120 position-relative">
<header class="section-hero__header">
<h1 class="section-h1 fs-40 fs-lg-64">Servala - Open Cloud Native Service Hub</h1>
<h1 class="section-h1 fs-40 fs-lg-64">Sovereign App Store</h1>
<div class="section-hero__desc">
<p>Unlock the Power of Cloud Native Applications.</p>
<p>Unlock the Power of Sovereign Managed Applications.</p>
<p>Servala connects businesses, developers, and cloud service providers on one unique hub with secure, scalable, and easy-to-use cloud-native services.</p>
</div>
<div>
@ -41,7 +41,7 @@
<div class="row">
{% for service in featured_services %}
<div class="col-12 col-md-6 col-lg-3 mb-20 mb-lg-0">
<div class="card h-100 d-flex flex-column clickable-card"
<div class="card h-100 d-flex flex-column clickable-card"
onclick="cardClicked(event, '{{ service.get_absolute_url }}')">
<div class="card__content d-flex flex-column flex-grow-1">
<div class="card__header">
@ -49,8 +49,8 @@
<div class="me-3 d-flex align-items-center" style="height: 100%;">
<a href="{{ service.get_absolute_url }}" class="clickable-link">
{% if service.get_logo %}
<img src="{{ service.get_logo.url }}"
alt="{{ service.name }}"
<img src="{{ service.get_logo.url }}"
alt="{{ service.name }}"
style="max-height: 100px; max-width: 250px; object-fit: contain;">
{% else %}
<div class="text-muted" style="height: 100px; width: 250px; display: flex; align-items: center; justify-content: center; border: 1px solid #dee2e6; border-radius: 0.375rem;">
@ -104,7 +104,7 @@
<div class="row">
{% for provider in featured_providers %}
<div class="col-12 col-md-6 col-lg-3 mb-20 mb-lg-0">
<div class="card h-100 d-flex flex-column clickable-card"
<div class="card h-100 d-flex flex-column clickable-card"
onclick="cardClicked(event, '{{ provider.get_absolute_url }}')">
<div class="card__content d-flex flex-column flex-grow-1">
<div class="card__header">
@ -112,8 +112,8 @@
{% if provider.get_logo %}
<div class="me-3 d-flex align-items-center" style="height: 100%;">
<a href="{{ provider.get_absolute_url }}" class="clickable-link">
<img src="{{ provider.get_logo.url }}"
alt="{{ provider.name }}"
<img src="{{ provider.get_logo.url }}"
alt="{{ provider.name }}"
style="max-height: 100px; max-width: 250px; object-fit: contain;">
</a>
</div>
@ -160,7 +160,7 @@
<div class="row">
{% for partner in featured_partners %}
<div class="col-12 col-md-6 col-lg-3 mb-20 mb-lg-0">
<div class="card h-100 d-flex flex-column clickable-card"
<div class="card h-100 d-flex flex-column clickable-card"
onclick="cardClicked(event, '{{ partner.get_absolute_url }}')">
<div class="card__content d-flex flex-column flex-grow-1">
<div class="card__header">
@ -168,8 +168,8 @@
{% if partner.get_logo %}
<div class="me-3 d-flex align-items-center" style="height: 100%;">
<a href="{{ partner.get_absolute_url }}" class="clickable-link">
<img src="{{ partner.get_logo.url }}"
alt="{{ partner.name }}"
<img src="{{ partner.get_logo.url }}"
alt="{{ partner.name }}"
style="max-height: 100px; max-width: 250px; object-fit: contain;">
</a>
</div>
@ -208,7 +208,7 @@
</div>
<div class="col-12 col-lg-8">
<header class="section-primary__header">
<h2 class="section-h1 fs-40 fs-lg-60">Servala - Open Cloud Native Service Hub</h2>
<h2 class="section-h1 fs-40 fs-lg-60">Servala - The Sovereign App Store</h2>
<div class="section-primary__desc">
<p>Servala connects businesses, developers, and cloud service providers on one unique hub with secure, scalable, and easy-to-use cloud-native services.</p>
<p>Discover:</p>
@ -257,4 +257,4 @@
</div>
</div>
</section>
{% endblock %}
{% endblock %}

View file

@ -53,7 +53,7 @@ def json_ld_structured_data(context):
data = {
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Servala - Open Cloud Native Service Hub",
"name": "Servala - The Sovereign App Store",
"url": base_url,
}
json_ld = json.dumps(data, indent=2)
@ -65,7 +65,7 @@ def json_ld_structured_data(context):
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Servala - Open Cloud Native Service Hub",
"name": "Servala - The Sovereign App Store",
"url": base_url,
"description": "Servala connects businesses, developers, and cloud service providers on one unique hub with secure, scalable, and easy-to-use cloud-native services.",
"potentialAction": {

View file

@ -190,7 +190,7 @@ def generate_exoscale_marketplace_yaml(offering):
yaml_key: {
"page_class": "tmpl-marketplace-product",
"html_title": title,
"meta_desc": f"Managed {offering.service.name} by Servala - a product by VSHN. Servala is the Open Cloud Native Service Hub. It connects businesses, developers, and cloud service providers on one unique hub with secure, scalable, and easy-to-use cloud-native services.",
"meta_desc": f"Managed {offering.service.name} by Servala - a product by VSHN. Servala is the The Sovereign App Store. It connects businesses, developers, and cloud service providers on one unique hub with secure, scalable, and easy-to-use cloud-native services.",
"page_header_title": title,
"provider_key": "vshn",
"slug": f"{offering.service.slug}-by-servala",