One day the request lands: “what if users could comment?”. Then come profiles, follows, an activity feed. On the mockup, it is a text field and a button. In production, it is a different job: as soon as your users can publish something others will read, your app hosts content, and that comes with precise obligations, both technical and legal. Better to know them before you put a number on it.
What the stores require before you even ship
Apple is explicit. Its guideline 1.2 requires any app with user-generated content or a social networking service to include four things: a way to filter objectionable material before it is posted, a reporting mechanism with timely responses, the ability to block abusive users, and published contact information. An app without these tools risks rejection at review, or removal later.
Google Play points the same way and adds requirements: users must accept terms of use that define prohibited content before they can post, the app must moderate in a reasonable way, and a social app must let people report content and users, and block users. Finally, both stores require that an account created in the app can be deleted from within it, and Google also asks for a web page where deletion can be requested.
What EU law adds
Since 17 February 2024, the EU Digital Services Act applies to every service that hosts content supplied by its users. Some of its rules only target large platforms, and micro and small enterprises are exempted from a whole section of the text. But a baseline applies whatever your size:
- A single point of contact (Article 12), so your users can reach you directly, and not only through a bot.
- Terms and conditions that describe your moderation (Article 14): what is restricted, with which tools, and how much is left to a human.
- A notice mechanism (Article 16), easy to access, letting anyone report illegal content, with an acknowledgement of receipt and a decision sent back to whoever reported it.
- A statement of reasons (Article 17): when you remove content, reduce its visibility or suspend an account, the person concerned must receive a clear and specific explanation.
None of this is insurmountable, but each item is a screen, an email or an internal tool to build. This is not legal advice: for a specific case, a lawyer remains the right person. It is, however, a list that belongs in the scope from day one.
Moderation is a product, not a form
A “report” button that sends an email to an inbox nobody reads protects neither your users nor your store listing. Moderation that holds up is designed as a feature in its own right, with its own screens on the team side:
- A report queue, sorted, showing the content’s context, its author and their history.
- Graduated actions: hide without deleting, warn, suspend, while keeping a record of each decision and its reason.
- Automatic safeguards: a word filter, posting caps to slow down spam, a minimum age at sign-up.
- Blocking that actually blocks: a blocked person must no longer see you anywhere, not in comments, not in search, not in notifications.
That leaves the question most often forgotten: who handles reports, and how quickly, on a Sunday evening? The answer is not technical, but it shapes the technical side: the smaller the team, the more the automatic safeguards have to carry.
As soon as your users publish, you are no longer just shipping an app: you are running a place. And a place needs looking after.
The server decides, the screen displays
One rule runs through everything else: what a person is allowed to see is decided on the server, never only in the interface. Hiding a comment on screen while the server keeps sending it leaves it readable by anyone who inspects the app. It is one of the flaws we find most often in the apps we are asked to take over.
We applied it to the letter on Nakama, our own social network for anime and manga. The veil that guards against spoilers, moderation, blocking: everything is settled on the server, for each person. Building that product taught us that the social part, the one you design in an afternoon, is also the one that needs the most care.
How to budget for it
If your product needs a social layer, it gets scoped like everything else, with a realistic starting scope: well-moderated comments beat a full feed nobody watches over. And if the heart of your product is precisely that your users talk to each other, that is exactly the kind of project we take on in product engineering. Tell us about your app: we will tell you what the social part is really going to take.