Convert Figma logo to code with AI

umputun logoremark42

comment engine

4,829
375
4,829
95

Top Related Projects

A fast, bloat-free comments platform (Github mirror)

💅 Popular icon packs like Font Awesome, Material Design, and Octicons, available as React Styled Components

5,026

a Disqus alternative

1,884

A better commenting experience from Vox Media

1,570

🌌 自托管评论系统 | Your Self-hosted Comment System.

Quick Overview

Remark42 is a self-hosted, lightweight, and simple (yet functional) comment engine that can be embedded into websites. It aims to provide a privacy-focused alternative to third-party commenting systems, with features like anonymous comments, moderation tools, and various authentication options.

Pros

  • Self-hosted solution, giving users full control over their data
  • Lightweight and fast, with minimal impact on website performance
  • Supports multiple authentication methods (Google, GitHub, Facebook, etc.)
  • Offers a clean, customizable UI that can be easily integrated into various website designs

Cons

  • Requires server setup and maintenance, which may be challenging for non-technical users
  • Limited plugin ecosystem compared to some larger commenting systems
  • May lack some advanced features found in more established platforms
  • Smaller community support compared to more popular commenting solutions

Getting Started

To get started with Remark42, follow these steps:

  1. Install Docker on your server
  2. Create a docker-compose.yml file with the following content:
version: '2'

services:
    remark42:
        image: umputun/remark42:latest
        container_name: "remark42"
        hostname: "remark42"
        restart: always
        environment:
            - REMARK_URL=https://your.site
            - SECRET=your-secret-key
            - AUTH_GITHUB_CID=github_client_id
            - AUTH_GITHUB_CSEC=github_client_secret
        volumes:
            - ./var:/srv/var
        ports:
            - "8080:8080"
  1. Run docker-compose up -d to start the Remark42 server
  2. Add the following code to your website where you want comments to appear:
<div id="remark42"></div>
<script>
  var remark_config = {
    host: "https://your.site",
    site_id: 'your_site_id',
  };
</script>
<script>!function(e,n){for(var o=0;o<e.length;o++){var r=n.createElement("script"),c=".js",d=n.head||n.body;"noModule"in r?(r.type="module",c=".mjs"):r.async=!0,r.defer=!0,r.src=remark_config.host+"/web/"+e[o]+c,d.appendChild(r)}}(remark_config.components||["embed"],document);</script>

Replace https://your.site with your Remark42 instance URL and your_site_id with a unique identifier for your site.

Competitor Comparisons

A fast, bloat-free comments platform (Github mirror)

Pros of Commento

  • Lightweight and fast, with minimal dependencies
  • Built-in user management system
  • Supports multiple authentication methods (Google, GitHub, Twitter)

Cons of Commento

  • Less active development and community support
  • Fewer features and customization options
  • Limited moderation tools compared to Remark42

Code Comparison

Commento (Go):

func (c *Comment) Create() error {
    if err := c.Validate(); err != nil {
        return err
    }
    return c.store.Create(c)
}

Remark42 (Go):

func (s *Service) Create(comment Comment) (commentID string, err error) {
    comment.PrepareUntrusted()
    if err = comment.Validate(); err != nil {
        return "", fmt.Errorf("invalid comment: %w", err)
    }
    return s.DataService.Create(comment)
}

Both projects use Go and implement similar comment creation logic. However, Remark42's implementation includes additional preparation and error handling steps, reflecting its more comprehensive feature set and robust architecture.

💅 Popular icon packs like Font Awesome, Material Design, and Octicons, available as React Styled Components

Pros of styled-icons

  • Extensive collection of icon sets from various popular libraries
  • Easy integration with styled-components for React applications
  • Regularly updated with new icons and improvements

Cons of styled-icons

  • Limited to React and styled-components ecosystem
  • Larger bundle size due to the comprehensive icon collection
  • Less versatile compared to a full-featured commenting system

Code Comparison

styled-icons:

import { Github } from '@styled-icons/boxicons-logos/Github'

const MyComponent = () => (
  <Github size={48} color="#000000" />
)

remark42:

<script>
  var remark_config = {
    host: "https://demo.remark42.com",
    site_id: 'remark',
  };
</script>
<script>!function(e,n){for(var o=0;o<e.length;o++){var r=n.createElement("script"),c=".js",d=n.head||n.body;"noModule"in r?(r.type="module",c=".mjs"):r.async=!0,r.defer=!0,r.src=remark_config.host+"/web/"+e[o]+c,d.appendChild(r)}}(remark_config.components||["embed"],document);</script>

Summary

styled-icons is a specialized library for integrating icons into React applications using styled-components, while remark42 is a full-featured commenting system. styled-icons offers a vast collection of icons but is limited to a specific ecosystem, whereas remark42 provides a more versatile solution for adding comments to websites across different platforms.

5,026

a Disqus alternative

Pros of isso

  • Lightweight and minimalistic design, focusing on simplicity
  • Supports SQLite database, making it easier to set up and maintain
  • Offers a built-in migration tool for importing comments from other systems

Cons of isso

  • Less feature-rich compared to Remark42
  • Limited moderation tools and user management options
  • Slower development pace and smaller community support

Code Comparison

isso

def insert_comment(self, uri, comment):
    self.db.execute([
        'INSERT INTO comments (tid, uri, author, email, website, text)',
        'VALUES (?, ?, ?, ?, ?, ?)'
    ], (self.threads[uri], uri, comment["author"], comment["email"],
        comment["website"], comment["text"]))

Remark42

func (s *DataStore) Create(comment Comment) (Comment, error) {
    comment.ID = uuid.New().String()
    comment.Timestamp = time.Now()
    comment.Score = 0
    comment.Votes = map[string]bool{}
    comment.Controversy = 0
    return comment, s.Save(comment)
}

Both projects aim to provide self-hosted commenting systems, but they differ in their approach and feature set. isso focuses on simplicity and ease of setup, while Remark42 offers more advanced features and better scalability. The code snippets demonstrate the different programming languages used (Python for isso, Go for Remark42) and highlight the varying complexity in their comment creation processes.

1,884

A better commenting experience from Vox Media

Pros of Talk

  • More extensive moderation features, including AI-assisted moderation
  • Supports multiple authentication methods (e.g., Facebook, Google, SSO)
  • Offers a plugin system for extending functionality

Cons of Talk

  • More complex setup and configuration process
  • Higher resource requirements due to its feature-rich nature
  • Steeper learning curve for administrators and developers

Code Comparison

Talk (JavaScript):

const { createServer } = require("./server");
const port = process.env.PORT || 3000;
createServer().listen(port, () => {
  console.log(`Server listening on ${port}`);
});

Remark42 (Go):

func main() {
    fmt.Printf("Starting remark42 server, version %s\n", version)
    srv := server.New(opts)
    err := srv.Run(context.Background())
    log.Printf("[ERROR] server failed, %s", err)
}

Both projects use different programming languages, with Talk utilizing JavaScript and Remark42 using Go. Talk's code snippet shows a more straightforward server creation and startup process, while Remark42's main function includes additional logging and error handling.

1,570

🌌 自托管评论系统 | Your Self-hosted Comment System.

Pros of Artalk

  • Lightweight and easy to integrate, with a focus on simplicity
  • Supports multiple languages out of the box
  • Offers a built-in admin panel for comment management

Cons of Artalk

  • Less mature project with fewer features compared to Remark42
  • Smaller community and potentially less long-term support
  • Limited third-party integrations

Code Comparison

Artalk (JavaScript):

new Artalk({
  el: '#comments',
  server: 'https://artalk.example.com',
  site: 'My Site'
});

Remark42 (JavaScript):

var remark_config = {
  host: "https://remark42.example.com",
  site_id: 'my_site',
  components: ['embed']
};

Both projects aim to provide commenting systems for websites, but they differ in their approach and feature set. Artalk focuses on simplicity and ease of use, while Remark42 offers a more comprehensive solution with additional features like authentication options and moderation tools. Remark42 is generally considered more robust and feature-rich, but Artalk may be a good choice for those seeking a lightweight alternative with multilingual support out of the box.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Remark42 Build Status Image Size Go Report Card Coverage Status codecov

Remark42 is a self-hosted, lightweight and simple (yet functional) comment engine, which doesn't spy on users. It can be embedded into blogs, articles, or any other place where readers add comments.

  • Social login via Google, Twitter, Facebook, Microsoft, GitHub, Yandex, Patreon and Telegram
  • Login via email
  • Optional anonymous access
  • Multi-level nested comments with both tree and plain presentations
  • Import from Disqus and WordPress
  • Markdown support with friendly formatter toolbar
  • Moderator can remove comments and block users
  • Voting, pinning and verification system
  • Sortable comments
  • Images upload with drag-and-drop
  • Extractor for recent comments, cross-post
  • RSS for all comments and each post
  • Telegram, Slack, Webhook and email notifications for Admins (get notified for each new comment)
  • Email and Telegram notifications for users (get notified when someone responds to your comment)
  • Export data to JSON with automatic backups
  • No external databases, everything embedded in a single data file
  • Fully dockerized and can be deployed in a single command
  • Self-contained executable can be deployed directly to Linux, Windows and macOS
  • Clean, lightweight and customizable UI with white and dark themes
  • Multi-site mode from a single instance
  • Integration with automatic SSL (direct and via nginx-le)
  • Privacy focused

Demo site available with all authentication methods, including email auth and anonymous access.

Screenshots

Comments example:

For admin screenshots see Admin UI documentation

All remark42 documentation is available by the link.

Contribution

In order to start and work on the project locally in development mode check our contribution documentation for backend and frontend.

If you are interested in adding a new localization please check these docs.

Related projects