Convert Figma logo to code with AI

voten-co logovoten

The code that powers voten.co

1,259
233
1,259
13

Top Related Projects

46,718

Your self-hosted, globally interconnected microblogging community

41,716

A platform for community discussion. Free, open, simple.

Computing-focused community centered around link aggregation and discussion

21,885

For empowering community 🌱

13,377

A privacy-aware, distributed, open source social network.

6,281

HumHub is an Open Source Enterprise Social Network. Easy to install, intuitive to use and extendable with countless freely available modules.

Quick Overview

Voten is an open-source, real-time social bookmarking platform for the 21st century. It aims to provide a modern, user-friendly alternative to traditional social news and bookmarking sites, with a focus on real-time updates and community engagement.

Pros

  • Real-time updates and interactions
  • Modern, responsive user interface
  • Open-source, allowing for community contributions and customizations
  • Built with scalability in mind using Laravel and Vue.js

Cons

  • Limited documentation for developers
  • Smaller user base compared to established platforms
  • Potential challenges in content moderation as the platform grows
  • Requires significant resources to host and maintain

Getting Started

To set up Voten locally for development:

  1. Clone the repository:

    git clone https://github.com/voten-co/voten.git
    cd voten
    
  2. Install dependencies:

    composer install
    npm install
    
  3. Set up the environment:

    • Copy .env.example to .env
    • Configure your database and other settings in .env
  4. Generate application key and run migrations:

    php artisan key:generate
    php artisan migrate --seed
    
  5. Compile assets and start the development server:

    npm run dev
    php artisan serve
    

Visit http://localhost:8000 to see your local Voten instance.

Competitor Comparisons

46,718

Your self-hosted, globally interconnected microblogging community

Pros of Mastodon

  • Larger and more active community with over 30k stars and 1k+ contributors
  • More comprehensive feature set for decentralized social networking
  • Better documentation and guides for setup and customization

Cons of Mastodon

  • More complex codebase and infrastructure requirements
  • Steeper learning curve for developers and administrators
  • Higher resource consumption due to its distributed nature

Code Comparison

Mastodon (Ruby on Rails):

class Status < ApplicationRecord
  include Paginable
  include Streamable
  include StatusThreadingConcern
  include RateLimitable

  rate_limit by: :account, family: :statuses

Voten (Laravel):

class Submission extends Model
{
    use RecordsActivity, SoftDeletes, Filterable, HasApproval;

    protected $with = ['owner'];

    protected $casts = [
        'approved_at' => 'datetime',
    ];

Both projects use modern web frameworks (Ruby on Rails for Mastodon, Laravel for Voten) and follow similar patterns for model definitions. However, Mastodon's codebase is more extensive and includes additional concerns like rate limiting and streaming, reflecting its more complex feature set.

Voten focuses on a simpler, Reddit-like experience, while Mastodon aims to provide a decentralized alternative to Twitter-style social networking. This difference in scope is reflected in their respective codebases and community sizes.

41,716

A platform for community discussion. Free, open, simple.

Pros of Discourse

  • More mature and widely adopted project with a larger community
  • Extensive plugin ecosystem and customization options
  • Better documentation and support resources

Cons of Discourse

  • Heavier and more complex codebase
  • Steeper learning curve for developers and administrators
  • Higher resource requirements for hosting

Code Comparison

Discourse (Ruby):

class Post < ActiveRecord::Base
  belongs_to :topic
  belongs_to :user
  has_many :post_replies
  validates_presence_of :raw
end

Voten (PHP):

class Submission extends Model
{
    use RecordsActivity, Scorable;

    protected $fillable = ['title', 'url', 'type', 'category_id', 'user_id'];

    protected $with = ['owner'];
}

Both projects use object-oriented programming and follow MVC patterns. Discourse uses Ruby on Rails, while Voten is built with Laravel (PHP). Discourse's codebase is more extensive and complex, reflecting its broader feature set and longer development history. Voten's code is more concise and focused on core functionality.

Discourse offers a more comprehensive forum solution with advanced features, while Voten provides a simpler, Reddit-like experience. The choice between them depends on specific project requirements, desired customization level, and available resources for development and hosting.

Computing-focused community centered around link aggregation and discussion

Pros of Lobsters

  • Written in Ruby on Rails, which offers rapid development and a mature ecosystem
  • Simpler codebase with fewer dependencies, potentially easier to maintain
  • Longer project history with more contributors and community involvement

Cons of Lobsters

  • Less modern UI/UX compared to Voten's Vue.js-based interface
  • Fewer built-in features and customization options out of the box
  • Slower performance due to server-side rendering, compared to Voten's SPA approach

Code Comparison

Lobsters (Ruby):

class Story < ApplicationRecord
  belongs_to :user
  has_many :comments
  has_many :taggings
  has_many :tags, through: :taggings
end

Voten (PHP/Laravel):

class Submission extends Model
{
    use RecordsActivity, ScoresSubmission, HasApproval;

    protected $with = ['owner'];
    protected $appends = ['date', 'rate'];
    protected $hidden = ['deleted_at', 'html'];
}

Both projects implement similar models for submissions/stories, but Voten uses traits for additional functionality and includes more default attributes. Lobsters follows a more traditional Rails approach with explicit associations.

21,885

For empowering community 🌱

Pros of Forem

  • Larger and more active community with over 19k stars and 3.5k forks
  • More comprehensive feature set, including article publishing and organization profiles
  • Better documentation and guides for contributors

Cons of Forem

  • More complex codebase, potentially harder for newcomers to contribute
  • Heavier resource requirements due to its larger scope

Code Comparison

Voten (Vue.js component):

<template>
    <div class="channel-header-small user-select">
        <router-link :to="'/c/' + channel.name" class="flex-space">
            <img :src="channel.avatar" :alt="channel.name">
            <span class="channel-name">{{ channel.name }}</span>
        </router-link>
    </div>
</template>

Forem (React component):

const ChannelHeader = ({ channel }) => (
  <div className="channel-header-small user-select">
    <Link to={`/c/${channel.name}`} className="flex-space">
      <img src={channel.avatar} alt={channel.name} />
      <span className="channel-name">{channel.name}</span>
    </Link>
  </div>
);

Both projects use component-based architectures, but Voten uses Vue.js while Forem uses React. The code structures are similar, with Forem's JSX syntax being more concise compared to Voten's template-based approach.

13,377

A privacy-aware, distributed, open source social network.

Pros of Diaspora

  • Larger and more established project with a longer history (since 2010)
  • More extensive feature set, including federation capabilities
  • Larger community and contributor base

Cons of Diaspora

  • More complex codebase due to its extensive features
  • Steeper learning curve for new contributors
  • Slower development cycle due to its size and complexity

Code Comparison

Diaspora (Ruby on Rails):

class StatusMessage < Post
  include Diaspora::Federated::Shareable
  include Diaspora::Taggable

  validates_length_of :text, :maximum => 65535, :message => proc { I18n.t('status_messages.too_long', :count => 65535) }
end

Voten (Laravel):

class Submission extends Model
{
    use RecordsActivity, SoftDeletes, Filterable;

    protected $fillable = ['title', 'slug', 'type', 'category_id', 'category_name', 'channel_id', 'channel_name', 'nsfw', 'rate', 'upvotes', 'downvotes', 'user_id', 'data'];
}

Both projects use modern web frameworks (Ruby on Rails for Diaspora, Laravel for Voten) and follow MVC patterns. Diaspora's code shows its focus on federation and sharing, while Voten's code highlights its emphasis on content submission and voting features.

6,281

HumHub is an Open Source Enterprise Social Network. Easy to install, intuitive to use and extendable with countless freely available modules.

Pros of HumHub

  • More comprehensive social networking platform with features like spaces, modules, and themes
  • Larger and more active community, with frequent updates and contributions
  • Better documentation and extensive customization options

Cons of HumHub

  • Heavier and more complex codebase, potentially harder to set up and maintain
  • May be overkill for simpler community needs, with features that might go unused
  • Steeper learning curve for developers new to the platform

Code Comparison

HumHub (PHP):

public function actionIndex()
{
    $searchModel = new ContentSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
    return $this->render('index', ['dataProvider' => $dataProvider, 'searchModel' => $searchModel]);
}

Voten (Vue.js):

export default {
    data() {
        return {
            submissions: [],
            loading: true
        }
    },
    created() {
        this.getSubmissions()
    },
    methods: {
        getSubmissions() {
            axios.get('/api/submissions').then((response) => {
                this.submissions = response.data
                this.loading = false
            })
        }
    }
}

The code snippets showcase different approaches: HumHub uses a PHP MVC structure, while Voten employs a Vue.js component-based architecture for frontend rendering and API interactions.

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

Voten

Where your vote(n) matters

Voten.co

Voten.co is an open-source, beautiful, highly customizable yet deadly simple, and warm community. To get a quick taste of what Voten is written with please check our credits page.


Update:

I currently don't have the time that is required to maintain Voten. I am however open to contract work in case you need help with developing your fork of Voten, or any other development gig. You can reach me at algo@hey.com

My new open-source project is Jesse, an advanced cryptocurrency algo-trading framework written in Python.




Contributing

Thank you for considering contributing to the Voten. Here's a list of things you can do to support Voten:

  • Discuss Voten's development at #votendev channel. (Voten's editor supports markdown syntax just like Github's)
  • Send PRs. Voten uses Gitbook for help center and API documentation, and Github to host our source code. All of which support PRs.
  • Follow me on Twitter
  • If you're a blogger, write about Voten. If you're a user on Reddit, Twitter, etc, spread the word.
  • Help us write unit tests! That's where the code needs help the most.

Resources