Skip to content

Erudika/scoold


Scoold Logo

The most effective way to share knowledge within your team or organization

Scoold is a Q&A and a knowledge sharing platform for teams, inspired by Stack Overflow.
Scoold is enterprise-ready, super customizable and lightweight.

Scoold Pro, the premium version of Scoold, is the perfect knowledge sharing platform for your company or team. The pricing is flat, without limits, the license - perpetual.

Are you still paying per seat in 2026? Scoold Pro is the knowledge sharing platform to migrate to!

Compare Features

Docker pulls Docker pulls Join the chat at https://gitter.im/Erudika/scoold License

Website  -  Documentation  -  Demo  -  API

Scoold - open-source knowledge sharing platform

Scoold is a Q&A and a knowledge sharing platform for teams. The project was created back in 2008, released in 2012 as social network for schools inspired by Stack Overflow. In 2017 it was refactored, repackaged and open-sourced.

Scoold can be deployed anywhere - Heroku, DigitalOcean, AWS, Azure or any VPS hosting provider. It's lightweight, the backend is handled by a separate service called Para. All the heavy lifting is delegated to Para which can also be configured to store the data in any of the popular databases. This makes the Scoold code base easy to read and can be learned quickly, even by junior developers.

Scoold Pro, the paid version of Scoold, has premium features which make it the perfect knowledge sharing platform for your company or team.

This project is fully funded and supported by Erudika - an independent, bootstrapped company.

Features

  • Full featured Q&A platform
  • Database-agnostic, optimized for cloud deployment
  • Full-text search
  • Distributed object cache
  • Location-based search and "near me" filtering of posts
  • I18n with RTL language support
  • Reputation and voting system with badges
  • Custom badges - add your own text, icon and color
  • Spaces (Teams) - groups of isolated questions and users
  • Webhooks with signature signing
  • Zapier integration
  • Minimal frontend JS code based on jQuery
  • Modern, responsive layout powered by Materialize CSS
  • Suggestions for similar questions and hints for duplicate posts
  • Email notifications for post replies and comments
  • Backup and Restore
  • RESTful API defined with OpenAPI 3.0
  • Spring Boot project (single JAR)
  • Mutual authentication support (mTLS)
  • LDAP authentication support
  • Social login (Facebook, Google, GitHub, LinkedIn, Microsoft, Slack, Amazon, Twitter) with Gravatar support
  • Syntax highlighting for code in posts, GFM markdown support with tables, task lists and strikethrough
  • Import data from Stack Overflow for Teams
  • Emojis! - using this cheat sheet or inline Unicode
  • Support for uploading custom avatars (to Imgur, Cloudinary)
  • SEO friendly
  • Cookie consent (for GDPR, CCPA, etc.)

Buy Scoold Pro and also get these premium features:

  • Slack integration
  • Mattermost integration
  • Microsoft Teams integration
  • SAML authentication support
  • Custom authentication support
  • SCIM 2.0 for automatic user provisioning
  • Mentions with notifications
  • File uploads (local, AWS S3, Azure Blob)
  • Account suspensions (permabans)
  • Anonymous posts
  • Unlimited spaces
  • Multiple admins
  • Multiple identity domains
  • Sticky / Favorite posts
  • Advanced syntax highlighting
  • Email digest of recent questions
  • Security notifications
  • Wiki-style answers

...and more!

For admin access, go to the demo login page and click "Continue with Demo Login".

Documentation

The full documentation for Scoold is at scoold.com/documentation

Scoold architecture intro (or 'what the heck is Para?')

Scoold is a client application of the Para backend server. Almost every request to Scoold produces at least one request to Para as well. When you ask a question on Scoold, a create request is sent to Para to the location POST /v1/questions. Here are a few key points about that architecture:

  • A Para server can be hosted anywhere and store data inside any of the supported databases.
  • Para is a multi-tenant server which stores data in isolated environments called "apps".
  • One or more instance of Scoold (like a cluster) can connect to the same Para app environment and share the data.
  • Multiple separate Scoold websites can be powered by the same Para backend using different Para apps.
  • Each app environment is completely independent from others and has its own database table and search index.
  • Both Scoold and Para can be hosted on the same machine or on multiple machines, on different networks.
  • Scoold talks to Para via HTTP(S) so Para must be directly accessible from Scoold, but can also be hosted on a private network.

Head over to the documentation for detailed explanation of the Scoold architecture.

Scoold Pro cloud hosting

Support

You can get support here by submitting an issue. Also you can head over to the Gitter chat room for help. Issues related to Scoold Pro must be reported to Erudika/scoold-pro. Paid/priority support is also available.

Getting help

Blog

Translating Scoold

You can translate Scoold to your language by copying the English language file and translating it. When you're done, change the file name from "lang_en.properties" to "lang_xx.properties" where "xx" is the language code for your locale. Finally, open a pull request here.

Language File Progress
Albanian lang_sq.properties 0%
Arabic lang_ar.properties ✔️ (Google Translate)
Belarusian lang_be.properties 0%
Bulgarian lang_bg.properties ✔️
Catalan lang_ca.properties 0%
Chinese (Traditional) lang_zh_tw.properties ✔️ Thanks Kyon Cheng!
Chinese (Simplified) lang_zh_cn.properties ✔️ Thanks Kyon Cheng!
Croatian lang_hr.properties 0%
Czech lang_cs.properties 0%
Danish lang_da.properties ✔️ Thanks @viking1972!
Dutch lang_nl.properties ✔️ Thanks Jan Halsema!
English lang_en.properties ✔️
Estonian lang_et.properties 0%
Farsi lang_fa.properties ✔️ Thanks Sadegh G. Shohani!
Finnish lang_fi.properties 0%
French lang_fr.properties ✔️ Thanks Charles Maheu!
German lang_de.properties ✔️ Thanks Patrick Gäckle!
Greek lang_el.properties 0%
Hebrew lang_iw.properties ✔️ Thanks David A.
Hindi lang_hi.properties ✔️ Thanks Rakesh Gopathi!
Hungarian lang_hu.properties 0%
Icelandic lang_is.properties 0%
Indonesian lang_in.properties 0%
Irish lang_ga.properties 0%
Italian lang_it.properties ✔️ Thanks Marco Livrieri!
Japanese lang_ja.properties ✔️ Thanks Mozy Okubo!
Korean lang_ko.properties ✔️ Thanks HyunWoo Jo!
Lithuanian lang_lt.properties 0%
Latvian lang_lv.properties 0%
Macedonian lang_mk.properties 0%
Malay lang_ms.properties 0%
Maltese lang_mt.properties 0%
Norwegian lang_no.properties 0%
Polish lang_pl.properties 0%
Portuguese lang_pt.properties ✔️ Thanks Karina Varela!
Romanian lang_ro.properties 0%
Russian lang_ru.properties ✔️ Thanks Vladimir Perevezentsev!
Serbian lang_sr.properties 0%
Slovak lang_sk.properties 0%
Slovenian lang_sl.properties 0%
Spanish lang_es.properties ✔️ Thanks Trisha Jariwala!
Swedish lang_sv.properties 0%
Thai lang_th.properties 0%
Turkish lang_tr.properties ✔️ Thanks Aysad Kozanoglu!
Ukrainian lang_uk.properties 0%
Vietnamese lang_vi.properties 0%

You can also change the default language of Scoold for all users by setting scoold.default_language_code = "en", where instead of "en" you enter the 2-letter code of the language of your choice.

Building Scoold

To compile it you'll need JDK 8+ and Maven. Once you have it, just clone and build:

git clone https://github.com/erudika/scoold.git && cd scoold
mvn install

To run a local instance of Scoold for development, use:

mvn -Dconfig.file=./scoold-application.conf spring-boot:run

To generate a WAR package, run:

mvn -Pwar package

To generate the native image for your particaluar achitecture, run:

mvn -Pnative clean package

GraalVM is required to be installed before compiling the native image.

Contributing

  1. Fork this repository and clone the fork to your machine
  2. Create a branch (git checkout -b my-new-feature)
  3. Implement a new feature or fix a bug and add some tests
  4. Commit your changes (git commit -am 'Added a new feature')
  5. Push the branch to your fork on GitHub (git push origin my-new-feature)
  6. Create new Pull Request from your fork

Please try to respect the code style of this project. To check your code, run it through the style checker:

mvn validate

For more information, see CONTRIBUTING.md

License

Apache 2.0

Scoold Q&A

Stack Overflow in a JAR

Made in the EU 🇪🇺 by Erudika