diff --git a/src/app/start/BUILD.bazel b/src/app/start/BUILD.bazel
index 3a503b9a..c634479c 100644
--- a/src/app/start/BUILD.bazel
+++ b/src/app/start/BUILD.bazel
@@ -15,6 +15,7 @@ ng_project(
"//:node_modules/@angular/router",
"//:node_modules/@types/node",
"//:node_modules/detect-browser",
+ "//src/app/start/cli",
"//src/app/start/custom",
"//src/app/start/godot",
"//src/app/start/tutorials",
diff --git a/src/app/start/cli/BUILD.bazel b/src/app/start/cli/BUILD.bazel
new file mode 100644
index 00000000..755ea111
--- /dev/null
+++ b/src/app/start/cli/BUILD.bazel
@@ -0,0 +1,36 @@
+load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
+load("//tools:ng.bzl", "ng_project")
+load("//tools:sass.bzl", "sass_binary")
+
+package(default_visibility = ["//:__subpackages__"])
+
+copy_file(
+ name = "copy_typed_scss",
+ src = "@typed_css//:typed.scss",
+ out = "typed.scss",
+)
+
+sass_binary(
+ name = "typed-ascii-logo-styles",
+ srcs = [
+ "typed.scss",
+ "typed-ascii-logo.component.scss",
+ ],
+)
+
+ng_project(
+ name = "cli",
+ srcs = [
+ "start-cli.component.html",
+ "start-cli.component.ts",
+ "start-cli-routing.module.ts",
+ "typed-ascii-logo.component.css",
+ "typed-ascii-logo.component.html",
+ "typed-ascii-logo.component.ts",
+ ],
+ deps = [
+ "//:node_modules/@angular/common",
+ "//:node_modules/@angular/core",
+ "//:node_modules/@angular/router",
+ ],
+)
diff --git a/src/app/start/cli/start-cli-routing.module.ts b/src/app/start/cli/start-cli-routing.module.ts
new file mode 100644
index 00000000..2c585ed8
--- /dev/null
+++ b/src/app/start/cli/start-cli-routing.module.ts
@@ -0,0 +1,17 @@
+import {NgModule} from '@angular/core';
+import {RouterModule, Routes} from '@angular/router';
+import {StartCliComponent} from './start-cli.component';
+
+const routes: Routes = [
+ {
+ path: '',
+ pathMatch: 'full',
+ component: StartCliComponent,
+ },
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule],
+})
+export class StartCliRoutingModule {}
diff --git a/src/app/start/cli/start-cli.component.html b/src/app/start/cli/start-cli.component.html
new file mode 100644
index 00000000..53ec8c89
--- /dev/null
+++ b/src/app/start/cli/start-cli.component.html
@@ -0,0 +1,6 @@
+
+
+
+
+ Start CLI page!
+
diff --git a/src/app/start/cli/start-cli.component.ts b/src/app/start/cli/start-cli.component.ts
new file mode 100644
index 00000000..9f3d1c25
--- /dev/null
+++ b/src/app/start/cli/start-cli.component.ts
@@ -0,0 +1,14 @@
+import {Component, OnInit, ChangeDetectionStrategy} from '@angular/core';
+import {TypedAsciiLogoComponent} from './typed-ascii-logo.component';
+
+@Component({
+ templateUrl: './start-cli.component.html',
+ changeDetection: ChangeDetectionStrategy.OnPush,
+ standalone: true,
+ imports: [TypedAsciiLogoComponent],
+})
+export class StartCliComponent implements OnInit {
+ constructor() {}
+
+ ngOnInit(): void {}
+}
diff --git a/src/app/start/cli/typed-ascii-logo.component.html b/src/app/start/cli/typed-ascii-logo.component.html
new file mode 100644
index 00000000..d0a284f5
--- /dev/null
+++ b/src/app/start/cli/typed-ascii-logo.component.html
@@ -0,0 +1,13 @@
+
diff --git a/src/app/start/cli/typed-ascii-logo.component.scss b/src/app/start/cli/typed-ascii-logo.component.scss
new file mode 100644
index 00000000..8cd7abcc
--- /dev/null
+++ b/src/app/start/cli/typed-ascii-logo.component.scss
@@ -0,0 +1,30 @@
+@import 'typed';
+
+@mixin ascii-line($line) {
+ @include typed(
+ $line,
+ 4,
+ (
+ caret-width: 0px,
+ caret-space: 2px,
+ iterations: 1,
+ delay: 0,
+ caret-speed: 0,
+ )
+ );
+}
+
+// prettier-ignore
+.typed-ascii-logo {
+ .line1 { @include ascii-line(' /##########\\'); }
+ .line2 { @include ascii-line(' #### #/ \\##\\'); }
+ .line3 { @include ascii-line(' ###### \\##\\'); }
+ .line4 { @include ascii-line(' #### ##\\ \\# |@@@@'); }
+ .line5 { @include ascii-line(' \\##\\ #### @@@@@@@@@'); }
+ .line6 { @include ascii-line(' @@@@@@@@@@@@@@@ ###### @@@@@@@@@@@@@@'); }
+ .line7 { @include ascii-line(' #### @@@@@@@@@'); }
+ .line8 { @include ascii-line(' /# |@@@@'); }
+ .line9 { @include ascii-line(' #### /####/'); }
+ .line10 { @include ascii-line(' ###### ####/'); }
+ .line11 { @include ascii-line(' ####'); }
+}
diff --git a/src/app/start/cli/typed-ascii-logo.component.ts b/src/app/start/cli/typed-ascii-logo.component.ts
new file mode 100644
index 00000000..34ee4f05
--- /dev/null
+++ b/src/app/start/cli/typed-ascii-logo.component.ts
@@ -0,0 +1,9 @@
+import {Component} from '@angular/core';
+
+@Component({
+ selector: 'ecsact-typed-ascii-logo',
+ templateUrl: 'typed-ascii-logo.component.html',
+ styleUrl: 'typed-ascii-logo.component.scss',
+ standalone: true,
+})
+export class TypedAsciiLogoComponent {}
diff --git a/src/app/start/start-routing.module.ts b/src/app/start/start-routing.module.ts
index 77e9afeb..a0800b9a 100644
--- a/src/app/start/start-routing.module.ts
+++ b/src/app/start/start-routing.module.ts
@@ -17,6 +17,14 @@ const routes: Routes = [
m => m.StartUnityRoutingRoutingModule,
),
},
+ {
+ path: 'cli',
+ pathMatch: 'prefix',
+ loadChildren: () =>
+ import('./cli/start-cli-routing.module').then(
+ m => m.StartCliRoutingModule,
+ ),
+ },
{
path: 'godot',
pathMatch: 'prefix',
diff --git a/src/app/start/start.component.html b/src/app/start/start.component.html
index a9cdeb82..fbe981e6 100644
--- a/src/app/start/start.component.html
+++ b/src/app/start/start.component.html
@@ -39,6 +39,9 @@
schoolUsing Async
+
+ Overview
+
Ecsact Unreal Overview