Asagity is a modern, anime-inspired, decentralized federated social platform developed by CyaniAgent. It's not just another microblogging instance; it's a digital utopia that combines real-time social networking with a powerful multi-backend cloud drive.
Built with the ActivityPub protocol, Asagity allows you to seamlessly interact with users across the entire Fediverse (Mastodon, Misskey, Pleroma, etc.), all while enjoying a gorgeous, glassmorphism "Dashboard" UI.
- Native Federation: Fully compatible with the ActivityPub protocol. Connect, reply, and resonate with the entire Fediverse.
- Skyline Drive: A built-in, powerful cloud drive system. Supports local storage, S3-compatible object storage, and remote WebDAV mounting. Features chunked uploads and a native file manager UI.
- Topics System: Community-driven topic discovery with activity tracking, trending analysis, and real-time post integration.
- Anime-vibe & Dashboard UI: Breaking the traditional three-column layout. Asagity uses a modern SaaS-like "Inverted-L" layout with rich glassmorphism (backdrop-blur) effects, customizable themes, and a "Cyan" (Asagi) soul.
- Rich Toy-like Widgets: Built-in mini music player with lyrics sync, custom dynamic emojis, typing effects, and weather-based online status.
- Blazing Fast: Powered by Go (Goroutines) for massive concurrent federation broadcasting, and Next.js 16 (Turbopack) for instant frontend delivery.
Asagity is built as a symmetric Monorepo, separating the UI layer from the heavy-lifting core.
- Frontend (
/web): React 19, Next.js 16 (App Router, Turbopack), Tailwind CSS v4, Zustand, Framer Motion. - Backend (
/core): Go, GORM, Asynq (Redis-based task queue). - Infrastructure: PostgreSQL (Main database with JSONB), Redis (Cache & Queue).
- Container Runtime: Docker & Podman support with separate container configs.
Clone the repository and spin up the database and Redis using Docker or Podman:
git clone https://github.com/CyaniAgent/Asagity.git
cd AsagityFor Docker:
docker compose -f container/docker/docker-compose.yaml up -dFor Podman:
# Start services
cd container/podman && ./start.sh
# Or manually
podman compose -f container/podman/podman-compose.yaml up -dcd core
# Copy the env example and configure it
cp .env.example .env
go mod tidy
go run .Open a new terminal window:
cd web
pnpm install
pnpm devVisit http://localhost:3000 to enter the Cyan Universe!
Asagity/
├── web/ # Frontend (Next.js 16 + React 19)
│ ├── src/
│ │ ├── app/ # App Router pages
│ │ ├── components/ # React components
│ │ ├── stores/ # Zustand state management
│ │ ├── types/ # TypeScript types
│ │ ├── lib/ # Utilities (api.ts, utils.ts)
│ │ └── messages/ # i18n (zh-CN, zh-TW, en-US, ja-JP)
│ ├── public/ # Static assets (fonts, sounds, PWA)
│ └── middleware.ts # Auth route guard
├── core/ # Backend (Go)
│ ├── cmd/api/ # API entrypoint
│ ├── internal/
│ │ ├── module/ # Domain modules
│ │ │ ├── auth/ # Authentication
│ │ │ ├── drive/ # Skyline Drive
│ │ │ └── ...
│ │ └── platform/ # Shared infrastructure
│ └── ...
├── container/ # Container configurations
│ ├── docker/ # Docker Compose
│ └── podman/ # Podman Compose + scripts
└── docs/ # Documentation
Asagity is currently in its early development phase. PRs, issues, and feature requests are highly welcome!
This project is licensed under the AGPL-3.0 License.
