refactor(frontend): HTML-Styles aufgeräumt und Konsistenz verbessert
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
@@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
type: Journal
|
||||||
|
status: ACTIVE
|
||||||
|
owner: Curator
|
||||||
|
last_update: 2026-05-09
|
||||||
|
---
|
||||||
|
|
||||||
|
# 2026-05-09 — Session Log (Build Hardening, RPM Packaging & Network POC Trial)
|
||||||
|
|
||||||
|
## Kontext
|
||||||
|
- Fokus: Build-System-Optimierung für JDK 25, Etablierung des professionellen Packaging-Workflows (RPM/Conveyor) und erster Real-World Netzwerk-POC.
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
- **Build-System Hardening:** Umstellung auf Gradle 9.5.0 und Kotlin 2.3.21. Sämtliche Build- und Laufzeit-Warnungen (sun.misc.Unsafe, JDK 25 Native Access, SLF4J) wurden durch zentrale Konfiguration in `gradle.properties` und Root-`build.gradle.kts` eliminiert.
|
||||||
|
- **Desktop Shell Stabilisierung:** Behebung von Koin-Inferenzfehlern und SQLDelight-Initialisierungsproblemen in der `main.kt`. Der `FocusRelatedWarning` wurde durch eine frame-safe Fokus-Steuerung behoben.
|
||||||
|
- **Packaging & Distribution:**
|
||||||
|
- RPM-Support für Fedora/RHEL aktiviert.
|
||||||
|
- Hydraulic Conveyor lokal installiert und für Cross-Packaging (Windows MSI) konfiguriert.
|
||||||
|
- Icon-Inkompatibilitäten (8-bit vs 16-bit RGBA) für Linux-Installer gelöst.
|
||||||
|
- Neue Guides für Packaging und Netzwerk-Tests erstellt.
|
||||||
|
- **Netzwerk-POC (Erster Test):**
|
||||||
|
- Das RPM-Paket lies sich auf Fedora 44 (KDE) erfolgreich installieren und starten.
|
||||||
|
- Der Discovery-Mechanismus (mDNS) konnte im ersten Versuch keine Verbindung zwischen IDEA-Instanz und installiertem Gerät herstellen.
|
||||||
|
|
||||||
|
## Changes
|
||||||
|
- `gradle.properties` & `build.gradle.kts`: Globale JVM-Flags für JDK 25.
|
||||||
|
- `frontend/shells/meldestelle-desktop/main.kt`: Robuste Initialisierung & Koin-Fix.
|
||||||
|
- `DeviceInitializationScreen.kt` & Configs: Frame-safe Focus-Handling.
|
||||||
|
- `conveyor.conf`: Korrektur der JDK- und Icon-Pfads.
|
||||||
|
- `docs/02_Guides/Desktop-Packaging-Guide.md`: Neue Anleitung für Installer-Builds.
|
||||||
|
- `docs/90_Reports/Network-POC-Testplan.md`: Neuer Testplan für die Vernetzung.
|
||||||
|
- `setup-firewall-linux.sh`: Hilfsskript für Netzwerk-Ports.
|
||||||
|
|
||||||
|
## Verification
|
||||||
|
- **Build:** SUCCESSFUL (Gradle 9.5.0 / JDK 25) ✓.
|
||||||
|
- **UI:** Keine Fokus-Warnungen mehr beim Start ✓.
|
||||||
|
- **Packaging:** RPM-Build erfolgreich und lauffähig ✓.
|
||||||
|
- **Netzwerk:** Discovery fehlgeschlagen (Untersuchung morgen) ❌.
|
||||||
|
|
||||||
|
## Nächste Schritte
|
||||||
|
1. Debugging der mDNS-Discovery (mögliche Ursache: Fedora 44 KDE Firewall-Besonderheiten oder IPv6-Konflikte).
|
||||||
|
2. Analyse des Startup-Fehlers des Conveyor `tar.gz` Pakets.
|
||||||
|
3. Wiederaufnahme der physischen Turnier-Hierarchie (Meilenstein 1), sobald die Vernetzung steht.
|
||||||
+203
-91
@@ -1,50 +1,56 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en" dir="ltr">
|
<html lang="en" dir="ltr">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
|
<meta http-equiv="X-UA-Compatible" content="ie=edge"/>
|
||||||
<meta name="csrf-token" content="pTASJlt042Vo3XAFbvffgDFlRJIGLAVOJ9LcEFQe" />
|
<meta name="csrf-token" content="pTASJlt042Vo3XAFbvffgDFlRJIGLAVOJ9LcEFQe"/>
|
||||||
<meta name="theme-color" content="#ea580c">
|
<meta name="theme-color" content="#ea580c">
|
||||||
<meta name="title" content="CHANGELOG.md - Realease notes & Feedback Management Tool">
|
<meta name="title" content="CHANGELOG.md - Realease notes & Feedback Management Tool">
|
||||||
<meta name="description" content="Product feedback collection, analyze insights, build actionable roadmaps, and keep users informed with CHANGELOG.md">
|
<meta name="description"
|
||||||
<meta name="keywords" content="product feedback, SaaS feedback platform, product roadmap tool, product updates, changelog software">
|
content="Product feedback collection, analyze insights, build actionable roadmaps, and keep users informed with CHANGELOG.md">
|
||||||
<link rel="alternate" hreflang="x-default" href="http://changelog.md" />
|
<meta name="keywords"
|
||||||
<meta name="language" content="en">
|
content="product feedback, SaaS feedback platform, product roadmap tool, product updates, changelog software">
|
||||||
<meta name="author" content="CHANGELOG.md - Realease notes & Feedback Management Tool">
|
<link rel="alternate" hreflang="x-default" href="http://changelog.md"/>
|
||||||
<meta property="og:url" content="http://changelog.md">
|
<meta name="language" content="en">
|
||||||
<meta property="og:image" content="https://changelog.md/storage/logo/social_share.jpg">
|
<meta name="author" content="CHANGELOG.md - Realease notes & Feedback Management Tool">
|
||||||
<meta property="og:site_name" content="CHANGELOG.md - Realease notes & Feedback Management Tool">
|
<meta property="og:url" content="http://changelog.md">
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:image" content="https://changelog.md/storage/logo/social_share.jpg">
|
||||||
<meta property="og:title" content="CHANGELOG.md - Realease notes & Feedback Management Tool">
|
<meta property="og:site_name" content="CHANGELOG.md - Realease notes & Feedback Management Tool">
|
||||||
<meta property="og:description" content="Product feedback collection, analyze insights, build actionable roadmaps, and keep users informed with CHANGELOG.md">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:image:width" content="600">
|
<meta property="og:title" content="CHANGELOG.md - Realease notes & Feedback Management Tool">
|
||||||
<meta property="og:image:height" content="315">
|
<meta property="og:description"
|
||||||
<meta name="twitter:card" content="summary">
|
content="Product feedback collection, analyze insights, build actionable roadmaps, and keep users informed with CHANGELOG.md">
|
||||||
<meta name="twitter:title" content="CHANGELOG.md - Realease notes & Feedback Management Tool">
|
<meta property="og:image:width" content="600">
|
||||||
<meta name="twitter:image:src" content="https://changelog.md/storage/logo/social_share.jpg">
|
<meta property="og:image:height" content="315">
|
||||||
<meta name="twitter:description" content="Product feedback collection, analyze insights, build actionable roadmaps, and keep users informed with CHANGELOG.md">
|
<meta name="twitter:card" content="summary">
|
||||||
<meta name="theme" content="classic">
|
<meta name="twitter:title" content="CHANGELOG.md - Realease notes & Feedback Management Tool">
|
||||||
<title>CHANGELOG.md - Realease notes & Feedback Management Tool</title>
|
<meta name="twitter:image:src" content="https://changelog.md/storage/logo/social_share.jpg">
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="https://changelog.md/storage/logo/favicon.png">
|
<meta name="twitter:description"
|
||||||
|
content="Product feedback collection, analyze insights, build actionable roadmaps, and keep users informed with CHANGELOG.md">
|
||||||
|
<meta name="theme" content="classic">
|
||||||
|
<title>CHANGELOG.md - Realease notes & Feedback Management Tool</title>
|
||||||
|
<link rel="shortcut icon" type="image/x-icon" href="https://changelog.md/storage/logo/favicon.png">
|
||||||
<style>
|
<style>
|
||||||
:root{--color-primary: #ea580c !important;
|
:root {
|
||||||
|
--color-primary: #ea580c !important;
|
||||||
--theme-color-rgb: 234, 88, 12 !important;
|
--theme-color-rgb: 234, 88, 12 !important;
|
||||||
--color-primary-l: rgba(var(--theme-color-rgb), 0.08) !important;
|
--color-primary-l: rgba(var(--theme-color-rgb), 0.08) !important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://changelog.md/assets/global/fonts/css/fontawesome.css">
|
<link rel="stylesheet" href="https://changelog.md/assets/global/fonts/css/fontawesome.css">
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/owl-carousel/owl.carousel.min.css">
|
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/owl-carousel/owl.carousel.min.css">
|
||||||
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/owl-carousel/owl.theme.default.min.css">
|
<link rel="stylesheet"
|
||||||
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/magnific-poupup/magnific-popup.css">
|
href="https://changelog.md/assets/templates/classic/plugin/owl-carousel/owl.theme.default.min.css">
|
||||||
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/simple-bar/simplebar.min.css">
|
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/magnific-poupup/magnific-popup.css">
|
||||||
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/text-typer/typing-text.css">
|
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/simple-bar/simplebar.min.css">
|
||||||
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/wow-animate/animate.css">
|
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/text-typer/typing-text.css">
|
||||||
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/swiper/swiper-bundle.min.css">
|
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/wow-animate/animate.css">
|
||||||
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/snackbar/snackbar.min.css">
|
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/swiper/swiper-bundle.min.css">
|
||||||
|
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/plugin/snackbar/snackbar.min.css">
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://changelog.md/assets/global/bootstrap/css/bootstrap.min.css">
|
<link rel="stylesheet" href="https://changelog.md/assets/global/bootstrap/css/bootstrap.min.css">
|
||||||
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/css/style.css?ver=3.2.1">
|
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/css/style.css?ver=3.2.1">
|
||||||
@@ -52,20 +58,84 @@
|
|||||||
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/css/app.css?ver=3.2.1">
|
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/css/app.css?ver=3.2.1">
|
||||||
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/css/custom.css?ver=3.2.1">
|
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/css/custom.css?ver=3.2.1">
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/css/dark.css?ver=3.2.1">
|
<link rel="stylesheet" href="https://changelog.md/assets/templates/classic/css/dark.css?ver=3.2.1">
|
||||||
|
|
||||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-157578943-1"></script>
|
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-157578943-1"></script>
|
||||||
<script>
|
<script>
|
||||||
window.dataLayer = window.dataLayer || [];
|
window.dataLayer = window.dataLayer || [];
|
||||||
function gtag(){dataLayer.push(arguments);}
|
|
||||||
gtag('js', new Date());
|
|
||||||
|
|
||||||
gtag('config', 'UA-157578943-1');
|
function gtag() {
|
||||||
</script>
|
dataLayer.push(arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
gtag('js', new Date());
|
||||||
|
|
||||||
|
gtag('config', 'UA-157578943-1');
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript" class="flasher-js">(function() { var rootScript = 'https://cdn.jsdelivr.net/npm/@flasher/flasher@1.3.1/dist/flasher.min.js'; var FLASHER_FLASH_BAG_PLACE_HOLDER = {}; var options = mergeOptions([], FLASHER_FLASH_BAG_PLACE_HOLDER); function mergeOptions(first, second) { return { context: merge(first.context || {}, second.context || {}), envelopes: merge(first.envelopes || [], second.envelopes || []), options: merge(first.options || {}, second.options || {}), scripts: merge(first.scripts || [], second.scripts || []), styles: merge(first.styles || [], second.styles || []), }; } function merge(first, second) { if (Array.isArray(first) && Array.isArray(second)) { return first.concat(second).filter(function(item, index, array) { return array.indexOf(item) === index; }); } return Object.assign({}, first, second); } function renderOptions(options) { if(!window.hasOwnProperty('flasher')) { console.error('Flasher is not loaded'); return; } requestAnimationFrame(function () { window.flasher.render(options); }); } function render(options) { if ('loading' !== document.readyState) { renderOptions(options); return; } document.addEventListener('DOMContentLoaded', function() { renderOptions(options); }); } if (1 === document.querySelectorAll('script.flasher-js').length) { document.addEventListener('flasher:render', function (event) { render(event.detail); }); } if (window.hasOwnProperty('flasher') || !rootScript || document.querySelector('script[src="' + rootScript + '"]')) { render(options); } else { var tag = document.createElement('script'); tag.setAttribute('src', rootScript); tag.setAttribute('type', 'text/javascript'); tag.onload = function () { render(options); }; document.head.appendChild(tag); }})();</script>
|
<script type="text/javascript" class="flasher-js">(function () {
|
||||||
|
var rootScript = 'https://cdn.jsdelivr.net/npm/@flasher/flasher@1.3.1/dist/flasher.min.js';
|
||||||
|
var FLASHER_FLASH_BAG_PLACE_HOLDER = {};
|
||||||
|
var options = mergeOptions([], FLASHER_FLASH_BAG_PLACE_HOLDER);
|
||||||
|
|
||||||
|
function mergeOptions(first, second) {
|
||||||
|
return {
|
||||||
|
context: merge(first.context || {}, second.context || {}),
|
||||||
|
envelopes: merge(first.envelopes || [], second.envelopes || []),
|
||||||
|
options: merge(first.options || {}, second.options || {}),
|
||||||
|
scripts: merge(first.scripts || [], second.scripts || []),
|
||||||
|
styles: merge(first.styles || [], second.styles || []),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function merge(first, second) {
|
||||||
|
if (Array.isArray(first) && Array.isArray(second)) {
|
||||||
|
return first.concat(second).filter(function (item, index, array) {
|
||||||
|
return array.indexOf(item) === index;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return Object.assign({}, first, second);
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderOptions(options) {
|
||||||
|
if (!window.hasOwnProperty('flasher')) {
|
||||||
|
console.error('Flasher is not loaded');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
requestAnimationFrame(function () {
|
||||||
|
window.flasher.render(options);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function render(options) {
|
||||||
|
if ('loading' !== document.readyState) {
|
||||||
|
renderOptions(options);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
renderOptions(options);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (1 === document.querySelectorAll('script.flasher-js').length) {
|
||||||
|
document.addEventListener('flasher:render', function (event) {
|
||||||
|
render(event.detail);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (window.hasOwnProperty('flasher') || !rootScript || document.querySelector('script[src="' + rootScript + '"]')) {
|
||||||
|
render(options);
|
||||||
|
} else {
|
||||||
|
var tag = document.createElement('script');
|
||||||
|
tag.setAttribute('src', rootScript);
|
||||||
|
tag.setAttribute('type', 'text/javascript');
|
||||||
|
tag.onload = function () {
|
||||||
|
render(options);
|
||||||
|
};
|
||||||
|
document.head.appendChild(tag);
|
||||||
|
}
|
||||||
|
})();</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
@@ -73,15 +143,19 @@ gtag('config', 'UA-157578943-1');
|
|||||||
<div class="desktop-nav">
|
<div class="desktop-nav">
|
||||||
<nav class="navbar navbar-expand-lg navbar-light">
|
<nav class="navbar navbar-expand-lg navbar-light">
|
||||||
<a class="navbar-brand" href="http://changelog.md">
|
<a class="navbar-brand" href="http://changelog.md">
|
||||||
<img class="white-logo" src="https://changelog.md/storage/logo/classic-theme_footer_logo.png" alt="CHANGELOG.md - Realease notes & Feedback Management Tool"/>
|
<img class="white-logo" src="https://changelog.md/storage/logo/classic-theme_footer_logo.png"
|
||||||
<img class="main-logo" src="https://changelog.md/storage/logo/classic-theme_logo.png" alt="CHANGELOG.md - Realease notes & Feedback Management Tool"/>
|
alt="CHANGELOG.md - Realease notes & Feedback Management Tool"/>
|
||||||
|
<img class="main-logo" src="https://changelog.md/storage/logo/classic-theme_logo.png"
|
||||||
|
alt="CHANGELOG.md - Realease notes & Feedback Management Tool"/>
|
||||||
</a>
|
</a>
|
||||||
<div class="navbar-collapse offcanvas offcanvas-nav offcanvas-start" tabindex="-1" id="offcanvasExample"
|
<div class="navbar-collapse offcanvas offcanvas-nav offcanvas-start" tabindex="-1" id="offcanvasExample"
|
||||||
aria-labelledby="offcanvasExampleLabel">
|
aria-labelledby="offcanvasExampleLabel">
|
||||||
<div class="offcanvas-header d-lg-none">
|
<div class="offcanvas-header d-lg-none">
|
||||||
<h3 class="navbar-brand offcanvas-title mb-0 font-24" id="offcanvasExampleLabel">
|
<h3 class="navbar-brand offcanvas-title mb-0 font-24" id="offcanvasExampleLabel">
|
||||||
<img class="white-logo" src="https://changelog.md/storage/logo/classic-theme_footer_logo.png" alt="CHANGELOG.md - Realease notes & Feedback Management Tool"/>
|
<img class="white-logo" src="https://changelog.md/storage/logo/classic-theme_footer_logo.png"
|
||||||
<img class="main-logo" src="https://changelog.md/storage/logo/classic-theme_logo.png" alt="CHANGELOG.md - Realease notes & Feedback Management Tool"/>
|
alt="CHANGELOG.md - Realease notes & Feedback Management Tool"/>
|
||||||
|
<img class="main-logo" src="https://changelog.md/storage/logo/classic-theme_logo.png"
|
||||||
|
alt="CHANGELOG.md - Realease notes & Feedback Management Tool"/>
|
||||||
</h3>
|
</h3>
|
||||||
<button type="button" class="icon-group -secondary" data-bs-dismiss="offcanvas"
|
<button type="button" class="icon-group -secondary" data-bs-dismiss="offcanvas"
|
||||||
aria-label="Close">
|
aria-label="Close">
|
||||||
@@ -122,7 +196,7 @@ gtag('config', 'UA-157578943-1');
|
|||||||
</li>
|
</li>
|
||||||
<!--/ # When user logout or new user login signup button-->
|
<!--/ # When user logout or new user login signup button-->
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="nav-others d-flex align-items-center">
|
<div class="nav-others d-flex align-items-center">
|
||||||
@@ -134,7 +208,8 @@ gtag('config', 'UA-157578943-1');
|
|||||||
class="ml-16 button -secondary text-dark-1 px-15 rounded-pill fw-semibold font-16">Log in
|
class="ml-16 button -secondary text-dark-1 px-15 rounded-pill fw-semibold font-16">Log in
|
||||||
</a>
|
</a>
|
||||||
<a href="http://changelog.md/signup"
|
<a href="http://changelog.md/signup"
|
||||||
class="ml-16 button bg-primary text-white px-15 rounded-pill fw-semibold font-16 d-none d-md-flex">Sign up
|
class="ml-16 button bg-primary text-white px-15 rounded-pill fw-semibold font-16 d-none d-md-flex">Sign
|
||||||
|
up
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<!--/ # When user logout or new user login signup button-->
|
<!--/ # When user logout or new user login signup button-->
|
||||||
@@ -148,13 +223,13 @@ gtag('config', 'UA-157578943-1');
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--/ # On responsive hamburger menu button for offcanvas desktop nav-->
|
<!--/ # On responsive hamburger menu button for offcanvas desktop nav-->
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<main class="pt-70">
|
<main class="pt-70">
|
||||||
<!--Hero section start-->
|
<!--Hero section start-->
|
||||||
<section class="container py-60" data-cue="fadeIn">
|
<section class="container py-60" data-cue="fadeIn">
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
@@ -169,7 +244,8 @@ gtag('config', 'UA-157578943-1');
|
|||||||
</div>
|
</div>
|
||||||
<div class="d-flex flex-column gap-3 mx-lg-5">
|
<div class="d-flex flex-column gap-3 mx-lg-5">
|
||||||
<h1 class="mb-0 display-4 fw-bold">Create better products driven by customer feedback</h1>
|
<h1 class="mb-0 display-4 fw-bold">Create better products driven by customer feedback</h1>
|
||||||
<p class="mb-0 lead">Simplify feedback collection, lighten support tasks, and share product updates—all in one powerful tool.</p>
|
<p class="mb-0 lead">Simplify feedback collection, lighten support tasks, and share product updates—all in
|
||||||
|
one powerful tool.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex flex-row align-items-center gap-4 justify-content-center">
|
<div class="d-flex flex-row align-items-center gap-4 justify-content-center">
|
||||||
<a href="http://changelog.md/login" class="button -primary">Get Started</a>
|
<a href="http://changelog.md/login" class="button -primary">Get Started</a>
|
||||||
@@ -183,7 +259,8 @@ gtag('config', 'UA-157578943-1');
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<div class="pattern-square" style="background-image: url(https://changelog.md/assets/templates/classic/images/home/bg-pattern.png)"></div>
|
<div class="pattern-square"
|
||||||
|
style="background-image: url(https://changelog.md/assets/templates/classic/images/home/bg-pattern.png)"></div>
|
||||||
<section class="container py-60 xl-py-32">
|
<section class="container py-60 xl-py-32">
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<div class="col-md-10 col-12">
|
<div class="col-md-10 col-12">
|
||||||
@@ -283,7 +360,8 @@ gtag('config', 'UA-157578943-1');
|
|||||||
</div>
|
</div>
|
||||||
<div class="d-flex flex-column gap-3 mx-60 lg-mx-0">
|
<div class="d-flex flex-column gap-3 mx-60 lg-mx-0">
|
||||||
<h1 class="mb-0">All-in-One Platform for Customer Feedback</h1>
|
<h1 class="mb-0">All-in-One Platform for Customer Feedback</h1>
|
||||||
<p class="mb-0 font-18">Centralize your feedback, prioritize your next steps, and keep everyone informed.</p>
|
<p class="mb-0 font-18">Centralize your feedback, prioritize your next steps, and keep everyone
|
||||||
|
informed.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -338,7 +416,8 @@ gtag('config', 'UA-157578943-1');
|
|||||||
class="text-uppercase font-14 ms-3 fw-bold ls-lg">Powerful SaaS solutions.</span>
|
class="text-uppercase font-14 ms-3 fw-bold ls-lg">Powerful SaaS solutions.</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 class="my-24">Feedback Management</h1>
|
<h1 class="my-24">Feedback Management</h1>
|
||||||
<p>Don’t let valuable ideas fall through the cracks. Use a single tool to collect, analyze, and organize feedback and feature requests efficiently.</p>
|
<p>Don’t let valuable ideas fall through the cracks. Use a single tool to collect, analyze, and organize
|
||||||
|
feedback and feature requests efficiently.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>- Capture customer input seamlessly from conversations with Autopilot.</li>
|
<li>- Capture customer input seamlessly from conversations with Autopilot.</li>
|
||||||
<li>- Detect and merge duplicate requests to better quantify user needs.</li>
|
<li>- Detect and merge duplicate requests to better quantify user needs.</li>
|
||||||
@@ -397,7 +476,8 @@ gtag('config', 'UA-157578943-1');
|
|||||||
class="text-uppercase font-14 ms-3 fw-bold ls-lg">Management & prioritization</span>
|
class="text-uppercase font-14 ms-3 fw-bold ls-lg">Management & prioritization</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 class="my-24">Prioritize feature requests</h1>
|
<h1 class="my-24">Prioritize feature requests</h1>
|
||||||
<p>Create a prioritization formula to score feedback and feature requests, ensuring you focus on the most impactful features.</p>
|
<p>Create a prioritization formula to score feedback and feature requests, ensuring you focus on the most
|
||||||
|
impactful features.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>- Adjust impact and effort factors to fit your needs.</li>
|
<li>- Adjust impact and effort factors to fit your needs.</li>
|
||||||
<li>- Include business-specific post fields for greater flexibility.</li>
|
<li>- Include business-specific post fields for greater flexibility.</li>
|
||||||
@@ -466,7 +546,8 @@ gtag('config', 'UA-157578943-1');
|
|||||||
</div>
|
</div>
|
||||||
<div class="d-flex justify-content-end gap-5">
|
<div class="d-flex justify-content-end gap-5">
|
||||||
<h1 class="mb-0 w-50">Easy to set up and use</h1>
|
<h1 class="mb-0 w-50">Easy to set up and use</h1>
|
||||||
<p class="mb-0 w-50 text-md-end font-18">Simplify feedback collection, lighten support workloads, and announce product updates—all with a single tool.</p>
|
<p class="mb-0 w-50 text-md-end font-18">Simplify feedback collection, lighten support workloads, and
|
||||||
|
announce product updates—all with a single tool.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -572,7 +653,8 @@ gtag('config', 'UA-157578943-1');
|
|||||||
</div>
|
</div>
|
||||||
<div class="ms-4">
|
<div class="ms-4">
|
||||||
<h4>Bug Reporting</h4>
|
<h4>Bug Reporting</h4>
|
||||||
<p class="mb-0">Receive instant notifications when users report bugs, keeping you ahead of critical issues.</p>
|
<p class="mb-0">Receive instant notifications when users report bugs, keeping you ahead of critical
|
||||||
|
issues.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -587,7 +669,8 @@ gtag('config', 'UA-157578943-1');
|
|||||||
</div>
|
</div>
|
||||||
<div class="ms-4">
|
<div class="ms-4">
|
||||||
<h4>Uptime monitoring service</h4>
|
<h4>Uptime monitoring service</h4>
|
||||||
<p class="mb-0">Create beautiful status pages & incident management reports and keep your visitors updated.(Soon)</p>
|
<p class="mb-0">Create beautiful status pages & incident management reports and keep your visitors
|
||||||
|
updated.(Soon)</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -598,8 +681,6 @@ gtag('config', 'UA-157578943-1');
|
|||||||
<!--More focus end-->
|
<!--More focus end-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<section class="container my-60" data-cue="zoomIn">
|
<section class="container my-60" data-cue="zoomIn">
|
||||||
<div class="container theme-gradient-dark rounded-4 shadow-3">
|
<div class="container theme-gradient-dark rounded-4 shadow-3">
|
||||||
<div class="p-5 py-50">
|
<div class="p-5 py-50">
|
||||||
@@ -612,7 +693,11 @@ gtag('config', 'UA-157578943-1');
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-xl-7">
|
<div class="col-xl-7">
|
||||||
<form action="http://changelog.md/newsletter" method="post" class="d-flex">
|
<form action="http://changelog.md/newsletter" method="post" class="d-flex">
|
||||||
<input type="hidden" name="_token" value="pTASJlt042Vo3XAFbvffgDFlRJIGLAVOJ9LcEFQe"> <input name="email" class="form-control rounded-5 h-48-px me-3 px-20" placeholder="Enter your email address" type="email" value="">
|
<input type="hidden" name="_token" value="pTASJlt042Vo3XAFbvffgDFlRJIGLAVOJ9LcEFQe"> <input name="email"
|
||||||
|
class="form-control rounded-5 h-48-px me-3 px-20"
|
||||||
|
placeholder="Enter your email address"
|
||||||
|
type="email"
|
||||||
|
value="">
|
||||||
<button class="button -primary -lg rounded-5">Subscribe</button>
|
<button class="button -primary -lg rounded-5">Subscribe</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
@@ -627,7 +712,8 @@ gtag('config', 'UA-157578943-1');
|
|||||||
<div class="col-xl-6 col-lg-10 col-12">
|
<div class="col-xl-6 col-lg-10 col-12">
|
||||||
<div class="text-center d-flex flex-column gap-4">
|
<div class="text-center d-flex flex-column gap-4">
|
||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
<span class="bg-primary-l text-primary border-primary border px-3 py-2 font-14 rounded-pill lh-1 align-items-center d-flex">
|
<span
|
||||||
|
class="bg-primary-l text-primary border-primary border px-3 py-2 font-14 rounded-pill lh-1 align-items-center d-flex">
|
||||||
<i class="fa-regular fa-bolt"></i>
|
<i class="fa-regular fa-bolt"></i>
|
||||||
<span class="ms-1 text-uppercase ls-md fw-semibold">Help Center</span>
|
<span class="ms-1 text-uppercase ls-md fw-semibold">Help Center</span>
|
||||||
</span>
|
</span>
|
||||||
@@ -645,72 +731,98 @@ gtag('config', 'UA-157578943-1');
|
|||||||
<div class="accordion" id="accordionExample">
|
<div class="accordion" id="accordionExample">
|
||||||
<div class="accordion-item active ">
|
<div class="accordion-item active ">
|
||||||
<h2 class="accordion-header" id="heading1">
|
<h2 class="accordion-header" id="heading1">
|
||||||
<button class="accordion-button " type="button" data-bs-toggle="collapse" data-bs-target="#collapse1" aria-expanded="" aria-controls="collapse1">
|
<button class="accordion-button " type="button" data-bs-toggle="collapse" data-bs-target="#collapse1"
|
||||||
|
aria-expanded="" aria-controls="collapse1">
|
||||||
What is CHANGELOG.md?
|
What is CHANGELOG.md?
|
||||||
</button>
|
</button>
|
||||||
</h2>
|
</h2>
|
||||||
<div id="collapse1" class="accordion-collapse collapse show " aria-labelledby="heading1" data-bs-parent="#accordionExample">
|
<div id="collapse1" class="accordion-collapse collapse show " aria-labelledby="heading1"
|
||||||
<div class="accordion-body"><p>CHANGELOG.md is a SaaS platform designed to help you collect, analyze, and act on customer feedback to uncover valuable insights and make informed product decisions.</p></div>
|
data-bs-parent="#accordionExample">
|
||||||
|
<div class="accordion-body"><p>CHANGELOG.md is a SaaS platform designed to help you collect, analyze,
|
||||||
|
and act on customer feedback to uncover valuable insights and make informed product decisions.</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item ">
|
<div class="accordion-item ">
|
||||||
<h2 class="accordion-header" id="heading2">
|
<h2 class="accordion-header" id="heading2">
|
||||||
<button class="accordion-button collapsed " type="button" data-bs-toggle="collapse" data-bs-target="#collapse2" aria-expanded="" aria-controls="collapse2">
|
<button class="accordion-button collapsed " type="button" data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#collapse2" aria-expanded="" aria-controls="collapse2">
|
||||||
Can I use CHANGELOG.md to prioritize feature requests?
|
Can I use CHANGELOG.md to prioritize feature requests?
|
||||||
</button>
|
</button>
|
||||||
</h2>
|
</h2>
|
||||||
<div id="collapse2" class="accordion-collapse collapse " aria-labelledby="heading2" data-bs-parent="#accordionExample">
|
<div id="collapse2" class="accordion-collapse collapse " aria-labelledby="heading2"
|
||||||
<div class="accordion-body"><p>Absolutely! With our prioritization tools, you can score feedback and feature requests based on factors like impact and effort, helping you focus on what matters most.</p></div>
|
data-bs-parent="#accordionExample">
|
||||||
|
<div class="accordion-body"><p>Absolutely! With our prioritization tools, you can score feedback and
|
||||||
|
feature requests based on factors like impact and effort, helping you focus on what matters
|
||||||
|
most.</p></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item ">
|
<div class="accordion-item ">
|
||||||
<h2 class="accordion-header" id="heading3">
|
<h2 class="accordion-header" id="heading3">
|
||||||
<button class="accordion-button collapsed " type="button" data-bs-toggle="collapse" data-bs-target="#collapse3" aria-expanded="" aria-controls="collapse3">
|
<button class="accordion-button collapsed " type="button" data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#collapse3" aria-expanded="" aria-controls="collapse3">
|
||||||
How does CHANGELOG.md help with roadmapping?
|
How does CHANGELOG.md help with roadmapping?
|
||||||
</button>
|
</button>
|
||||||
</h2>
|
</h2>
|
||||||
<div id="collapse3" class="accordion-collapse collapse " aria-labelledby="heading3" data-bs-parent="#accordionExample">
|
<div id="collapse3" class="accordion-collapse collapse " aria-labelledby="heading3"
|
||||||
<div class="accordion-body"><p>CHANGELOG.md allows you to build a clear and actionable roadmap by organizing feedback and aligning it with your product vision.</p></div>
|
data-bs-parent="#accordionExample">
|
||||||
|
<div class="accordion-body"><p>CHANGELOG.md allows you to build a clear and actionable roadmap by
|
||||||
|
organizing feedback and aligning it with your product vision.</p></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item ">
|
<div class="accordion-item ">
|
||||||
<h2 class="accordion-header" id="heading4">
|
<h2 class="accordion-header" id="heading4">
|
||||||
<button class="accordion-button collapsed " type="button" data-bs-toggle="collapse" data-bs-target="#collapse4" aria-expanded="" aria-controls="collapse4">
|
<button class="accordion-button collapsed " type="button" data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#collapse4" aria-expanded="" aria-controls="collapse4">
|
||||||
Can I share updates with my users?
|
Can I share updates with my users?
|
||||||
</button>
|
</button>
|
||||||
</h2>
|
</h2>
|
||||||
<div id="collapse4" class="accordion-collapse collapse " aria-labelledby="heading4" data-bs-parent="#accordionExample">
|
<div id="collapse4" class="accordion-collapse collapse " aria-labelledby="heading4"
|
||||||
<div class="accordion-body"><p>Yes! CHANGELOG.md includes a changelog feature where you can publish detailed release notes, link them to specific feature requests, and notify users who requested those features automatically.</p></div>
|
data-bs-parent="#accordionExample">
|
||||||
|
<div class="accordion-body"><p>Yes! CHANGELOG.md includes a changelog feature where you can publish
|
||||||
|
detailed release notes, link them to specific feature requests, and notify users who requested those
|
||||||
|
features automatically.</p></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item ">
|
<div class="accordion-item ">
|
||||||
<h2 class="accordion-header" id="heading5">
|
<h2 class="accordion-header" id="heading5">
|
||||||
<button class="accordion-button collapsed " type="button" data-bs-toggle="collapse" data-bs-target="#collapse5" aria-expanded="" aria-controls="collapse5">
|
<button class="accordion-button collapsed " type="button" data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#collapse5" aria-expanded="" aria-controls="collapse5">
|
||||||
Does CHANGELOG.md integrate with other tools?
|
Does CHANGELOG.md integrate with other tools?
|
||||||
</button>
|
</button>
|
||||||
</h2>
|
</h2>
|
||||||
<div id="collapse5" class="accordion-collapse collapse " aria-labelledby="heading5" data-bs-parent="#accordionExample">
|
<div id="collapse5" class="accordion-collapse collapse " aria-labelledby="heading5"
|
||||||
<div class="accordion-body"><p>Yes, CHANGELOG.md integrates with popular customer support and project management tools, allowing your team to seamlessly capture and manage feedback within their existing workflows.</p></div>
|
data-bs-parent="#accordionExample">
|
||||||
|
<div class="accordion-body"><p>Yes, CHANGELOG.md integrates with popular customer support and project
|
||||||
|
management tools, allowing your team to seamlessly capture and manage feedback within their existing
|
||||||
|
workflows.</p></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item ">
|
<div class="accordion-item ">
|
||||||
<h2 class="accordion-header" id="heading6">
|
<h2 class="accordion-header" id="heading6">
|
||||||
<button class="accordion-button collapsed " type="button" data-bs-toggle="collapse" data-bs-target="#collapse6" aria-expanded="" aria-controls="collapse6">
|
<button class="accordion-button collapsed " type="button" data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#collapse6" aria-expanded="" aria-controls="collapse6">
|
||||||
Who can benefit from using CHANGELOG.md?
|
Who can benefit from using CHANGELOG.md?
|
||||||
</button>
|
</button>
|
||||||
</h2>
|
</h2>
|
||||||
<div id="collapse6" class="accordion-collapse collapse " aria-labelledby="heading6" data-bs-parent="#accordionExample">
|
<div id="collapse6" class="accordion-collapse collapse " aria-labelledby="heading6"
|
||||||
<div class="accordion-body"><p>Product managers, customer success teams, and anyone involved in building and improving products can benefit from CHANGELOG.md. It’s perfect for startups, SaaS companies, and organizations looking to make data-driven product decisions.</p></div>
|
data-bs-parent="#accordionExample">
|
||||||
|
<div class="accordion-body"><p>Product managers, customer success teams, and anyone involved in
|
||||||
|
building and improving products can benefit from CHANGELOG.md. It’s perfect for startups, SaaS
|
||||||
|
companies, and organizations looking to make data-driven product decisions.</p></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="accordion-item ">
|
<div class="accordion-item ">
|
||||||
<h2 class="accordion-header" id="heading7">
|
<h2 class="accordion-header" id="heading7">
|
||||||
<button class="accordion-button collapsed " type="button" data-bs-toggle="collapse" data-bs-target="#collapse7" aria-expanded="" aria-controls="collapse7">
|
<button class="accordion-button collapsed " type="button" data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#collapse7" aria-expanded="" aria-controls="collapse7">
|
||||||
How do I get started with CHANGELOG.md?
|
How do I get started with CHANGELOG.md?
|
||||||
</button>
|
</button>
|
||||||
</h2>
|
</h2>
|
||||||
<div id="collapse7" class="accordion-collapse collapse " aria-labelledby="heading7" data-bs-parent="#accordionExample">
|
<div id="collapse7" class="accordion-collapse collapse " aria-labelledby="heading7"
|
||||||
<div class="accordion-body"><p>Getting started is simple! Sign up for a free trial, set up your feedback portal, and start collecting insights to drive your product decisions.</p></div>
|
data-bs-parent="#accordionExample">
|
||||||
|
<div class="accordion-body"><p>Getting started is simple! Sign up for a free trial, set up your
|
||||||
|
feedback portal, and start collecting insights to drive your product decisions.</p></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -722,14 +834,14 @@ gtag('config', 'UA-157578943-1');
|
|||||||
<!--FAQ end-->
|
<!--FAQ end-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--Call to action start-->
|
<!--Call to action start-->
|
||||||
<section class="container lg-mb-auto mb-60 py-60 xl-py-32" data-cue="zoomIn">
|
<section class="container lg-mb-auto mb-60 py-60 xl-py-32" data-cue="zoomIn">
|
||||||
<div class="container theme-gradient-dark rounded-4 shadow-3">
|
<div class="container theme-gradient-dark rounded-4 shadow-3">
|
||||||
<div class="p-5 py-100 text-center">
|
<div class="p-5 py-100 text-center">
|
||||||
<div class="d-flex flex-column gap-4">
|
<div class="d-flex flex-column gap-4">
|
||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
<span class="bg-primary-l text-primary border-primary border px-3 py-2 font-14 rounded-pill lh-1 align-items-center d-flex">
|
<span
|
||||||
|
class="bg-primary-l text-primary border-primary border px-3 py-2 font-14 rounded-pill lh-1 align-items-center d-flex">
|
||||||
<i class="fa-regular fa-bolt"></i>
|
<i class="fa-regular fa-bolt"></i>
|
||||||
<span class="ms-1 text-uppercase ls-md fw-semibold">More features. More power.</span>
|
<span class="ms-1 text-uppercase ls-md fw-semibold">More features. More power.</span>
|
||||||
</span>
|
</span>
|
||||||
@@ -749,7 +861,7 @@ gtag('config', 'UA-157578943-1');
|
|||||||
<!--Call to action end-->
|
<!--Call to action end-->
|
||||||
|
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<!-- Footer -->
|
<!-- Footer -->
|
||||||
<footer>
|
<footer>
|
||||||
|
|||||||
Reference in New Issue
Block a user