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
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @tetherto/docs
60 changes: 60 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Code of Conduct

## Our Commitment

The Keet community is committed to fostering an open, professional, and respectful community.

We welcome contributors of all backgrounds and experience levels. Participation in Keet support resource building should be harassment-free and inclusive for everyone.

## Expected Behavior

All participants in the Keet community are expected to:

- Be respectful and constructive in communication
- Provide helpful and professional feedback
- Assume good intent
- Focus on what is best for the project
- Accept constructive criticism gracefully

## Unacceptable Behavior

The following behaviors are not tolerated:

- Harassment, discrimination, or hateful conduct
- Personal attacks or insulting language
- Public or private harassment
- Trolling, intimidation, or deliberate disruption
- Publishing private information without consent
- Any conduct that would be considered unprofessional in a workplace setting

## Scope

This Code of Conduct applies to:

- GitHub repositories
- Issues and pull requests

## Enforcement

The Documentation guild is responsible for enforcing this Code of Conduct.

**Documentation guild representative:** {You decide; recommend choosing someone who responds on GitHub}

If you experience or witness unacceptable behavior, report it privately to the Documentation guild representative.

Reports will be handled confidentially and reviewed in coordination with the Documentation guild team.

## Enforcement guidelines

The Documentation guild team may take any action deemed appropriate, including:

- Warning the participant
- Temporarily restricting access
- Permanently banning a participant from the community
- Removing content that violates this Code of Conduct

Decisions regarding enforcement are final.

## Amendments

This Code of Conduct may be updated from time to time by the Keet community to reflect evolving community needs.
260 changes: 260 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,260 @@
# Contribute to Keet Support

Thank you for your interest in contributing to `keet-support-docs`.

[This repository](https://github.com/tetherto/keet-support-docs) is the Keet Support documentation site. It contains the static Next.js + Fumadocs app, docs content, automation scripts, and SEO tooling built on the `@tetherto/docs-seo-*` packages.

## Repository structure

- `src/`: Next.js app, layouts, providers, and shared UI components
- `content/`: MDX documentation content, organized into section folders (for example `installation-and-setup/`, `keet-groups/`, `voice-and-video-calls/`)
- `public/`: Static assets. `public/og/docs/` is generated during Open Graph image builds and is gitignored
- `scripts/`: Automation, including Open Graph generation, image-dimension generation, redirect stubs, and link and heading checks
- `source.config.ts`: Fumadocs MDX collection and the SEO frontmatter schema
- `.source/`: Fumadocs MDX output generated during install; gitignored and not committed

## Development environment setup

### Fork and clone

Fork the repository to your own GitHub account, then clone your fork locally:

```bash
git clone git@github.com:your-username/keet-support-docs.git
cd keet-support-docs
```

Add the upstream repository so you can keep your fork current:

```bash
git remote add upstream git@github.com:m4sterbunny/keet-support-docs.git
```

## Content contributions

Docs pages live in `content/` section folders and are processed by Fumadocs MDX.

Every docs page must include a non-empty `description` frontmatter value.

For built sites, this field is required for page metadata, Open Graph and Twitter cards, and JSON-LD.

Optional SEO frontmatter fields include:

- `noIndex`: Excludes the page from the sitemap and sets robots metadata to `noindex`.
- `ogImage`: Overrides the Open Graph and Twitter image with an absolute URL or site-relative static asset path.
- `schemaType`: Sets the JSON-LD type to `TechArticle`, `APIReference`, or `WebPage`.
- `docType`: Describes the page as `tutorial`, `how-to`, `reference`, `explanation`, `page`, `faq`, or `getting-started`.
- `lastModified`: Sets sitemap `lastmod` and JSON-LD publication metadata.

During `next build` and local development, the SEO helpers may print `[@tetherto/docs-seo]` warnings for missing optional fields. Treat required `description` warnings as blockers before opening a pull request.

## Pull request workflow

### Conventional types

Use Conventional Commits-style types for branch names and pull request titles.

| Type | Use for |
|---|---|
| `feat` | New features |
| `fix` | Bug fixes |
| `docs` | Documentation changes |
| `refactor` | Code refactoring without behavior changes |
| `test` | Test additions or changes |
| `chore` | Tooling, dependencies, and repo maintenance |
| `perf` | Performance improvements |
| `style` | Formatting only, with no behavior changes |
| `ci` | CI configuration changes |
| `build` | Build system or external dependency changes |

### Branch naming convention

Create branches in your fork using this pattern:

```bash
{type}/{short-description}
```

Examples:

- `docs/frontmatter-guidance`
- `fix/og-image-paths`
- `chore/update-fumadocs`

### Pull request steps

1. Sync your fork with upstream `main`.
2. Create a branch from your local `main`.
3. Make your changes.
4. Run the relevant local checks.
5. Commit your changes with meaningful messages.
6. Push the branch to your fork.
7. Open a pull request against `m4sterbunny/keet-support-docs` `main`.

### Pull request checklist

Before submitting your pull request, confirm that:

- [ ] New or updated docs pages include required `description` frontmatter
- [ ] Generated files such as `.source/` and `public/og/docs/` are not committed
- [ ] The relevant local checks pass

### Pull request title format

Use this format:

```bash
{type}({scope}): {description}
```

Examples:

- `docs(readme): clarify local install flow`
- `fix(og): normalize static image paths`
- `chore(deps): update fumadocs`

## Review and merge

Maintainers review pull requests for correctness, maintainability, docs quality, and build safety. Address requested changes in your branch and push updates to the same fork branch.

Maintainers decide the final merge strategy. Prefer small, focused pull requests that are easy to review.

## Code and documentation standards

- Follow the existing TypeScript, React, and Fumadocs patterns in nearby files
- Keep generated artifacts out of commits unless a maintainer explicitly asks to vendor them
- Use clear MDX headings, stable links, and concise examples
- Keep SEO metadata current when adding or moving docs pages
- Avoid adding new abstractions unless they reduce real duplication or match an existing local pattern
- You may follow this opinionated style guide

## Issues and security

Use GitHub issues for bugs, documentation problems, feature requests, and security concerns that can be discussed publicly.

Do not include secrets, private keys, tokens, customer data, or other sensitive material in an issue or pull request.

## Community

Follow the [Code of Conduct](CODE_OF_CONDUCT.md) when participating in this project.

🚀 Thanks for contributing. EVERYBODY appreciates your help improve to `keet-support-docs`.

## Opinionated style guide

### Overview

- Google developer style
- US English
- Bullet lists no stop (- Keet not - Keet.)
- umbered lists stop
- Follow Diataxis information architecture
- No positional references ("Swap the filename for any other model from the table” NOT "Swap the filename for any other model from the table above”)
- Links

### Frontmatter and linking strategy

Links are from relevant text NOT "see ..." (do "The [Worker install pattern][install-pattern] defines the per-Worker mechanics." NOT "See the Worker [install pattern][install-pattern] for the per-Worker mechanics.")

Ask maintainer if the page you are building is to be ported to `tether.io`, if so follow reference-style link definitions plus routing comments:

/mdk-prv/docs/reference/maintainers/port-signals.md

### Fixed sections, in order

1. `## Overview` — one paragraph or `## How it works`+ "This page ...
2. `## Next steps` — bullet list, each item `Description — [link](path)`

### Admonitions

Use GFM for markdown pure sites:

- `> [!NOTE]` — context, side info
- `> [!IMPORTANT]` — common failure modes and their fix
- `> [!WARNING]` — security or destructive action

Use Fumadocs admonitions for HTML sites:

<Callout type="info">
This is an **info** callout — use for general information.
</Callout>

<Callout type="warn">
This is a **warn** callout — use for warnings.
</Callout>

<Callout type="warning">
This is a **warning** callout — alias for warn.
</Callout>

<Callout type="error">
This is an **error** callout — use for errors or critical issues.
</Callout>

<Callout type="success">
This is a **success** callout — use for success messages.
</Callout>

<Callout type="idea">
This is an **idea** callout — use for tips or suggestions.
</Callout>


### Code blocks

- Always fenced with language tag (`bash`, `js`, etc.) except terminal session output which uses plain ` ``` `
- Expected output blocks are plain ` ``` ` with a preceding "Expected output" sentence

### Tutorial style

Inherits from the opinionated style, with the following additions:

> [!NOTE]
> description: Style guide for Documentation Guild tutorials
> context: globs: docs/tutorials/**/*.md

#### Tutorial frontmatter

```yaml
title: Verb-first, outcome-focused title
description: From X to Y in Z minutes
```

#### Fixed sections

Select from the following as they are needed, in order:

1. `> [!NOTE]` linking to prerequisite concepts (if needed)
2. `## Overview` — one paragraph + "What you'll have at the end" bullet list + orienting sentence pointing at the example
3. `## Prerequisites` — plain bullet list (`- Tool vX`)
4. `<Steps>` … `</Steps>` — all numbered steps
5. `## What just happened` — numbered list, **bold term** then explanation
6. `## Cleanup` — how to stop and remove state
7. `## Next steps` — bullet list, each item `Description — [link](path)`

#### Steps structure

```md
<Steps>

<Step>

##### Step title

###### N.M Sub-step title

content

</Step>

</Steps>
```

- `###` for each `<Step>` title — no "Step N:" prefix (component numbers automatically)
- `####` for sub-steps — keep the `N.M` prefix e.g. second part of Step 1 is 1.2
- Optional steps: `### (Optional) Title`

#### Code blocks

- Always fenced with language tag (`bash`, `js`, etc.) except terminal session output which uses plain ` ``` `
- Expected output blocks are plain ` ``` ` with a preceding "Expected output" sentence
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Keet Support Docs

Static documentation site for [Keet](https://keet.io), built with [Fumadocs](https://fumadocs.dev).
[This repository](https://github.com/tetherto/keet-support-docs) holds the static documentation site for [Keet](https://keet.io), built with [Fumadocs](https://fumadocs.dev).

## Setup

Expand Down
3 changes: 2 additions & 1 deletion content/community-and-support/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ Please use this group chat only for reporting bugs, providing feedback or Keet s

## Where can I find the latest announcements about Keet?

You can find the latest news and updates about Keet and Pear Runtime in the Keet News group. To join, go to **Profile** > **Keet News** or use the link below.
You can find the latest news and updates about Keet and Pear Runtime in the Keet News group. To join, go to
**Profile** > **Keet News** or use the following link.

### Keet News group chat

Expand Down
3 changes: 2 additions & 1 deletion content/file-sharing-and-messages/messaging-on-keet.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,8 @@ You can review each DM request and choose to '**Accept'** or '**Ignore'**:
You can[ leave a chat with a peer](/keet-groups/leave-group) at any time and create a new one later.
To leave, open the '**Group options'** and select **‘Leave DM’** at the bottom.

Before leaving, you’ll be asked to confirm that all media files and chat history will be deleted from your device. After leaving, you won’t be able to reopen this chat.
Before leaving, you’ll be asked to confirm that all media files and chat history will be deleted from your device.
After leaving, you won’t be able to reopen this chat.

![Before leaving, you’ll be asked to confirm that all media files and chat history will be deleted from your ….](/images/file-sharing-and-messages/messaging-on-keet/before-leaving-ll-asked-confirm-14.png "Messaging on Keet ✉️")

Expand Down
6 changes: 4 additions & 2 deletions content/file-sharing-and-messages/personal-group.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ schemaType: TechArticle

## Can I create a group to save personal notes and files?

Yes. You can create a room with your saved messages and favourites, where you’re the only participant — great for keeping personal notes and sharing files across your devices.
Yes. You can create a room with your saved messages and favourites, where you’re the only participant — great for keeping
personal notes and sharing files across your devices.

## Create a group

Expand All @@ -27,7 +28,8 @@ Click '**Start chat' \[📝] button on the top of the screen

![Keet app screenshot: Explore possibilities.](/images/file-sharing-and-messages/personal-group/explore-possibilities-screenshot-4.png "Personal Group 📂 · Explore possibilities")

Once the group is created, you become its administrator. Now you can leave notes for yourself and upload files that will sync across your linked devices.
Once the group is created, you become its administrator. Now you can leave notes for yourself and upload files
that will sync across your linked devices.

<Callout type="info">
🟢 Since it’s peer-to-peer, both devices need to be online for file transfer.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ Since it’s peer-to-peer, both devices need to be online for smooth and fast fi

### Receive and download files

Shared files appear in the chat feed. To preview, click images, videos, or supported file types (e.g., .txt, .pdf). To download a file, click the three dots next to it and select '**Save to files**'.
Shared files appear in the chat feed. To preview, click images, videos, or supported file types (e.g., .txt, .pdf).
To download a file, click the three dots next to it and select '**Save to files**'.

![Shared files appear in the chat feed. To preview, click images, videos, or supported file types (e.g., .txt….](/images/file-sharing-and-messages/sharing-files-and-media/shared-files-appear-chat-feed-3.png "Sharing Files and Media 🗃️")

Expand Down
Loading