Top Related Projects
Your self-hosted, globally interconnected microblogging community
A platform for community discussion. Free, open, simple.
Computing-focused community centered around link aggregation and discussion
For empowering community 🌱
A privacy-aware, distributed, open source social network.
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:
-
Clone the repository:
git clone https://github.com/voten-co/voten.git cd voten
-
Install dependencies:
composer install npm install
-
Set up the environment:
- Copy
.env.example
to.env
- Configure your database and other settings in
.env
- Copy
-
Generate application key and run migrations:
php artisan key:generate php artisan migrate --seed
-
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
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.
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.
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.
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.
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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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
- Help Center
- Installation guide for source code
- Roadmap
- Blog
- API documentation
- #voten (for general discussion about Voten)
- #votendev (letâs talk code!)
Top Related Projects
Your self-hosted, globally interconnected microblogging community
A platform for community discussion. Free, open, simple.
Computing-focused community centered around link aggregation and discussion
For empowering community 🌱
A privacy-aware, distributed, open source social network.
HumHub is an Open Source Enterprise Social Network. Easy to install, intuitive to use and extendable with countless freely available modules.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot