Overview
Discover what makes QPixel powerful
QPixel is a **Rails‑based** self‑hosted platform that powers the public Codidact site. At its core it implements a multi‑community, category‑aware Q&A system with support for multiple post types (questions, answers, articles) and a sophisticated scoring algorithm that incorporates controversy. The application is designed for rapid iteration: continuous integration, code coverage dashboards and a permissive AGPL license encourage community contributions.
Multi‑tenant architecture
Advanced voting & ranking
Markdown + MathJax
Extensible UI
Overview
QPixel is a Rails‑based self‑hosted platform that powers the public Codidact site. At its core it implements a multi‑community, category‑aware Q&A system with support for multiple post types (questions, answers, articles) and a sophisticated scoring algorithm that incorporates controversy. The application is designed for rapid iteration: continuous integration, code coverage dashboards and a permissive AGPL license encourage community contributions.
Key Features
- Multi‑tenant architecture – A single deployment can host dozens of independent communities, each with its own set of categories and post types.
- Advanced voting & ranking – The scoring algorithm is exposed via a REST API and can be overridden by developers to experiment with alternative metrics.
- Markdown + MathJax – Content is parsed by the
redcarpetgem with live preview, and MathJax is loaded on demand for LaTeX rendering. - Extensible UI – Themes and custom CSS/JS can be dropped into the
app/assetspipeline, allowing brand‑specific styling without touching core code. - Rich media support – Image uploads are handled by
ActiveStoragewith optional CDN integration, and custom content licenses can be attached to each post.
Technical Stack
| Layer | Technology |
|---|---|
| Framework | Ruby on Rails 7 (API + MVC) |
| Database | PostgreSQL (primary), optional Redis for caching & background jobs |
| Background processing | Sidekiq, with Redis queue |
| Search & indexing | ElasticSearch via the searchkick gem (optional) |
| Containerization | Docker images are available in the CI pipeline; a docker-compose.yml is provided for local development |
| Testing | RSpec, FactoryBot; CI runs coverage on Codecov |
The Rails stack provides a familiar MVC structure for developers, while the use of searchkick and Redis allows horizontal scaling of search and job queues. The AGPL license ensures that any modifications remain open source, fostering a healthy ecosystem.
Core Capabilities
- RESTful API – Endpoints for users, posts, votes, and community metadata are fully documented in the
apinamespace. - Webhooks – External services can subscribe to events such as
post.created,vote.updatedvia a simple JSON payload. - GraphQL – A lightweight GraphQL layer is available for clients that prefer single‑endpoint queries.
- Permission system – Based on abilities derived from user activity, developers can expose or restrict actions through the
cancancangem. - Plugin hooks – The
after_commitcallbacks and ActiveSupport::Concern modules expose extension points for custom business logic.
Deployment & Infrastructure
QPixel is intentionally lightweight: a single rails server instance can handle moderate traffic, while a Sidekiq worker pool handles background tasks. For production, the recommended stack is:
- PostgreSQL – Persist all relational data;
pggem handles connection pooling. - Redis – Caching and Sidekiq queues; a single instance can serve both purposes.
- ElasticSearch – Optional but highly recommended for full‑text search across communities.
- Docker Compose – A ready‑made
docker-compose.ymlbundles all services, making scaling as simple as adding replicas. - CI/CD – GitHub Actions builds Docker images and runs tests; a registry can be used for custom deployments.
The application scales horizontally by adding more Rails workers behind a load balancer and replicating the database with logical replication. ElasticSearch shards can be distributed across nodes to handle large search workloads.
Integration & Extensibility
- OAuth / SAML – Built‑in support for external authentication providers; developers can plug in new strategies via the
devisegem. - Custom post types – Adding a new type involves creating a model, migration, and controller; the routing layer automatically registers it.
- Theming – A theme can be dropped into
app/assets/stylesheetsand referenced in the community settings. - APIs – The OpenAPI specification is auto‑generated from controller annotations, enabling SDK generation for any language.
- Webhooks – External services can register endpoints; the system posts events asynchronously, ensuring non‑blocking performance.
Developer Experience
The repository follows standard Rails conventions, making onboarding fast for Ruby developers. Documentation is split into a README, an INSTALLATION.md guide, and a CONTRIBUTING.md file that outlines coding standards. Continuous integration ensures any pull request passes tests and coverage checks before merging, fostering high code quality. The community is active on Codidact Meta and the Collab forum, where developers can discuss architecture decisions or propose new features.
Use Cases
- Enterprise Knowledge Base – Companies can host a private Q&A hub with custom branding and role‑based permissions.
- Educational Platforms – Universities can deploy a community for course discussions, leveraging the ability to create multiple categories per subject.
- Open‑Source Projects – Maintainers can embed a Q&A section alongside documentation, benefiting from the same voting and moderation system.
- Specialized Communities – Hobbyists or niche professional groups can spin up isolated communities with tailored post types and scoring rules.
Advantages
- Performance – Rails 7
Open SourceReady to get started?
Join the community and start self-hosting QPixel today
Related Apps in apis-services
Mastodon
Decentralized, real‑time social networking
Discourse
Open‑source community forum platform with real‑time chat and AI
Rocket.Chat
Secure, open‑source team communication platform
Novu
Unified notification platform for multi‑channel delivery
Mattermost
Secure, self‑hosted team collaboration with chat, voice, and AI
Jitsi Meet
Free, encrypted video conferencing for everyone
Weekly Views
Repository Health
Information
Explore More Apps
UBOS
Open-source platform for user‑centric social web applications
Dovel
Self‑hosted SMTP server with web mail browsing
Hiccup
Fast, static start page for links and bookmarks
portkey
Your personal web portal for links and custom pages
Matomo
Open‑source web analytics with full data ownership
Easy!Appointments
Self‑hosted appointment scheduling for any business