Memos is a self-hosted, full-stack memo/note-taking application with a Go backend and React/TypeScript frontend. It provides rich features including markdown editing with inline images and math, attachment management (images, video, audio, motion photos), spaces for collaboration, calendar and map views, AI-powered audio transcription, webhooks, SSO/OAuth2 identity providers, and a CEL-based filter engine for advanced querying. The architecture is layered with enforced import rules: internal utilities, provider interfaces (AI, storage, IDP), core business logic, a store layer with driver abstraction supporting SQLite, MySQL, and PostgreSQL, and a server layer exposing ConnectRPC/gRPC and HTTP APIs. The frontend uses CodeMirror 6 for the editor, TanStack Query for data fetching, and extensive custom hooks and UI primitives. The codebase is well-tested with unit, integration, and benchmark tests across both backend and frontend. Notable engineering highlights include a custom Common Expression Language (CEL) engine that compiles user-defined filters to SQL, a sliding window rate limiter, a thread-safe in-memory cache with TTL, and a protocol abstraction layer that transparently handles gRPC and ConnectRPC headers.
Mastodon is a full-stack, federated social network server implementing the ActivityPub protocol. It provides a production-grade Rails API backend with a React/Redux frontend, real-time streaming via Node.js, and extensive background job processing with Sidekiq. The system supports user timelines, media attachments, content moderation, admin dashboards, OAuth authentication, and federation with other ActivityPub-compatible services. The codebase is large and actively maintained, with a clear separation of concerns across controllers, services, serializers, workers, and frontend components. It includes advanced features such as trending content, annual user reports, FASP data sharing, and a comprehensive admin interface. While the architecture is well-structured, there are signs of technical drift including mixed frontend patterns (legacy JSX vs modern TypeScript/Redux Toolkit), placeholder Ruby/Node version numbers, and some deprecated API endpoints.
Memospot is a desktop application that bundles the Memos note-taking service as a self-contained Tauri v2 wrapper. It manages the Memos server as a sidecar process, provides a SvelteKit frontend for settings and interaction, and handles configuration persistence, database migrations, window state, keyboard shortcuts, and auto-updates. The architecture is a Rust backend with a web frontend, using a Rust workspace with multiple crates for config, dialogs, sidecar management, port picking, and homedir resolution. The frontend is built with SvelteKit, Tailwind CSS, and uses Paraglide for i18n. The build system includes GitHub Actions CI/CD, Docker-based builds, and installers for Windows (NSIS/WiX), Linux (deb, AppImage, Flatpak), and macOS. The codebase demonstrates solid engineering practices with clean abstractions and reusable utility crates, though it has some pinned dependencies and complex CI workflows.
PaoPao-ce is a full-stack micro-community social media platform written in Go (backend) and Vue 3 (frontend). It provides a feature-rich experience similar to Twitter/Weibo, including posts (tweets) with multimedia attachments, comments, likes, collections, private messaging, user profiles, topic/tag support, and a wallet system with Alipay integration. The architecture is modular and configurable, supporting multiple databases (MySQL, PostgreSQL, SQLite), search engines (Meilisearch, Zinc), object storage backends (LocalOSS, MinIO, AliOSS, COS, Huawei OBS, S3), caching layers (Redis, BigCache), and observability tools (OpenTelemetry, Sentry, Pyroscope, pprof). The backend uses Gin for HTTP, GORM for ORM, go-mir for API code generation, and protobuf for gRPC services. The frontend is built with Vue 3, Naive UI, Vite, and Pinia. Key features include feature toggles for different deployment suites, a runtime settings override via admin UI, and background job processing for search indexing and metrics. The platform emphasizes self-hosting and customization, with comprehensive SQL migration scripts and support for desktop clients via Tauri. The codebase demonstrates solid engineering practices with interface-based dependency injection, layered architecture, and code generation, though it carries some technical debt from deprecated backends and WIP features.