Salut, Habr. J'ai décidé de vous montrer le moteur que je développe lentement. Il s'agit d'une plateforme de blogging, avec des capacités très proches des projets moyens et similaires.
Caractéristiques de base:
Publications, commentaires, favoris, abonnements, notifications, notes, vote.
Design de texte minimaliste:

Aire de jeux
Il y a une aire de jeux où vous pouvez toucher la plate-forme, sans préjudice pour les civils: site d'essai .
Localisation
Le service sépare automatiquement les utilisateurs par langue, dirigeant les utilisateurs russophones vers le sous-domaine russe et les utilisateurs anglophones vers l'anglais. Cette séparation est essentiellement mise en œuvre au niveau du contenu. La véritable interface est disponible uniquement en anglais. Chaque sous-domaine a sa propre base de données et ses utilisateurs, l'enregistrement n'est pas de bout en bout (chaque sous-domaine a son propre écosystème, la vie n'est pas née partout, par exemple).

Optimisation
Le service se caractérise par une optimisation très agressive. Toutes les images téléchargées de plus de 100 kilo-octets sont pressées par la méthode Atkinson dans des aperçus en noir et blanc, avec la possibilité de visualiser l'original, par exemple:

Les scripts et les styles lourds ne sont pas utilisés, ainsi que les scripts externes qui surveillent le comportement des utilisateurs. Le site reste rapide et pratique sur n'importe quelle plateforme, y compris Javascript désactivé. À l'avenir, je veux atteindre la vitesse de téléchargement des chaînes de télégramme.
Abonnements
La page principale affiche une liste des auteurs auxquels l'utilisateur est abonné et le nombre de nouvelles publications pour chaque auteur. Lorsque vous cliquez sur ce bouton, les publications non lues sont ouvertes, par ordre chronologique, comme dans les chaînes de télégrammes:

Notifications
Également sur la page principale affiche des notifications de mentions dans les commentaires, avec possibilité de transition:

L'éditeur
L'éditeur prend en charge le démarquage et le formatage de texte visuel, avec la possibilité de prévisualiser, de développer en plein écran, etc. Des travaux sont en cours pour assurer la disponibilité du site pour les utilisateurs aveugles et malvoyants.

Système de notation
Il y a trois sections avec des noms étranges sur la page principale:
haut mi btm

Oui, j'adore DotA (le nom de mon chien est Pooja, par exemple). Je pense que les notes sont plus sur la mécanique du jeu / la motivation que sur quelque chose de vraiment adéquat. Tous les articles vont à la cote de la ferme au milieu) Comme à la ferme - montez en haut. Si le milieu est fusionné, ils tomberont au fond. La formule précieuse est soigneusement volée à ycombinator (les nouveaux articles nécessitent moins de votes pour arriver au sommet que les anciens). Désolé pour une telle manipulation gratuite d'une chose aussi sainte pour beaucoup comme une note. Cependant, à l'heure actuelle, il n'y a pas de notation des auteurs en tant que tels. Noter uniquement les articles.
Évaluation de l'article.
+ 5: 1 -
Chaque utilisateur dispose de 10 votes par jour. Il peut les dépenser à la fois pour et contre. Quant à un article avec tous les 10 votes, alors distribuez-les comme il veut.
L'auteur de l'article voit séparément les réactions négatives et positives.

Évaluation des commentaires
Les commentaires ne sont évalués que positivement. Je ne sais pas pourquoi, ne demande pas. Je voulais donner plus d'occasions de recueillir des commentaires avec différents mécaniciens. Un seul vote peut être émis pour un commentaire. Chaque utilisateur dispose de 10 votes par commentaire et par jour. Un commentaire - un vote. Cela semble transparent, mais ce n'est pas exact. Peut-être que cela changera bientôt.
Balises
Chaque article peut avoir une balise globale. Jusqu'à présent, un seul (pour une raison quelconque, les énormes nuages de tags pour toutes les occasions me font peur).

Ouverture
Le code source du projet est ouvert. Sur github, des instructions pour assembler et déployer votre propre version sont disponibles: github
Limitations
Ce n'est pas le premier projet avec UGC. Malheureusement, les lettres de bonheur de Roskomnadzor / Hosting Provider arrivent environ une fois par semaine. Par conséquent, je réagis assez nerveusement à la pornographie enfantine et à d'autres contenus illégaux. Le bouton d'interdiction - l'un des premiers est apparu (pour une raison quelconque, beaucoup de gens interprètent d'une manière ou d'une autre étrange le sens du mot open source. Eh bien, les associations avec les télégrammes / télégraphes fonctionnent. Il existe également d'autres restrictions - la fréquence des commentaires et des publications est limitée. Vous ne pouvez pas laisser de nouveaux commentaires plus d'une fois par minute. Il doit y avoir plus de 10 caractères dans un commentaire ou un post. Ce pool de restrictions n'est pas apparu de zéro. Il en exaspère littéralement certains. Mais alors (
À l'intérieur
Le projet est écrit en golang, sans dépendances externes. Maintenant, il est hébergé sur un serveur dédié régulier, avec un disque dur lent et sous une charge élevée n'a pas encore été. Je ne voudrais pas prendre de l'avance sur moi-même et vous dire ce qu'est une belle base de données au cœur, car vous devez d'abord vous assurer qu'elle est vraiment belle)
Clause de non-responsabilité
Beaucoup n'a pas encore été achevé. Beaucoup de choses ne sont pas implémentées comme tout le monde. J'expérimente quelque chose. Quelque chose vous semblera mal. Mais si le projet vous a paru intéressant, essayez: github