Anthonny.

MChan

MChan is a server-rendered anonymous Malaysian higher-education imageboard. Visitors can read approved boards, create text threads, reply anonymously, and report threads or replies without normal user accounts. The engineering problem is to keep an anonymous, inexpensive community useful without pretending that anonymity removes abuse, moderation work, or operational responsibility.

The current beta keeps public pages deliberately small: boards, thread pages, anonymous text posting, thread-scoped public poster IDs, reports, and read-only archives. Public readers do not receive accounts or persistent pseudonyms. The application is server-rendered, so the core experience does not depend on a frontend framework, Node, PostgreSQL, Redis, or object storage.

Moderation and privacy

Human moderation is the authority. Protected web moderation provides report queues and abuse-log views, while moderators can dismiss or resolve reports and hide, remove, quarantine, lock, or pin content. Admins can apply board and site bans; assigned board moderators are limited to their boards and cannot perform every global action. These transitions write atomic audit records instead of relying on a report count to remove content automatically. Reports are rate-limited, and public pages do not expose the restricted operational data used to investigate abuse.

Post-origin records are encrypted, access to them is protected and audited, and cleanup currently runs on a 30-day retention window. This is separate from the public poster ID shown inside a thread. Cloudflare Access identity is used for staff controls behind the isolated origin; it does not create a browser session for ordinary readers or posters.

Small services, graceful degradation

The main application, mchan-core, is Rust with Tokio, Axum, Askama, SQLx, and SQLite, packaged with Docker and deployed behind Cloudflare. Optional services keep the base system usable when they are absent. The mchan-image processor validates JPEG, PNG, and WebP uploads; if it is disabled or unavailable, text-only posting continues. Miya can allow, flag, or block text, but it never replaces human moderation, and an unavailable screening service records an audit note rather than silently blocking a post.

Optional companion services include mchan-ops for separate operations tooling and mchan-telegram for Telegram tooling. The mchan-core service also provides authenticated Discord moderation and best-effort Discord report notifications. These support staff workflows without becoming requirements for public reading.

Boundaries

MChan is open beta and active development. Accounts, persistent pseudonyms, institutional verification, search, board proposals, author deletion tokens, video or audio uploads, popularity metrics, recommendation feeds, public moderator identities, and automated report-count takedowns are not implemented. Those boundaries preserve a cheap infrastructure target and keep moderation decisions explicit.

Status: Open beta, active development.

Source: MChanTeam/mchan-core.

Back to work