diff --git a/core/installer/welcome/fake_app_directory.go b/core/installer/welcome/fake_app_directory.go
new file mode 100644
index 0000000..a8470d5
--- /dev/null
+++ b/core/installer/welcome/fake_app_directory.go
@@ -0,0 +1,112 @@
+package welcome
+
+type FakeAppDirectory struct {
+}
+
+func (s *FakeAppDirectory) GetAllApps() ([]AppLauncherInfo, error) {
+	// TODO(dtabidze): use repoIO to get actual info
+	googleInfo := AppLauncherInfo{
+		Name:        "Memberships",
+		Description: "Memberships Description",
+		Icon:        "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 24 24'><path fill='currentColor' d='M15.43 15.48c-1.1-.49-2.26-.73-3.43-.73c-1.18 0-2.33.25-3.43.73c-.23.1-.4.29-.49.52h7.85a.978.978 0 0 0-.5-.52m-2.49-6.69C12.86 8.33 12.47 8 12 8s-.86.33-.94.79l-.2 1.21h2.28z' opacity='0.3'/><path fill='currentColor' d='M10.27 12h3.46a1.5 1.5 0 0 0 1.48-1.75l-.3-1.79a2.951 2.951 0 0 0-5.82.01l-.3 1.79c-.15.91.55 1.74 1.48 1.74m.79-3.21c.08-.46.47-.79.94-.79s.86.33.94.79l.2 1.21h-2.28zm-9.4 2.32c-.13.26-.18.57-.1.88c.16.69.76 1.03 1.53 1h1.95c.83 0 1.51-.58 1.51-1.29c0-.14-.03-.27-.07-.4c-.01-.03-.01-.05.01-.08c.09-.16.14-.34.14-.53c0-.31-.14-.6-.36-.82c-.03-.03-.03-.06-.02-.1c.07-.2.07-.43.01-.65a1.12 1.12 0 0 0-.99-.74a.09.09 0 0 1-.07-.03C5.03 8.14 4.72 8 4.37 8c-.3 0-.57.1-.75.26c-.03.03-.06.03-.09.02a1.24 1.24 0 0 0-1.7 1.03c0 .02-.01.04-.03.06c-.29.26-.46.65-.41 1.05c.03.22.12.43.25.6c.03.02.03.06.02.09m14.58 2.54c-1.17-.52-2.61-.9-4.24-.9c-1.63 0-3.07.39-4.24.9A2.988 2.988 0 0 0 6 16.39V18h12v-1.61c0-1.18-.68-2.26-1.76-2.74M8.07 16a.96.96 0 0 1 .49-.52c1.1-.49 2.26-.73 3.43-.73c1.18 0 2.33.25 3.43.73c.23.1.4.29.49.52zm-6.85-1.42A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29c-.37-.06-.74-.1-1.13-.1c-.99 0-1.93.21-2.78.58m21.56 0A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1c.4.68.63 1.46.63 2.29V18H24v-1.57c0-.81-.48-1.53-1.22-1.85M22 11v-.5c0-1.1-.9-2-2-2h-2c-.42 0-.65.48-.39.81l.7.63c-.19.31-.31.67-.31 1.06c0 1.1.9 2 2 2s2-.9 2-2'/></svg>",
+		Help: []HelpDocument{
+			{
+				Title: "Memberships search",
+				Contents: `In the realm of coding, every keystroke is a brushstroke on the canvas of innovation. It's a domain where strings of characters dance to the rhythm of logic, constructing intricate digital symphonies. From the crisp lines of Python to the curly braces of JavaScript, each language tells a unique story, weaving together the fabric of our digital world.
+
+				In this labyrinth of code, programmers are modern-day alchemists, transforming abstract ideas into tangible realities. They navigate through the maze of syntax, debugging their creations with the precision of a surgeon. Errors are not failures but rather stepping stones on the path to mastery, each one offering a lesson in resilience and problem-solving.
+				
+				In the realm of algorithms, complexity is the name of the game. Programmers orchestrate elegant solutions to complex problems, employing a myriad of data structures and algorithms to optimize performance and efficiency. From sorting algorithms that arrange data in perfect harmony to search algorithms that uncover hidden treasures within vast datasets, the possibilities are as boundless as the imagination itself.
+				
+				But coding is not just about logic and structure; it's also a form of expression. Just as a poet wields words to evoke emotion, a coder crafts lines of code to breathe life into their creations. Whether it's a sleek user interface or a powerful backend system, every project is an opportunity to leave a mark on the digital landscape.
+				
+				In the collaborative ecosystem of coding, communities flourish and ideas thrive. Open-source repositories serve as the collective knowledge base of humanity, where programmers from around the globe collaborate to build upon each other's work. It's a testament to the power of collective intelligence, where the sum is truly greater than its parts.
+				
+				As we journey deeper into the digital age, the importance of coding becomes increasingly evident. It's not just a technical skill but a language of the future, a gateway to unlocking the full potential of technology. So let us embrace the beauty of code, for in its intricate tapestry lies the blueprint for tomorrow's innovations.`,
+				Children: []HelpDocument{
+					{
+						Title:    "Nested Child 1",
+						Contents: "Nested Child 1 Content",
+						Children: nil,
+					},
+					{
+						Title:    "Nested Child 2",
+						Contents: "Nested Child 2 Content",
+						Children: []HelpDocument{
+							{
+								Title:    "Nested Child 2.1",
+								Contents: "Nested Child 2.1 Content",
+								Children: []HelpDocument{
+									{
+										Title:    "Nested Child 2.1.1",
+										Contents: "Nested Child 2.1.1 Content",
+										Children: nil,
+									},
+									{
+										Title:    "Nested Child 2.1.2",
+										Contents: "Nested Child 2.1.2 Content",
+										Children: nil,
+									},
+								},
+							},
+							{
+								Title:    "Nested Child 2.2",
+								Contents: "Nested Child 2.2 Content",
+								Children: nil,
+							},
+						},
+					},
+					{
+						Title:    "Nested Child 3",
+						Contents: "Nested Child 3 Content",
+						Children: nil,
+					},
+				},
+			},
+			{
+				Title:    "Another Memberships search",
+				Contents: "Another Memberships Content",
+				Children: []HelpDocument{
+					{
+						Title:    "Another Nested Child 1",
+						Contents: "Another Nested Child 1 Content",
+						Children: nil,
+					},
+					{
+						Title:    "Another Nested Child 2",
+						Contents: "Another Nested Child 2 Content",
+						Children: nil,
+					},
+				},
+			},
+		},
+		Url: "https://memberships.p.v1.dodo.cloud",
+	}
+	gitInfo := AppLauncherInfo{
+		Name:        "Gerrit",
+		Description: "Gerrit Description",
+		Icon:        "<svg fill='#000000' width='50px' height='50px' viewBox='0 0 24 24' role='img' xmlns='http://www.w3.org/2000/svg'><g id='SVGRepo_bgCarrier' stroke-width='0'></g><g id='SVGRepo_tracerCarrier' stroke-linecap='round' stroke-linejoin='round'></g><g id='SVGRepo_iconCarrier'><title>Gerrit icon</title><path d='M12.648 2.678l-.245-.266c.004-.004.29-.268.413-.41.121-.146.342-.484.346-.486l.301.195c-.014.016-.234.359-.375.522-.137.165-.428.432-.44.445zm1.577 10.597c-.012-.004-.24-.154-.365-.221-.117-.059-.32-.146-.422-.191l.213-.612-.898-.444-.286.871c-.174.004-.713.053-1.51.389-.959.4-1.688 1.025-1.695 1.029l-.143.125.641.025.02-.016c.006-.006.721-.535 1.119-.705.088-.037.207-.074.33-.105-.209.105-.439.227-.6.32-.199.119-.57.381-.586.393l-.186.129.682.016.018-.01c.012-.008 1.164-.623 1.789-.76l.196-.047c.145-.037.246-.064.422-.064.156 0 .369.021.688.07.398.059.66.158.664.16l.24.094-.322-.436-.012-.008.003-.002zm-8.98-7.298h-.029l-1.006.916v.03c-.016.266.078.52.258.716.182.196.42.309.686.319h.043c.531 0 .965-.413.992-.94.023-.545-.399-1.01-.944-1.041zM5.2 7.808h-.041c-.117-.005-.23-.032-.33-.085.045.008.098.01.148.002.284-.035.481-.291.448-.575-.035-.279-.293-.48-.576-.442-.264.034-.457.267-.446.531-.031-.09-.045-.183-.045-.28l.912-.833c.446.042.79.431.768.882s-.391.8-.842.8H5.2zm9.329-3.725l-.293-.195-.41.265-.395-.285-.301.18.404.291-.416.27.297.18.4-.254.387.28.309-.169-.407-.296M24 19.525c-.213-.209-.418-.416-.629-.627-.48-.488-.957-.984-1.418-1.486-.547-.598-1.082-1.207-1.582-1.844-.225-.283-.441-.58-.646-.881-.254-.387-.469-.795-.668-1.215-.211-.445-.398-.9-.576-1.356.24.21.463.444.664.692.021-.215.041-.43.059-.648l.023-.322c0-.033.012-.066-.008-.096-.016-.029-.033-.051-.053-.075-.121-.149-.264-.282-.406-.413-.189-.181-.387-.36-.584-.533l-.18-.156c-.027-.027-.057-.051-.086-.074-.031-.03-.041-.096-.055-.136l-.154-.479c.607.285 1.109.741 1.578 1.215.004-.219.004-.436 0-.652 0-.114-.002-.229-.008-.346 0-.029.006-.1-.016-.127-.012-.02-.031-.036-.043-.055-.109-.117-.234-.217-.357-.314-.172-.143-.35-.277-.527-.408-.156-.117-.318-.232-.477-.345-.018-.016-.076-.039-.064-.06l.039-.08c.02-.035.014-.045.053-.029l.17.059c.406.156.779.368 1.143.608-.123-.45-.311-.885-.525-1.296-.389-.762-.893-1.468-1.463-2.105-.379-.426-.785-.824-1.219-1.193-.223-.19-.457-.369-.699-.533-.113-.074-.225-.149-.346-.217-.049-.03-.105-.056-.15-.094-.18-.144-.365-.284-.549-.429.238.098.469.21.689.338-.127-.194-.342-.331-.545-.436-.307-.159-.637-.276-.967-.378.113-.12.234-.228.346-.348.113-.12.223-.246.33-.372.127-.15.252-.3.375-.455l-1.156-.726-.48-.303c-.123.246-.277.476-.458.68-.18.203-.391.369-.6.539-.191.156-.379.316-.566.472-.047.04-.092.085-.145.12-.025.021-.096.004-.127.004H10.7c-.297.006-.596.029-.891.068-.058.007-.113.013-.175.008l-.178-.01c-.137-.008-.271-.016-.408-.016-.289-.004-.58 0-.871.025-.244.022-.489.055-.729.112-.238.056-.461.172-.66.312-.193.141-.387.32-.504.53s-.17.456-.213.689c-.135.013-.268.01-.4.016-.141.008-.277.021-.416.039-.27.037-.535.096-.795.18-.496.154-.945.405-1.336.75-.195.181-.377.38-.539.596-.02.025-.037.051-.063.068-.01.009-.027.016-.033.027-.015.027-.033.052-.051.076l-.134.212c-.168.285-.276.595-.383.906l-.045.123.033-.021c-.01.067-.02.135-.025.202l-.008.105v.053l-.066.013c-.135.026-.271.06-.4.101-.12.039-.233.086-.337.15-.105.066-.195.153-.285.239-.318.31-.562.698-.687 1.128-.1.348-.137.735-.059 1.092.021.09.049.188.107.262.074.09.199.126.313.095.131-.036.248-.124.371-.187l.314-.157c.455-.226.93-.446 1.438-.525.035-.005.1.067.131.091.049.037.1.074.148.104.109.069.221.129.334.181.262.114.541.174.818.231.502.105 1.014.171 1.529.18.207.004.416 0 .625-.018.225-.02.451-.049.678-.051.25-.005.496.025.74.055.254.031.51.068.764.105.518.079 1.031.169 1.543.279-.115.18-.227.362-.338.545-.008.013-.072 0-.088 0-.041-.002-.086-.002-.127 0-.074 0-.15.008-.225.019-.211.03-.416.083-.615.156-.49.181-.938.483-1.326.833-.221.195-.43.408-.609.641-.049.064-.094.129-.139.193.105-.023.211-.045.318-.07.061-.016.117-.027.176-.039.021-.008.029-.016.049-.027.219-.203.451-.393.695-.563.111-.08.225-.154.348-.215.166-.083.354-.131.533-.174-.33.18-.678.35-.977.584-.172.139-.328.291-.49.439l.654-.104c.01 0 .014-.004.023-.01l.17-.094c.113-.064.23-.125.346-.186.24-.123.482-.24.732-.34.236-.094.48-.178.732-.225.221-.046.428-.052.648 0 .342.074.67.232.969.414.021.014.035.033.055.014.016-.014.098-.074.09-.092l-.18-.334c-.016-.029-.023-.049-.051-.066l-.131-.077c-.176-.104-.348-.21-.51-.331-.037-.023-.078-.039-.082-.089-.004-.046.014-.093.029-.136.033-.09.08-.169.131-.248.033-.058.072-.111.109-.166.014-.018.01-.021.031-.014l.119.034c.236.077.469.159.711.22.27.068.545.123.82.176l.048.01c-.056-.03-.091-.09-.132-.136-.023-.03-.035-.05-.074-.06l-.105-.02c-.074-.016-.148-.03-.225-.049-.262-.057-.525-.119-.777-.209-.375-.13-.758-.232-1.145-.322-.486-.107-.977-.194-1.465-.275-.25-.041-.498-.074-.75-.109-.246-.034-.496-.07-.746-.087-.539-.034-1.074.087-1.615.081-.365-.004-.734-.055-1.096-.105l-.068-.009c.252-.093.5-.188.75-.285.236-.095.471-.192.705-.289.127-.052.25-.105.373-.157.113-.051.225-.1.328-.17.408-.279.676-.727.975-1.109.273-.361.586-.7.99-.908.129-.066.262-.117.4-.156-.283-.439-.549-.93-.623-1.455.029.012.061.025.094.037.035.012.064.016.072.045l.029.135c.026.091.053.176.086.262.072.191.16.375.26.551.219.396.484.766.766 1.12.539.686 1.145 1.305 1.736 1.941.145.158.275.324.41.492.15.187.303.375.457.561.121.141.234.285.356.426l.094.112c.016.018.037.026.061.036.604.3 1.213.6 1.822.895.434.209.869.42 1.309.623.236.109.471.219.711.32.029.014.066.029.098.039.016.01.029.016.047.023l.016.049c.027.072.051.145.076.217.049.141.098.279.148.416.33.912.695 1.814 1.145 2.676.346.656.715 1.301 1.09 1.939.4.68.811 1.354 1.225 2.025.332.535.666 1.072 1.008 1.605.146.227.289.459.439.688l.063.094.775-1.141.191-.283c.008-.006.082-.102.076-.109l-.156-.24c-.291-.451-.584-.898-.871-1.35l-.828-1.283-.105-.166.656.799 1.115 1.35c.121.146.236.289.354.438.219-.402.439-.801.662-1.201.086-.164.176-.33.266-.492M12.13 1.915c.309-.246.563-.563.757-.906l1.178.743.18.112c-.246.3-.496.604-.775.873-.035.034-.074.069-.107.104-.021.025-.047.051-.07.075l-.033.038c-.023-.007-.045-.016-.068-.02-.146-.041-.289-.08-.436-.111-.292-.066-.589-.117-.886-.152-.191-.021-.385-.04-.578-.058.275-.234.557-.467.838-.698m-1.754 1.37c.232-.096.482-.15.73-.191.49-.082.994-.094 1.489-.04.354.038.701.108 1.041.21l-.141.115-.225-.061c-.141-.029-.281-.06-.422-.082-.246-.037-.497-.06-.749-.065-.461-.008-.926.042-1.371.159-.301.078-.604.188-.879.332-.286.154-.555.346-.78.582-.134.137-.257.289-.359.455-.057.09-.105.18-.15.275-.024.047-.043.096-.061.144l-.029.075c-.004.015-.008.026-.012.038L8.39 5.22l-.082-.011c.234-.719.763-1.286 1.418-1.649.207-.114.426-.218.65-.279m-3.93.374c.266-.381.686-.649 1.139-.743.502-.101 1.016-.119 1.525-.107-.525.131-1.05.326-1.488.652-.34.075-.664.24-.934.459-.09.071-.17.15-.246.236-.035.037-.066.075-.097.116-.014.015-.027.03-.037.049h-.084c.023-.135.055-.27.098-.4.029-.09.064-.18.119-.26m.882.056c-.145.143-.27.303-.391.469-.047.069-.098.153-.18.191-.085.039-.194-.005-.28-.031.224-.279.521-.494.851-.629M2.308 6.585c.08-.16.182-.315.275-.465.016-.027.053-.046.074-.063.049-.034.096-.069.143-.106.309-.225.621-.446.939-.656.166-.107.33-.213.502-.307.182-.101.369-.18.565-.244.347-.112.707-.189 1.068-.244.174-.025.361-.057.531-.015-.33.188-.658.375-.99.558-.342.191-.689.367-1.035.552-.332.18-.66.375-.981.577-.336.206-.67.419-1.002.629-.08.051-.16.105-.24.155.045-.125.09-.251.151-.371m1.009 3.056c-.029.056-.134.042-.187.042-.094 0-.186 0-.279.006-.258.015-.51.06-.758.138-.475.147-.922.375-1.365.604-.1.055-.203.135-.316.162-.061.015-.131-.008-.166-.063-.035-.061-.053-.131-.064-.198-.027-.12-.035-.245-.033-.368 0-.33.076-.66.215-.96.096-.21.221-.401.371-.574.15-.175.326-.351.539-.45.355-.162.775-.213 1.164-.235.072-.005.145-.007.217-.007.1 0 .217-.016.311.019.074.027.121.105.15.173.045.105.074.225.1.336.061.26.123.525.145.791.01.119.016.239.004.359-.009.073-.014.156-.05.223m2.829-1.973c-.194.123-.403.218-.616.298-.215.077-.436.144-.66.181-.097.013-.195.025-.293.021-.101-.003-.193-.036-.293-.067-.195-.063-.393-.13-.57-.233-.064-.039-.135-.084-.174-.15-.029-.052-.029-.116-.023-.174.012-.231.094-.458.203-.66.187-.343.482-.612.84-.775.879-.396 1.865-.029 2.611.49l.08.061c-.154.165-.311.321-.473.477-.199.189-.404.381-.634.531M8.31 5.739c-.475-.203-.926-.458-1.356-.738.449.188.934.3 1.414.37.258.037.521.072.781.08.281.008.564-.021.84-.075.545-.103 1.068-.305 1.566-.551.494-.245.964-.537 1.413-.859.217-.155.43-.315.633-.487.021-.016.174-.161.184-.154l.041.031.537.416c.328.254.658.51.988.762-.906.326-1.826.629-2.752.904-.519.156-1.038.301-1.565.42-.412.098-.834.189-1.256.21-.507.022-1.006-.135-1.47-.33m8.85 3.942c.076.021.145.045.215.067l.094.033c.016.006.031.015.045.02l.021.06c.045.146.09.289.139.432-.15-.127-.301-.254-.451-.379l-.09-.074c-.021-.016-.045-.021-.029-.046l.059-.114m-.671 1.444l.035-.063.027-.046c.012-.018.008-.022.029-.012.129.054.258.111.385.17.24.11.475.23.703.364.107.065.217.135.322.205l.15.105.074.057c.033.027.041.063.057.102.104.282.219.564.338.844.078.189.162.379.248.566-.293-.371-.621-.715-.957-1.045-.346-.346-.705-.671-1.078-.981l-.323-.264m3.746 6.42l-.121.09.008.016.063.094.271.42.904 1.402c.311.48.621.963.932 1.445l.309.48.084.133c.004.004.029.041.029.045-.26.385-.523.77-.783 1.154-.027.037-.051.076-.074.111-.24-.373-.479-.744-.715-1.117-.4-.635-.795-1.277-1.184-1.916-.434-.709-.855-1.418-1.264-2.141-.383-.674-.75-1.361-1.059-2.076-.301-.697-.563-1.408-.811-2.121.486.193.98.367 1.48.521.145.045.289.09.436.127l.063.018c.008 0 .014-.039.018-.049.018-.064.031-.129.045-.195.031-.125.051-.254.074-.381.205.428.436.844.701 1.236.215.314.445.621.686.92.521.656 1.074 1.283 1.643 1.898.463.494.934.984 1.408 1.465l.389.389c.006.006.039.031.037.041l-.031.053-.148.275-.588 1.068c-.18-.219-.361-.436-.541-.658l-1.125-1.361c-.314-.387-.637-.773-.953-1.16l-.186-.225'></path></g></svg>",
+		Help: []HelpDocument{
+			{
+				Title:    "Gerrit Doc",
+				Contents: "Some random Gerrit help.",
+				Children: nil,
+			},
+		},
+		Url: "https://code.v1.dodo.cloud/dashboard/self",
+	}
+	forumge := AppLauncherInfo{
+		Name:        "Forum",
+		Description: "Forum Description",
+		Icon:        "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 256 256'><path fill='currentColor' d='M100 140a8 8 0 1 1-8-8a8 8 0 0 1 8 8Zm64 8a8 8 0 1 0-8-8a8 8 0 0 0 8 8Zm64.94-9.11a12.12 12.12 0 0 1-5 1.11a11.83 11.83 0 0 1-9.35-4.62l-2.59-3.29V184a36 36 0 0 1-36 36H80a36 36 0 0 1-36-36v-51.91l-2.53 3.27A11.88 11.88 0 0 1 32.1 140a12.08 12.08 0 0 1-5-1.11a11.82 11.82 0 0 1-6.84-13.14l16.42-88a12 12 0 0 1 14.7-9.43h.16L104.58 44h46.84l53.08-15.6h.16a12 12 0 0 1 14.7 9.43l16.42 88a11.81 11.81 0 0 1-6.84 13.06ZM97.25 50.18L49.34 36.1a4.18 4.18 0 0 0-.92-.1a4 4 0 0 0-3.92 3.26l-16.42 88a4 4 0 0 0 7.08 3.22ZM204 121.75L150 52h-44l-54 69.75V184a28 28 0 0 0 28 28h44v-18.34l-14.83-14.83a4 4 0 0 1 5.66-5.66L128 186.34l13.17-13.17a4 4 0 0 1 5.66 5.66L132 193.66V212h44a28 28 0 0 0 28-28Zm23.92 5.48l-16.42-88a4 4 0 0 0-4.84-3.16l-47.91 14.11l62.11 80.28a4 4 0 0 0 7.06-3.23Z'/></svg>",
+		Help: []HelpDocument{
+			{
+				Title:    "Forum Doc",
+				Contents: "Some random Forum help.",
+				Children: nil,
+			},
+		},
+		Url: "https://forum.ge",
+	}
+	return []AppLauncherInfo{googleInfo, gitInfo, forumge}, nil
+}
diff --git a/core/installer/welcome/launcher-tmpl/launcher.html b/core/installer/welcome/launcher-tmpl/launcher.html
new file mode 100644
index 0000000..3511064
--- /dev/null
+++ b/core/installer/welcome/launcher-tmpl/launcher.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang="en" data-theme="light">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>App Launcher</title>
+    <link rel="stylesheet" type="text/css" href="/static/pico.2.0.6.min.css">
+    <link rel="stylesheet" type="text/css" href="/static/launcher.css">
+</head>
+<body class="container-fluid">
+    <div id="left-panel">
+        <div class="user-circle">
+            <div class="circle">
+                <p>{{ GetUserInitials .LoggedInUsername }}</p>
+                <div class="tooltip-user" id="tooltip-user">
+                    <p>{{ .LoggedInUsername }}</p>
+                    <button id="logout-button">Log out</button>
+                </div>
+            </div>
+        </div>
+        <hr class="separator">
+        <div class="app-list">
+            {{range .AllAppsInfo}}
+                <div class="app-icon-tooltip" data-app-url="{{ .Url }}">
+                    <div class="icon">
+                        {{.Icon}}
+                    </div>
+                    <div class="tooltip">
+                        <p>{{ .Name }}</p>
+                        <button class="help-button" id="help-button-{{ CleanAppName .Name }}">Help</button>
+                    </div>
+                </div>
+                <dialog class="app-help-modal" id="modal-{{ CleanAppName .Name }}" close>
+                    <article class="modal-article">
+                        <header>
+                            <h4>{{ .Name }}</h4>
+                            <button class="close-button" id="close-help-{{ CleanAppName .Name }}">
+                                <svg xmlns="http://www.w3.org/2000/svg" width="1.5em" height="1.5em" viewBox="0 0 32 32"><path fill="black" d="M16 2C8.2 2 2 8.2 2 16s6.2 14 14 14s14-6.2 14-14S23.8 2 16 2m5.4 21L16 17.6L10.6 23L9 21.4l5.4-5.4L9 10.6L10.6 9l5.4 5.4L21.4 9l1.6 1.6l-5.4 5.4l5.4 5.4z"/></svg>
+                            </button>
+                        </header>
+                        <div class="app-help-modal-article">
+                            <div class="modal-left">
+                                {{ template "help-menu-template" .Help }}
+                            </div>
+                            <div class="modal-right" id="modal-right-help-content-{{ CleanAppName .Name }}">
+                                {{ template "help-content-template" .Help }}
+                            </div>
+                        </div>
+                    </article>
+                </dialog>
+            {{end}}
+        </div>
+    </div>
+    <div id="right-panel">
+        <iframe id="appFrame" width="100%" height="100%" frameborder="0"></iframe>
+    </div>
+    {{ define "help-menu-template" }}
+        <ul class="ul">
+            {{ range .}}
+                <li>
+                    <a class="title-menu" id="title-{{ CleanAppName .Title }}">{{ .Title }}</a>
+                    {{ template "help-menu-template" .Children }}
+                </li>
+            {{ end }}
+        </ul>
+    {{ end }}
+    {{ define "help-content-template" }}
+        {{ range . }}
+            <p class="help-content" id="help-content-{{ CleanAppName .Title }}"> {{ .Contents }}</p>
+            {{ template "help-content-template" .Children }}
+        {{ end }}
+    {{ end }}
+    <script src="/static/launcher.js"></script>
+</body>
+</html>
diff --git a/core/installer/welcome/launcher.go b/core/installer/welcome/launcher.go
new file mode 100644
index 0000000..6f40714
--- /dev/null
+++ b/core/installer/welcome/launcher.go
@@ -0,0 +1,107 @@
+package welcome
+
+import (
+	"embed"
+	"fmt"
+	"html/template"
+	"log"
+	"net/http"
+	"strings"
+)
+
+//go:embed launcher-tmpl/launcher.html
+var indexHTML embed.FS
+
+//go:embed static/*
+var files embed.FS
+
+type AppLauncherInfo struct {
+	Name        string
+	Description string
+	Icon        template.HTML
+	Help        []HelpDocument
+	Url         string
+}
+
+type HelpDocument struct {
+	Title    string
+	Contents string
+	Children []HelpDocument
+}
+
+type AppDirectory interface {
+	GetAllApps() ([]AppLauncherInfo, error)
+}
+
+type LauncherServer struct {
+	port         int
+	logoutUrl    string
+	appDirectory AppDirectory
+	homeTmpl     *template.Template
+}
+
+func NewLauncherServer(
+	port int,
+	logoutUrl string,
+	appDirectory AppDirectory,
+) (*LauncherServer, error) {
+	tmpl, err := indexHTML.ReadFile("launcher-tmpl/launcher.html")
+	if err != nil {
+		return nil, fmt.Errorf("failed to parse template: %v", err)
+	}
+	t := template.New("index").Funcs(template.FuncMap{
+		"GetUserInitials": getUserInitials,
+		"CleanAppName":    cleanAppName,
+	})
+	t, err = t.Parse(string(tmpl))
+	if err != nil {
+		return nil, fmt.Errorf("failed to parse template: %v", err)
+	}
+	return &LauncherServer{
+		port,
+		logoutUrl,
+		appDirectory,
+		t,
+	}, nil
+}
+
+func getUserInitials(username string) string {
+	if username == "" {
+		return ""
+	}
+	return strings.ToUpper(username[:1])
+}
+
+func cleanAppName(name string) string {
+	cleanName := strings.ToLower(name)
+	cleanName = strings.ReplaceAll(cleanName, " ", "-")
+	return cleanName
+}
+
+func (s *LauncherServer) Start() {
+	http.Handle("/static/", http.FileServer(http.FS(files)))
+	http.HandleFunc("/", s.homeHandler)
+	log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", s.port), nil))
+}
+
+type homeHandlerData struct {
+	LoggedInUsername string
+	AllAppsInfo      []AppLauncherInfo
+}
+
+func (s *LauncherServer) homeHandler(w http.ResponseWriter, r *http.Request) {
+	loggedInUsername := "longusername"
+	allAppsInfo, err := s.appDirectory.GetAllApps()
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusBadRequest)
+		return
+	}
+	data := homeHandlerData{
+		LoggedInUsername: loggedInUsername,
+		AllAppsInfo:      allAppsInfo,
+	}
+	if err := s.homeTmpl.Execute(w, data); err != nil {
+		http.Error(w, err.Error(), http.StatusInternalServerError)
+		return
+	}
+}
diff --git a/core/installer/welcome/static/launcher.css b/core/installer/welcome/static/launcher.css
new file mode 100644
index 0000000..6802bf2
--- /dev/null
+++ b/core/installer/welcome/static/launcher.css
@@ -0,0 +1,290 @@
+:root:not([data-theme]) {
+    --pico-background-color: unset;
+    --pico-color: unset;
+}
+
+body {
+    margin: 0;
+    padding: 0;
+    font-family: Arial, sans-serif;
+    display: flex;
+    height: 100vh;
+    padding-left: 10px !important;
+    padding-right: 10px !important;
+    background-color: black;
+}
+
+#left-panel {
+    width: 80px;
+    background-color: #f0f0f0;
+    border-radius: 10px;
+    border-width: 1px;
+    border-color: black;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    margin-top: 5px;
+    margin-bottom: 5px;
+}
+
+.app-list {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+}
+
+#right-panel {
+    flex: 1;
+    background-color: #f0f0f0;
+    margin: 5px;
+    padding: 2px;
+    border-radius: 10px;
+    border-color: black;
+}
+
+#appFrame {
+    border-radius: 10px;
+}
+
+.app-icon-tooltip {
+    position: relative;
+    display: inline-block;
+    align-items: flex-start;
+    justify-content: center;
+    cursor: initial;
+    width: 80px !important;
+    height: 50px !important;
+    margin-bottom: 10px !important;
+    cursor: pointer !important;
+    --pico-background-color: unset !important;
+    --pico-color: unset !important;
+}
+
+.tooltip {
+    position: absolute;
+    width: 200px;
+    border-radius: 0 10px 10px 0;
+    top: 70%;
+    left: 98%;
+    transform: translateY(-50%);
+    background-color: black;
+    color: white;
+    box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
+    padding: 5px;
+    z-index: 1;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    visibility: hidden;
+    opacity: 0;
+    cursor: auto;
+    font-size: 16px;
+}
+
+.help-button {
+    margin-top: 5px !important;
+    padding: 0 !important;
+    border: 0 !important;
+    margin-bottom: 5px !important;
+    width: 100% !important;
+    color: white !important;
+    cursor: pointer !important;
+    font-size: 16px !important;
+}
+
+.icon {
+    display: flex;
+    justify-content: center;
+    align-items: center !important;
+}
+
+.tooltip p {
+    color: white;
+    margin: 0;
+    cursor: auto;
+}
+
+.app-icon-tooltip:hover {
+    transform: scale(1.15);
+}
+
+.app-icon-tooltip .background-glow {
+    position: absolute;
+    top: 0;
+    left: 4px;
+    right: 4px;
+    bottom: 0;
+    background: rgba(0, 0, 0, 0);
+    pointer-events: none;
+    border-radius: 5px;
+    box-shadow: 0px 0px 7px 7px black;
+}
+
+.modal-left {
+    width: 30%;
+    overflow-y: auto;
+    float: left;
+    margin-left: 0px;
+    background-color: #fbfcfc;
+    border-radius: 2px;
+}
+
+.modal-right {
+    /* flex: 1; */
+    width: 70%;
+    overflow-y: auto;
+    float: right;
+    margin-left: 2px;
+}
+
+.app-help-modal {
+    position: fixed;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    flex-direction: column;
+    overflow: hidden;
+}
+
+.app-help-modal-article {
+    display: flex;
+    flex-direction: row;
+    width: 100%;
+    max-width: 100%;
+    min-height: 97%;
+    max-height: 97%;
+    overflow: hidden;
+}
+
+.app-info-modal-article header {
+    flex: 0 0 auto;
+}
+
+header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    position: relative;
+    margin-bottom: 2px !important;
+}
+
+.close-button {
+    padding: 0;
+    border: none;
+    background: none;
+    cursor: pointer;
+    outline: none;
+    width: 1.5em;
+    height: 1.5em;
+    position: absolute;
+    top: 11px;
+    right: 5px;
+}
+
+.modal-article {
+    min-width: 80% !important;
+    max-width: 80% !important;
+    min-height: 90% !important;
+    max-height: 90% !important;
+    overflow: hidden;
+}
+
+.help-content {
+    display: none;
+}
+
+.circle {
+    width: 50px;
+    height: 50px;
+    border-radius: 50%;
+    background-color: #ccc;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}
+
+.circle p {
+    font-size: 24px;
+    text-align: center;
+    line-height: 50px;
+    margin: 0;
+    position: relative;
+    display: inline-block;
+}
+
+.user-circle {
+    min-width: 80px !important;
+    max-width: 80px !important;
+    cursor: pointer;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+
+.separator {
+    margin-top: 2px !important;
+    margin-bottom: 4px !important;
+    border-width: 2px !important;
+    border-color: black !important;
+    width: 100% !important;
+}
+
+ul {
+    padding-inline-start: 0px !important;
+    margin-bottom: 0px;
+    list-style: none;
+    font-size: 14px;
+}
+
+ul ul {
+    padding-inline-start: 19px;
+}
+
+ul li {
+    list-style: none !important;
+    padding-inline-start: 19px !important;
+    margin-bottom: 0px;
+    font-size: 16px !important;
+}
+
+.tooltip-user {
+    position: absolute;
+    top: 54px;
+    left: 90px;
+    transform: translateY(-50%);
+    width: 234px;
+    background-color: black;
+    box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
+    padding: 5px;
+    z-index: 1;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    visibility: hidden;
+    opacity: 0;
+    border-radius: 0 0 10px 0;
+    cursor: auto;
+}
+
+.tooltip-user button {
+    margin-top: 5px !important;
+    padding: 0 !important;
+    border: 0 !important;
+    margin-bottom: 5px !important;
+    width: 100% !important;
+    color: white !important;
+    cursor: pointer !important;
+    font-size: 19px !important;
+}
+
+.tooltip-user p {
+    color: white;
+    margin: 0;
+    cursor: auto;
+    font-size: 19px;
+    /* align-self: flex-start; */
+}
diff --git a/core/installer/welcome/static/launcher.js b/core/installer/welcome/static/launcher.js
new file mode 100644
index 0000000..b8c2ae5
--- /dev/null
+++ b/core/installer/welcome/static/launcher.js
@@ -0,0 +1,78 @@
+document.addEventListener("DOMContentLoaded", function () {
+    function showTooltip(obj) {
+        // obj.style.display = 'flex';
+        obj.style.visibility = 'visible';
+        obj.style.opacity = '1';
+    }
+    function hideTooltip(obj) {
+        obj.style.visibility = 'hidden';
+        obj.style.opacity = '0';
+        // obj.style.display = '';
+    }
+    const circle = document.querySelector(".user-circle");
+    const tooltipUser = document.querySelector("#tooltip-user");
+    [
+        ['mouseenter', () => showTooltip(tooltipUser)],
+        ['mouseleave', () => hideTooltip(tooltipUser)],
+    ].forEach(([event, listener]) => {
+        circle.addEventListener(event, listener);
+    });
+    const icons = document.querySelectorAll(".app-icon-tooltip");
+    icons.forEach(function (icon) {
+        icon.addEventListener("click", function (event) {
+            event.stopPropagation();
+            const appUrl = this.getAttribute("data-app-url");
+            document.getElementById('appFrame').src = 'about:blank';
+            document.getElementById('appFrame').src = appUrl;
+            document.querySelectorAll(".app-icon-tooltip .background-glow").forEach((e) => e.remove());
+            const glow = document.createElement('div');
+            glow.classList.add("background-glow");
+            glow.setAttribute("style", "transform: none; transform-origin: 50% 50% 0px;")
+            this.appendChild(glow);
+        });
+        const tooltip = icon.querySelector('.tooltip');
+        tooltip.addEventListener("click", function (event) {
+            event.stopPropagation();
+        });
+        [
+            ['mouseenter', () => showTooltip(tooltip)],
+            ['mouseleave', () => hideTooltip(tooltip)],
+            ['focus', () => showTooltip(tooltip)],
+            ['blur', () => hideTooltip(tooltip)],
+        ].forEach(([event, listener]) => {
+            icon.addEventListener(event, listener);
+        });
+    });
+    const helpButtons = document.querySelectorAll('.help-button');
+    helpButtons.forEach(function (button) {
+        button.addEventListener('click', function (event) {
+            event.stopPropagation();
+            const buttonId = button.getAttribute('id');
+            const modalId = 'modal-' + buttonId.substring("help-button-".length);
+            const closeHelpId = "close-help-" + buttonId.substring("help-button-".length);
+            const modal = document.getElementById(modalId);
+            modal.removeAttribute("close");
+            modal.setAttribute("open", true);
+            const closeHelpButton = document.getElementById(closeHelpId);
+            closeHelpButton.addEventListener('click', function (event) {
+                event.stopPropagation();
+                modal.removeAttribute("open");
+                modal.setAttribute("close", true);
+            });
+        });
+    });
+    const modalHelpButtons = document.querySelectorAll('.title-menu');
+    modalHelpButtons.forEach(function (button) {
+        button.addEventListener('click', function (event) {
+            event.stopPropagation();
+            const helpTitle = button.getAttribute('id');
+            const helpTitleId = helpTitle.substring('title-'.length);
+            const helpContentId = 'help-content-' + helpTitleId;
+            const allContentElements = document.querySelectorAll('.help-content');
+            allContentElements.forEach(function (contentElement) {
+                contentElement.style.display = 'none';
+            });
+            document.getElementById(helpContentId).style.display = 'block';
+        });
+    });
+});
