NOTR — Feature Documentation

NOTR is a self-hosted social network. You install it on your own server, you own the database, and you decide which parts of it exist. This document describes what the platform does, area by area.

For installation see INSTALLATION.md. For the GraphQL API see API.md. For server setup see DEPLOY_VPS.md.

At a glance: 44 member-facing screens · 55 admin sections · 228 database tables · English and Portuguese out of the box.


Contents


Feature switches

Twelve major areas can be switched off entirely from the admin panel. A disabled area disappears from navigation and its routes redirect home — it is not merely hidden with CSS.

marketplace · audio · streams · groups · crowdfunding · stories · match · ads · moderation · KYC verification · NSFW blur · image regeneration

This matters if you want a narrower product. Turning off marketplace, streams, audio and cinema leaves a focused text-and-photo network; leaving everything on gives a platform closer to a full media site.


Posts and the feed

Composing. Text, photos, video, GIFs, polls, file attachments, audio tracks, link previews and location. Posts can be marked as spoilers (blurred until tapped), as NSFW, or as premium — paid content that other members unlock with platform currency.

Feed tabs. For You (algorithmic), Following, Friends (mutuals), Global, Posts, Favorites and Saved. Members can reorder the tabs to their liking.

The algorithm. For You is weighted across interest match, engagement, recency, social proximity, retention and rewatch behaviour. Every weight is adjustable in the admin panel, and optional OpenAI embeddings can be enabled for semantic interest matching.

Reading. Infinite scroll with virtualised rendering, so a feed thousands of posts long stays responsive. New posts announce themselves in real time through a live connection rather than polling — a pill appears the moment someone you follow publishes.

Interaction. Likes, comments with unlimited nesting, reposts, quote posts, bookmarks, reactions and view counts. Comment threads and posts can both be translated into the reader's language on demand.


Profiles

Cover image, avatar with optional animated decorations, bio, location, links to eight external platforms, interests, and a customisable tab order.

Recent views. Like Threads, a profile shows how many times that member's posts were seen in the last thirty days. It is a rolling window, not a lifetime total. It becomes public only once it passes 1,000 views, the owner always sees their own, and it can be hidden completely in privacy settings — hiding withholds the number from the API, not just from the page.

Privacy. Private profiles (followers-only posts), message restrictions, hidden following list, hidden online status, and a hideable join date.

Verification. Blue check for individuals, gold for organisations, plus role badges — music artist, cinema, photographer, actor, painter, dancer, news publisher and moderator. Members request verification from their profile and admins review it.

Identity checks. Optional KYC with document upload and admin review, required before withdrawals if you enable it.


Discovery and search

A single search covers members, posts and hashtags at once, with results grouped by type. Alongside it the Explore screen suggests people to follow and surfaces content by interest, so a new account has somewhere to go before it follows anyone.

Hashtags are first-class: they link, they aggregate, and trending ones are surfaced in the sidebar.


Notifications

Likes, comments, follows and follow requests, mentions, reposts, rewards earned and system messages. Notifications group sensibly rather than arriving one per event — ten likes on one post read as one line, not ten.

Delivery is real time in the app, with optional browser and mobile push. Members choose their own notification sound, and admins set the defaults.


Creator statistics

A premium analytics screen for members who want to understand their reach: account insights, follower growth, engagement rate and velocity, likes and comments over time, content mix, and the best time of day to post based on their own audience.


Stories and highlights

Photo, video and text stories with background colours, music, links and stickers. They expire after 24 hours, show who viewed them, and support replies and reactions.

Highlights save stories to a profile permanently. Highlighted stories and their view counts are never deleted by the retention job, so a highlight from two years ago still shows what it earned.


Reels

Full-screen vertical video with an infinite swipe feed, background music from the sound library, on-video text overlays, and a dedicated composer. Only one video plays at a time regardless of how many are on screen.


Messaging

Direct messages. Text, media, files, voice notes, GIFs, replies, edits, reactions, read receipts, typing indicators and disappearing conversations. Creators can charge for the first message.

Group chats. Topics, roles (admin, moderator, member), invitations, member management, kick and ban with durations, pinned messages and shared media.

Translation. Messages translate into the reader's language automatically, in both direct and group chats. The setting and the fetched translations are shared between the two.


Communities

Public or private groups with their own feed, member roles, join requests, post approval queues, custom topics, and per-group toggles for guides, featured posts, questions, media and files.


Live streaming

RTMP ingest with an OBS-compatible stream key, or manual streaming. Categories, thumbnails, live chat with moderation, donations with on-screen alerts, and paid subscriptions.

Real presence counts who is genuinely watching, updated as viewers arrive and leave, and expires anyone whose connection drops. This is separate from the subscriber count, and both are shown.


Audio

A full audio side to the network: track pages with waveform players, playlists with automatic advance, categories, charts, sound challenges, and a library members can browse. Tracks can be posted to the feed, used in reels and stories, and sold as premium content.


Cinema

Movies and series with seasons and episodes, trailers, cast, ratings, watchlists, comments and reactions. Supports direct video, embeds and IPTV import.


Marketplace

Classified listings with categories, conditions, photos, prices, seller profiles, ratings, favourites and buyer–seller messaging. Admin moderates listings and manages the category tree.


Match

Opt-in dating built on the same accounts: photo galleries, gender preferences, likes, matches and per-photo comments and views. Entirely separate from the main feed, and off by default.


Wallet and money

Two currencies:

The conversion rate between Notcoin and real currency is set in the admin panel, along with the primary currency and exchange rates for others.

In. PayPal, Stripe and bank transfer, each switchable. Out. Withdrawals to bank or PayPal, with configurable minimums, maximums, fees and a spread, optionally gated behind KYC and a trust score.

The bank. Every movement is double-entered against a site bank account with an immutable ledger, so platform revenue and member balances always reconcile. The admin panel includes a reconciliation view for auditing.

Members spend on premium posts, creator subscriptions, stream subscriptions, donations, super chats, marketplace purchases, premium packs and advertising.


Earning and gamification

Reward rules. Admins define what earns what: create a post, receive a like, start a stream, list a product — 28 events in total, each paying Notcoin, NotPoints or reputation, with daily limits, minimum reputation and an optional burn percentage.

Daily missions. Rotating tasks with progress tracking, completion bonuses and streaks. Progress is recorded by the server when you actually do the thing, not by the page you happen to have open.

Reputation and leaderboard. A score built from engagement consistency, community feedback, content completion and report history, feeding weekly and monthly leaderboards filtered by following, country or everyone. The top three carry a gold, silver or bronze medal beside their name across the site.

Trust score. A separate anti-fraud score from account age, verification, activity and penalties, used to gate withdrawals and missions.


Advertising

Self-serve campaigns members create and fund from their wallet, plus promoted posts. Targeting, budgets, scheduling, impression and click tracking, and admin approval. Frequency and placement in the feed are configurable, and premium members see no ads.


Crowdfunding

Campaigns with goals, deadlines, tiers, donor lists and progress tracking, funded in platform currency with a configurable platform fee.


News

A publisher role with article posts, categories, featured placement and a dedicated news feed — useful if you want an editorial layer alongside the social one.


The AI assistant

An optional in-platform bot that posts on a schedule you set, replies when mentioned or replied to, answers direct messages, and can tell members what changed in the latest release by reading the changelog. Works with OpenAI-compatible providers; you supply the key and choose the model.


Safety and moderation


Admin panel

Fifty-five sections at /backadmin, covering members, content, money, configuration and infrastructure. Highlights:

Lists are paginated throughout, and every destructive action asks first.


Languages

English and Portuguese ship complete, across roughly 3,500 translated labels. Languages are stored in the database and edited in the admin panel, so adding a third means translating rows rather than editing code. Members choose their language; new visitors can be detected automatically.

Content translation — posts, comments and messages — is separate and powered by your AI provider.


Installing as an app

NOTR is a progressive web app: members can install it to a phone home screen or desktop, and it supports push notifications, an offline shell and a configurable app icon and splash screen.


Technical overview

Frontend React 19, Vite 7, Apollo Client 4
Backend Node with Express 5, Apollo Server, GraphQL 16
Database MySQL / MariaDB — 228 tables
Real time Socket.IO 4 and GraphQL subscriptions
Cache Redis, optional — falls back to memory
Media ffmpeg for transcoding, thumbnails and streaming
Storage Local disk or S3-compatible object storage

Performance. Virtualised feeds, DataLoader batching to avoid N+1 queries, Redis-backed caches for settings and translations, and lazy-loaded routes.

Updates. Releases are uploaded as a zip through the admin panel. The platform applies file changes and database migrations itself, tracks which migrations have run, and rolls back if anything fails.

Licensing. Each installation is bound to one domain by a signed licence key, verified against the licence server with a grace period for outages.


This document describes NOTR as shipped. Individual features can be switched off, and the admin panel is the reference for what your installation currently has enabled.