diff --git a/web/pages/components/main-layout.tsx b/web/pages/components/main-layout.tsx
index cd031be3c..1e9aae6a8 100644
--- a/web/pages/components/main-layout.tsx
+++ b/web/pages/components/main-layout.tsx
@@ -13,7 +13,8 @@ import {
ToolOutlined,
PlayCircleFilled,
MinusSquareFilled,
- MessageOutlined,
+ QuestionCircleOutlined,
+ MessageOutlined
} from '@ant-design/icons';
import classNames from 'classnames';
import { upgradeVersionAvailable } from "../../utils/apis";
@@ -149,6 +150,13 @@ export default function MainLayout(props) {
+
}
+ title="Help"
+ >
+ Help
+
diff --git a/web/pages/help.tsx b/web/pages/help.tsx
new file mode 100644
index 000000000..218007561
--- /dev/null
+++ b/web/pages/help.tsx
@@ -0,0 +1,167 @@
+import { Button, Card, Col, Divider, Result, Row } from 'antd'
+import Meta from 'antd/lib/card/Meta'
+import Title from 'antd/lib/typography/Title'
+import {
+ AlertOutlined,
+ ApiTwoTone,
+ BookOutlined,
+ BugTwoTone,
+ CameraTwoTone,
+ DatabaseTwoTone,
+ EditTwoTone,
+ Html5TwoTone,
+ LinkOutlined,
+ QuestionCircleTwoTone,
+ SettingTwoTone,
+ SlidersTwoTone,
+} from '@ant-design/icons'
+import React from 'react'
+
+interface Props { }
+
+export default function Help(props: Props) {
+ const questions = [
+ {
+ icon: ,
+ title: "I want to configure my owncast instance",
+ content: (
+
+ )
+ },
+ {
+ icon: ,
+ title: "I need help configuring my broadcasting software",
+ content: (
+
+ )
+ },
+ {
+ icon: ,
+ title: "I want to embed my stream into another site",
+ content: (
+
+ )
+ },
+ {
+ icon: ,
+ title: "I want to customize my website",
+ content: (
+
+ )
+ },
+ {
+ icon: ,
+ title: "I want to tweak my encoding",
+ content: (
+
+ )
+ },
+ {
+ icon: ,
+ title: "I want to offload my video to an external storage provider",
+ content: (
+
+ )
+ },
+ ]
+
+ const otherResources = [
+ {
+ icon: ,
+ title: "I found a bug",
+ content: (
+
+ )
+ },
+ {
+ icon: ,
+ title: "I have a general question",
+ content: (
+
+ Most general questions are answered in our
+
FAQ
+
+ )
+ },
+ {
+ icon: ,
+ title: "I want to use the API",
+ content: (
+
+ You can view the API documentation for either the
+
latest
+ or
+
development
+ release.
+
+ )
+ }
+ ]
+
+ return (
+
+
How can we help you?
+
+
+
+ Troubleshooting
+
+
+
+
+ Documentation
+
+
+
+
+
Common tasks
+
+ {
+ questions.map(question => (
+
+
+
+
+
+ ))
+ }
+
+
+
Other
+
+ {
+ otherResources.map(question => (
+
+
+
+
+
+ ))
+ }
+
+
+ )
+}