feat: update documentation and add responsiveness

This commit is contained in:
Konstantin Zhigaylo 2025-06-24 10:14:12 +03:00
parent 37130b4c32
commit b924e13e2b
No known key found for this signature in database
GPG Key ID: DD1C2780F0E05B5C
6 changed files with 166 additions and 40 deletions

31
.github/ISSUE_TEMPLATE/add-project.md vendored Normal file
View File

@ -0,0 +1,31 @@
---
name: Add Project.
about: Request to add your project to the list.
title: 'Add <project>'
labels: [ ]
assignees: ''
---
**The URL to projects Git page:**
<!-- URL to the Git repository of your project. If you project does not have Git, leave it blank -->
**If project is not on Git, please provide the URL to the project download:**
<!-- URL to the project download page. Otherwise, leave it blank -->
**Project description:**
<!-- What is your project about? -->
**What is your project:**
- [ ] Client
- [ ] Server
- [ ] Development tool (library, framework, etc.)
**Supported features:**
- [ ] Real Address Chat protocol (RAC)
- [ ] WebSocket Real Address Chat protocol (WRAC)
- [ ] RAC v1.0
- [ ] RAC v1.99.2
- [ ] RAC v2.0
- [ ] TLS connection (RACS/WRACS)

View File

@ -0,0 +1,29 @@
---
name: Update Project.
about: Request to update information about your project to the list.
title: 'Update <project>'
labels: [ ]
assignees: ''
---
**Specify a new URL to the Git repository:**
<!-- URL to the Git repository of your project. If you project does not have Git, leave it blank. Leave empty if it is unchanged. -->
**If project is not on Git, please provide the new URL to the project download:**
<!-- URL to the project download page. Otherwise, leave it blank -->
**Updated project description:**
<!-- What is your project about? Leave empty if it is unchanged. -->
**What is your project:**
- [ ] Client
- [ ] Server
- [ ] Development tool (library, framework, etc.)
**Supported features:**
- [ ] Real Address Chat protocol (RAC)
- [ ] WebSocket Real Address Chat protocol (WRAC)
- [ ] RAC v1.0
- [ ] RAC v1.99.2
- [ ] RAC v2.0
- [ ] TLS connection (RACS/WRACS)

31
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,31 @@
name: Check Next.js Build
on:
push:
branches: [ main ]
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 24
cache: 'pnpm'
- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 8
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build Next.js app
run: pnpm run build

View File

@ -1,3 +1,58 @@
# Racinfo
# 🍵 Racinfo
An unofficial webpage with information about Real Address Chat protocol.
An unofficial webpage with information about Real Address Chat protocol made with Next.js.
This is a personal project and is not affiliated with the original Real Address Chat developer.
[Live in production website](https://racinfo.kostyazero.com)
## Features
- List of client, server and development tools for Real Address Chat.
- Comprehensive documentation of the Real Address Chat protocol and its successors.
- List of known User Agents with their regular expressions and colors.
- Packed with modern and sleek design, looks great on mobile devices.
## Host your Racinfo
It is strongly recommended to use Docker to host Racinfo. You can use the following command to run it:
```bash
docker build -t racinfo .
docker up -d racinfo
```
Racinfo by default hosts on port 8085. You can change it by using the `-p` flag in the `docker up` command, like this:
```bash
# Instead of 8085, you can use any port you want, like 3000
docker up -d -p 3000:8085 racinfo
```
But if you don't want to use Docker, you can run it with local Node.js installation:
```bash
corepack enable pnpm && corepack install -g pnpm@latest
pnpm install
pnpm build
# Replace 8085 with the port that you want to use
pnpm start --port 8085
```
## Contributing
If you are a developer of a client, server of development tool for Real Address Chat, you can contribute to Racinfo by adding your tool to the list.
You can also contribute by improving the documentation or fixing bugs.
Also, you should get acknowledged with these rules before contributing:
- The project should be related to Real Address Chat protocol, or its successors.
- Your project should have a Git repository, or link to its download page. We do not accept projects that are not hosted on Git or have a download link.
If you want to add your project to the list, please follow these steps:
1. Open an Issue on the [GitHub repository](https://github.com/kostya-zero/racinfo) by using the template **"Add Project"** where you need to replace `Project` with your project name.
2. Attach `add-client`, `add-server` or `add-tool` tag to the issue.
3. Fill the issue template with the information about your tool as described in template.
If you are an author or maintainer of a project that is already listed in Racinfo, you can also open an Issue with the template **"Update Project"** to update the information about your project.

View File

@ -4,13 +4,13 @@ import Footer from "@/components/Footer";
import Text from "@/components/blocks/Text";
import PageTitle from "@/components/blocks/PageTitle";
import Title from "@/components/blocks/Title";
import InlineCode from "@/components/blocks/InlineCode";
export default function Projects() {
const clients: ProjectProps[] = [
{
name: "Tower",
authorId: "kostya-zero",
authorGit: "https://github.com/kostya-zero",
projectGit: "https://github.com/kostya-zero/tower",
description: "A modern desktop client for RAC protocol built with Tauri.",
tags: ["Unreleased", "WRAC", "RAC", "v2", "TLS"],
@ -18,7 +18,6 @@ export default function Projects() {
{
name: "bRAC",
authorId: "MeexReay",
authorGit: "https://github.com/MeexReay",
projectGit: "https://github.com/MeexReay/bRAC",
description: "Better RAC client.",
tags: ["Active", "WRAC", "RAC", "v2", "TLS"],
@ -26,16 +25,15 @@ export default function Projects() {
{
name: "clRAC",
externalDownload: true,
authorId: "ghost",
authorGit: "https://github.com/ghost",
projectGit: "https://github.com/MeexReay/bRAC",
authorId: "sugoma",
externalLink: "https://wdfiles.ru/Ofx7",
projectGit: "",
description: "The official RAC client.",
tags: ["Unknown", "RAC", "v2"],
},
{
name: "Mefedroniy",
authorId: "OctoBanon-Main",
authorGit: "https://github.com/OctoBanon-Main",
projectGit: "https://github.com/OctoBanon-Main/mefedroniy-client",
description: "TUI client for Real Address Chat protocol. ",
tags: ["Active", "RAC", "v1.99.2"],
@ -43,7 +41,6 @@ export default function Projects() {
{
name: "Snowdrop",
authorId: "Forbirdden",
authorGit: "https://github.com/Forbirdden",
projectGit: "https://github.com/Forbirdden/Snowdrop",
description: "Coming Soon™",
tags: ["Unreleased", "WRAC", "RAC", "v2"],
@ -51,7 +48,6 @@ export default function Projects() {
{
name: "cRACk",
authorId: "pansangg",
authorGit: "https://github.com/pansangg",
projectGit: "https://github.com/pansangg/cRACk",
description: "TUI RAC client on Python.",
tags: ["Active", "RAC", "v2"],
@ -59,7 +55,6 @@ export default function Projects() {
{
name: "CRAB",
authorId: "pixtated",
authorGit: "https://gitea.bedohswe.eu.org/pixtaded",
projectGit: "https://gitea.bedohswe.eu.org/pixtaded/crab",
description: "Crimean RAC Bundle ",
tags: ["Abandoned", "RAC", "v1.99.2"],
@ -67,7 +62,6 @@ export default function Projects() {
{
name: "dobroho_vechora",
authorId: "bedohswe",
authorGit: "https://gitea.bedohswe.eu.org/bedohswe",
projectGit: "https://gitea.bedohswe.eu.org/bedohswe/dobroho_vechora",
description: "RAC client made with Bash script.",
tags: ["Abandoned", "RAC", "v1.0"],
@ -78,7 +72,6 @@ export default function Projects() {
{
name: "sRAC",
authorId: "MeexReay",
authorGit: "https://github.com/MeexReay",
projectGit: "https://github.com/MeexReay/sRAC",
description: "Simple RAC server.",
tags: ["Active", "WRAC", "RAC", "v2", "TLS"],
@ -86,24 +79,22 @@ export default function Projects() {
{
name: "Gashishnik",
authorId: "OctoBanon-Main",
authorGit: "https://github.com/OctoBanon-Main",
projectGit: "https://github.com/OctoBanon-Main/mefedroniy-client",
description: "A WRAC server.",
tags: ["Unreleased", "WRAC", "v2"],
},
{
name: "lRACd",
authorId: "ghost",
authorId: "sugoma",
externalDownload: true,
authorGit: "https://github.com/MeexReay",
projectGit: "https://github.com/MeexReay/bRAC",
externalLink: "https://wdfiles.ru/Obvt",
projectGit: "",
description: "The official implementation of RAC server.",
tags: ["Unknown", "RAC", "v2"],
},
{
name: "CRAB",
authorId: "pixtated",
authorGit: "https://gitea.bedohswe.eu.org/pixtaded",
projectGit: "https://gitea.bedohswe.eu.org/pixtaded/crab",
description: "Crimean RAC Bundle ",
tags: ["Abandoned", "RAC", "v1.99.2"],
@ -111,7 +102,6 @@ export default function Projects() {
{
name: "AlmatyD",
authorId: "bedohswe",
authorGit: "https://gitea.bedohswe.eu.org/bedohswe",
projectGit: "https://gitea.bedohswe.eu.org/bedohswe/almatyd",
description: "Open source server for Sugoma's RAC protocol ",
tags: ["Abandoned", "RAC", "v1.0"],
@ -129,15 +119,17 @@ export default function Projects() {
This is a curated list of projects that is related to RAC protocol.
There is a client and server implementations of RAC. Note that some
projects are not available on Git services and should be downloaded
from external sources.
from external sources. They are marked with
<InlineCode>external@</InlineCode> text at the beginning of the author
ID. If you want to add your project to this list, please make an issue
on our GitHub repository.
</Text>
<Title id={"clients"}>Clients</Title>
<Text>
Here is a grid of all available client for RAC protocol with their
respective repository link. Also, you can hover over the author
username to go to it&apos;s GitHub profile page.
respective repository link.
</Text>
<div className={"grid grid-cols-2 gap-4 w-full"}>
<div className={"grid grid-cols-1 md:grid-cols-2 gap-4 w-full"}>
{clients.map((client) => (
<ProjectCard
key={client.name}
@ -145,7 +137,6 @@ export default function Projects() {
externalDownload={client.externalDownload || undefined}
externalLink={client.externalLink || undefined}
authorId={client.authorId}
authorGit={client.projectGit}
projectGit={client.projectGit}
description={client.description}
tags={client.tags}
@ -157,14 +148,13 @@ export default function Projects() {
And here are the servers implementation! You can choose whatever you
want and setup your own RAC server.
</Text>
<div className={"grid grid-cols-2 gap-4 w-full"}>
<div className={"grid grid-cols-1 md:grid-cols-2 gap-4 w-full"}>
{servers.map((server) => (
<ProjectCard
key={server.name}
name={server.name}
externalDownload={server.externalDownload}
authorId={server.authorId}
authorGit={server.projectGit}
projectGit={server.projectGit}
description={server.description}
tags={server.tags}

View File

@ -4,7 +4,6 @@ import Link from "next/link";
type ProjectProps = {
name: string;
authorId: string;
authorGit: string;
projectGit: string;
description: string;
externalLink?: string;
@ -14,7 +13,6 @@ type ProjectProps = {
function ProjectCard({
name,
authorGit,
externalDownload,
projectGit,
externalLink,
@ -24,6 +22,7 @@ function ProjectCard({
}: ProjectProps) {
return (
<Link
target={"_blank"}
href={
externalDownload && externalDownload ? externalLink || "" : projectGit
}
@ -35,18 +34,9 @@ function ProjectCard({
<h4 className={"text-2xl text-stone-300 font-rokkitt font-semibold"}>
{name}
</h4>
{externalDownload ? (
<p className={"text-stone-500"}>external download</p>
) : (
<Link
href={authorGit}
className={
"text-stone-500 transition-colors duration-200 hover:text-stone-50"
}
>
@{authorId}
</Link>
)}
<p className={"text-stone-500"}>
{externalDownload ? `external@${authorId}` : `@${authorId}`}
</p>
</div>
<p className={"text-stone-400 mb-1"}>{description}</p>