Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added sdocs-main-updated.zip
Binary file not shown.
57 changes: 57 additions & 0 deletions sway-docs-integration-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Sway `/docs` Integration Notes

Use `sway-docs-page.tsx` as the page content for `/docs`.

The live site is a Next app. The legal pages are wrapped by an existing shell that renders:

- `SidebarProvider`
- `LegalBodyClass`
- `AppSidebar`
- `SidebarTrigger`
- `Separator`
- `LegalHeader`
- a centered content panel with `max-w-6xl`, `rounded-2xl`, `border-white/10`, `bg-neutral-900/65`, `p-4`, and `sm:p-6`

Do not paste this as standalone HTML. Put the page inside that same shell.

If the current shell is only in `app/legal/layout.tsx`, move that layout unchanged into a route group so it can wrap both legal pages and docs without changing URLs:

```txt
app/(document-shell)/layout.tsx
app/(document-shell)/docs/page.tsx
app/(document-shell)/legal/terms/page.tsx
app/(document-shell)/legal/privacy/page.tsx
app/(document-shell)/legal/cookies/page.tsx
app/(document-shell)/legal/security/page.tsx
```

Then copy `sway-docs-page.tsx` to:

```txt
app/(document-shell)/docs/page.tsx
```

If `LegalHeader` has hardcoded breadcrumbs, add a `/docs` entry that renders the same breadcrumb style with:

```txt
Home > Documentation
```

If `AppSidebar` has hardcoded navigation, add a `Documentation` item only if Sway wants `/docs` visible in the sidebar. Keep the existing Legal Center, Quick Links, icon sizing, active state, spacing, and muted text classes unchanged.

Expected imports used by the page:

```tsx
import Link from "next/link";
import { BookOpenText, Flag } from "lucide-react";
import { Badge } from "@/components/ui/badge";
import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card";
```

If the repo aliases differ, update only the import paths. The JSX and classes intentionally match the legal pages observed on the live site.
327 changes: 327 additions & 0 deletions sway-docs-page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,327 @@
import Link from "next/link";
import { BookOpenText, Flag } from "lucide-react";

import { Badge } from "@/components/ui/badge";
import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card";

export const metadata = {
title: "Sway Bot Documentation",
description:
"Learn how to set up, configure, and manage Sway for your Roblox and Discord community.",
};

const cardClass = "border-white/10 bg-neutral-900/60 text-neutral-200";
const descriptionClass = "text-neutral-200/55";
const contentClass = "space-y-3 text-sm leading-6 text-neutral-200/75";
const linkClass = "underline text-neutral-200";

export default function DocsPage() {
return (
<div className="space-y-6 pb-2">
<div className="space-y-3">
<Badge
variant="outline"
className="flex w-fit items-center gap-1 border-white/20 bg-white/5 text-neutral-200"
>
<BookOpenText className="w-4 h-4" />
Documentation
</Badge>
<h1 className="text-3xl font-bold tracking-tight text-neutral-200">
Sway Bot Documentation
</h1>
<p className="text-sm leading-relaxed text-neutral-200/70">
Learn how to set up, configure, and manage Sway for your Roblox and
Discord community.
</p>
</div>

<Card className={cardClass}>
<CardHeader>
<CardTitle>1. Introduction</CardTitle>
<CardDescription className={descriptionClass}>
What Sway helps your community manage.
</CardDescription>
</CardHeader>
<CardContent className={contentClass}>
<p>
Sway is an all-in-one management platform for Roblox and Discord
communities. It helps teams manage verification, moderation,
activity tracking, staff workflows, and session operations from one
dashboard.
</p>
</CardContent>
</Card>

<Card className={cardClass}>
<CardHeader>
<CardTitle>2. Getting Started</CardTitle>
<CardDescription className={descriptionClass}>
Connect Sway and confirm the first setup works.
</CardDescription>
</CardHeader>
<CardContent className={contentClass}>
<ul className="list-disc pl-5">
<li>Invite Sway to your Discord server from the Sway dashboard.</li>
<li>
Open the dashboard and select the server you want to configure.
</li>
<li>
Confirm Sway has the permissions it needs for verification,
moderation, logging, and configured channels.
</li>
<li>
Enable verification and add clear instructions in the channel your
members will use.
</li>
<li>
Test the setup with a staff account before rolling it out to the
full community.
</li>
</ul>
</CardContent>
</Card>

<Card className={cardClass}>
<CardHeader>
<CardTitle>3. Verification and Security</CardTitle>
<CardDescription className={descriptionClass}>
Keep access trusted across Roblox and Discord.
</CardDescription>
</CardHeader>
<CardContent className={contentClass}>
<p>
Sway supports Roblox and Discord account verification so staff can
understand who is joining, what access they should receive, and
whether role checks are passing correctly.
</p>
<ul className="list-disc pl-5">
<li>Use account linking to connect Discord users with Roblox users.</li>
<li>Use role checks and access control to keep permissions clear.</li>
<li>
Review flagged or unusual users before taking action when possible.
</li>
<li>
Keep authentication limited to official provider login flows.
</li>
<li>
Use anti-abuse controls to reduce evasion, spam, and malicious
activity.
</li>
</ul>
</CardContent>
</Card>

<Card className={cardClass}>
<CardHeader>
<CardTitle>4. Moderation and Safety</CardTitle>
<CardDescription className={descriptionClass}>
Make enforcement consistent and accountable.
</CardDescription>
</CardHeader>
<CardContent className={contentClass}>
<p>
Sway provides moderation tools that help staff issue warnings, track
cases, review logs, and apply community rules consistently.
</p>
<ul className="list-disc pl-5">
<li>Use warnings and cases to keep moderation history organized.</li>
<li>Keep logs enabled so staff actions can be reviewed later.</li>
<li>
Limit moderation access to trusted roles with a clear reason to
use it.
</li>
<li>
Review enforcement patterns regularly to keep decisions fair and
consistent.
</li>
</ul>
</CardContent>
</Card>

<Card className={cardClass}>
<CardHeader>
<CardTitle>5. Staff and Team Management</CardTitle>
<CardDescription className={descriptionClass}>
Keep staff workflows visible as the team grows.
</CardDescription>
</CardHeader>
<CardContent className={contentClass}>
<p>
Sway helps teams manage promotions, infractions, rank changes, staff
oversight, and team organization from the dashboard.
</p>
<ul className="list-disc pl-5">
<li>Record promotions and rank changes with clear context.</li>
<li>Track infractions so staff history stays easy to review.</li>
<li>Use oversight tools to spot trends and support moderators.</li>
<li>
Keep staff roles and permissions organized as your community
changes.
</li>
</ul>
</CardContent>
</Card>

<Card className={cardClass}>
<CardHeader>
<CardTitle>6. Session Management</CardTitle>
<CardDescription className={descriptionClass}>
Track operations and review activity when needed.
</CardDescription>
</CardHeader>
<CardContent className={contentClass}>
<p>
Sway supports session management for tracking and coordinating
community operations across platforms.
</p>
<ul className="list-disc pl-5">
<li>Track active and completed sessions from the dashboard.</li>
<li>Monitor activity so staff can respond with context.</li>
<li>Review logs when investigating issues or handoffs.</li>
<li>
Coordinate session operations with the staff channels and roles
configured for your server.
</li>
</ul>
</CardContent>
</Card>

<Card className={cardClass}>
<CardHeader>
<CardTitle>7. Dashboard Configuration</CardTitle>
<CardDescription className={descriptionClass}>
Review the settings that control how Sway behaves.
</CardDescription>
</CardHeader>
<CardContent className={contentClass}>
<p>
Most setup work happens through the dashboard. Common configuration
areas include:
</p>
<ul className="list-disc pl-5">
<li>Verification channels</li>
<li>Log channels</li>
<li>Staff channels</li>
<li>Role mappings</li>
<li>Permission settings</li>
<li>Moderation settings</li>
<li>Session settings</li>
<li>Community requirements</li>
</ul>
</CardContent>
</Card>

<Card className={cardClass}>
<CardHeader>
<CardTitle>8. Best Practices</CardTitle>
<CardDescription className={descriptionClass}>
Keep the setup understandable for members and staff.
</CardDescription>
</CardHeader>
<CardContent className={contentClass}>
<ul className="list-disc pl-5">
<li>Test changes before rollout.</li>
<li>Keep logs enabled.</li>
<li>Use clear verification instructions.</li>
<li>Avoid unnecessary administrator permissions.</li>
<li>Regularly review staff actions.</li>
<li>Keep role mappings organized.</li>
<li>Review flagged users before taking action.</li>
</ul>
</CardContent>
</Card>

<Card className={cardClass}>
<CardHeader>
<CardTitle>9. Troubleshooting</CardTitle>
<CardDescription className={descriptionClass}>
Common setup issues and first checks.
</CardDescription>
</CardHeader>
<CardContent className={contentClass}>
<ul className="list-disc pl-5">
<li>
<span className="font-medium text-neutral-200">
Users cannot verify:
</span>{" "}
Check that the verification channel is visible, the instructions
are current, and users are following the correct account linking
flow.
</li>
<li>
<span className="font-medium text-neutral-200">
Roles are not being assigned:
</span>{" "}
Review role mappings, role hierarchy, and whether Sway has
permission to manage the target roles.
</li>
<li>
<span className="font-medium text-neutral-200">
Bot cannot send messages:
</span>{" "}
Confirm channel permissions, server permissions, and any channel
overrides that may block Sway.
</li>
<li>
<span className="font-medium text-neutral-200">
Dashboard changes are not applying:
</span>{" "}
Confirm the correct server is selected, save the configuration
again, and refresh the dashboard before testing.
</li>
<li>
<span className="font-medium text-neutral-200">
Server is missing from dashboard:
</span>{" "}
Make sure you are signed in with the correct Discord account and
have Owner or Administrator permissions for that server.
</li>
<li>
<span className="font-medium text-neutral-200">
Permission errors:
</span>{" "}
Review Sway's server role, Discord role hierarchy, channel
overrides, and the permissions configured in the dashboard.
</li>
</ul>
</CardContent>
</Card>

<Card className={cardClass}>
<CardHeader>
<CardTitle>10. Support</CardTitle>
<CardDescription className={descriptionClass}>
Where to go when the dashboard checks are not enough.
</CardDescription>
</CardHeader>
<CardContent className={contentClass}>
<p>
For help with setup, verification, permissions, dashboard behavior,
or account linking, contact Sway through the official{" "}
<Link href="/support" className={linkClass}>
Support
</Link>{" "}
community.
</p>
</CardContent>
</Card>

<Card className={cardClass}>
<CardContent className="flex items-start gap-2 text-sm text-neutral-200/75">
<Flag className="mt-0.5 h-5 w-5 shrink-0 text-neutral-200/55" />
<span>
This documentation may be updated as Sway services evolve. Continued
use of Sway means you should follow the current documentation and
policies.
</span>
</CardContent>
</Card>
</div>
);
}