]> BookStack Code Mirror - website/blob - content/about/project-faq.md
Updated GitHub references to new Codeberg locations
[website] / content / about / project-faq.md
1 ---
2 title: "The BookStack Project FAQ"
3 layout: "single"
4 type: "about"
5 ---
6
7 Below are many of the common questions we get asked in relation to the wider organisation 
8 and governance of the BookStack project.
9
10
11 <ul id="toc" class="dual-column-dual-level-toc">
12 <li><a href="#origins-goals--organisation" class="toc-header-h2">Origins, Goals &amp; Organisation</a>
13     <ul>
14     <li><a href="#how-did-bookstack-start" class="toc-header-h3">How did BookStack start?</a></li>
15     <li><a href="#what-are-the-core-goals-of-bookstack" class="toc-header-h3">What are the core goals of BookStack?</a></li>
16     <li><a href="#who-works-on-bookstack" class="toc-header-h3">Who works on BookStack?</a></li>
17     <li><a href="#how-is-work-for-the-project-organised" class="toc-header-h3">How is work for the project organised?</a></li>
18     <li><a href="#what-versions-of-bookstack-do-you-support" class="toc-header-h3">What versions of BookStack do you support?</a></li>
19     <li><a href="#what-license-is-the-project-provided-under" class="toc-header-h3">What license is the project provided under?</a></li>
20     </ul>
21 </li>
22 <li><a href="#feature-development" class="toc-header-h2">Feature Development</a>
23     <ul>
24     <li><a href="#how-are-features--additions-decided-upon" class="toc-header-h3">How are features &amp; additions decided upon?</a></li>
25     <li><a href="#is-feature-x-planned-to-be-added" class="toc-header-h3">Is feature X planned to be added?</a></li>
26     <li><a href="#but-feature-x-would-be-really-simple-to-implement-why-not-just-build-it" class="toc-header-h3">But feature X would be really simple to implement, why not just build it?</a></li>
27     <li><a href="#if-a-feature-is-not-wanted-why-not-just-add-it-as-an-option" class="toc-header-h3">If a feature is not wanted, why not just add it as an option?</a></li>
28     <li><a href="#would-bookstack-integrate-with-x-platform" class="toc-header-h3">Would BookStack integrate with X platform?</a></li>
29     <li><a href="#can-we-pay-for-the-implementation-of-specific-features" class="toc-header-h3">Can we pay for the implementation of specific features?</a></li>
30     <li><a href="#can-we-get-our-own-or-pay-other-developers-to-contribute-the-features-we-want" class="toc-header-h3">Can we get our own, or pay other, developers to contribute the features we want?</a></li>
31     </ul>
32 </li>
33 <li><a href="#funding--partnerships" class="toc-header-h2">Funding &amp; Partnerships</a>
34     <ul>
35     <li><a href="#how-is-the-project-funded" class="toc-header-h3">How is the project funded?</a></li>
36     <li><a href="#will-the-project-accept-investment" class="toc-header-h3">Will the project accept investment?</a></li>
37     <li><a href="#would-you-consider-an-official-partnership-with-other-businesses" class="toc-header-h3">Would you consider an official partnership with other businesses?</a></li>
38     </ul>
39 </li>
40 <li><a href="#services" class="toc-header-h2">Services</a>
41     <ul>
42     <li><a href="#do-you-provide-an-official-managed-hosting-service" class="toc-header-h3">Do you provide an official managed hosting service?</a></li>
43     <li><a href="#what-services-do-you-officially-provide" class="toc-header-h3">What services do you officially provide?</a></li>
44     <li><a href="#are-there-other-versionseditions-of-bookstack" class="toc-header-h3">Are there other versions/editions of BookStack?</a></li>
45     <li><a href="#can-others-provide-servicesofferings-for-bookstack" class="toc-header-h3">Can others provide services/offerings for BookStack?</a></li>
46     <li><a href="#do-you-offer-pre-sales-supportcalls" class="toc-header-h3">Do you offer pre-sales support/calls?</a></li>
47     </ul>
48 </li>
49 <li><a href="#communications--involvement" class="toc-header-h2">Communications &amp; Involvement</a>
50     <ul>
51     <li><a href="#how-can-we-receive-project-news--updates" class="toc-header-h3">How can we receive project news &amp; updates?</a></li>
52     <li><a href="#how-can-we-contact-you" class="toc-header-h3">How can we contact you?</a></li>
53     <li><a href="#how-can-i-get-involved-with-the-project" class="toc-header-h3">How can I get involved with the project?</a></li>
54     <li><a href="#do-you-provide-mentoring" class="toc-header-h3">Do you provide mentoring?</a></li>
55     </ul>
56 </li></ul>
57
58 <!-- <script type="module">
59     // This is a dev script to just help automatically build out the TOC for this page.
60     // You just need to uncomment this, copy the results from the console, that paste
61     // back into the page.
62     // Ensure you comment this back out though before commit.
63     const headers = document.querySelectorAll('h2, h3');
64     const toc = document.getElementById('toc');
65     let list = null;
66     for (const header of headers) {
67         if (header.tagName === 'H2') {
68             list = null;
69         }
70         const link = document.createElement('a');
71         link.href=`#${header.id}`;
72         link.textContent = header.textContent;
73         link.classList.add('toc-header-' + header.tagName.toLowerCase());
74         const li = document.createElement('li');
75         li.append(link);
76
77         if (list === null) {
78             toc.append(li);
79             list = document.createElement('ul');
80             li.append(list);
81         } else {
82             list.append(li);
83         }
84     }
85
86     console.log(toc.outerHTML);
87 </script> -->
88
89 ---
90
91 ## Origins, Goals & Organisation
92
93 ### How did BookStack start?
94
95 [Dan Brown](https://danb.me/) started building BookStack in 2015 while looking for a documentation 
96 platform to use for his mixed-technical-skilled workplace.
97 Most service offerings incurred per-user costs, and most established open source offerings didn't 
98 quite hit the mark in terms of design & usability, at least out-of-the-box.
99 Therefore, with a few years' development experience, Dan thought he could whip up a solution that worked for his use-case.
100
101 The first few months involved a lot of design iteration as can be seen [in this blogpost](/blog/1-year-of-bookstack/).
102 Eventually the design, name, and hierarchy came together to form pretty much form the BookStack we know today.
103
104 The project was first officially outwardly announced [via the /r/selfhosted subreddit](https://www.reddit.com/r/selfhosted/comments/3z06rb/bookstack_a_free_wikilike_information_store/) which received fairly positive feedback.
105 BookStack remained published under the "Beta" status for a few years, until it was eventually [dropped in 2021](/blog/bookstack-release-v21-04/)
106 although little actually changed in regard to development and target stability, since stability had long been a core value.
107
108 ### What are the core goals of BookStack?
109
110 BookStack aims to be an opinionated wiki system that provides a pleasant and simple out-of-the-box experience.
111 New users to an instance should find the experience intuitive and only basic word-processing skills should be
112 required to get involved in creating content on BookStack.
113 The platform should provide advanced power features to those that desire it but they should not interfere
114 with the core simple user experience.
115
116 BookStack aims to be free (both monetarily & in liberty) and open source, focusing on the core use-case
117 and audience that's it's built for instead of expanding to a wider, or more financially fruitful, audience.
118
119 BookStack aims to be "batteries-included", with core functionality designed to be built-in
120 rather than taking a more flexible plugin approach, to ensure the platform components
121 remain integrated & supported together.
122
123 In regard to development, BookStack aims for a relaxed, open, positive & stable approach.
124 The platform should evolve & improve in a steadily & stable manner over time, with a focus on
125 stability, maintainability and forward-compatibility instead of chasing new
126 features, technologies or audiences.
127
128 ### Who works on BookStack?
129
130 The project is led by, and primarily maintained by, the creator [Dan Brown](https://danb.me/).
131 There are also a [significant amount](https://github.com/BookStackApp/BookStack/blob/development/.github/translators.txt)
132 of community members who work to translate the BookStack interface into many other languages.
133 Upon that, there are many other folks in our community that help with contributing code, reporting & managing issues, 
134 provide input, or just get involved within our communities.
135
136 Outside of the official project itself, there are many other satellite community projects and offerings, most of which all
137 support the core platform in some sort of way. These are things like user guides, systems to package BookStack
138 for other platforms, and API tools & libraries.
139  
140 ### How is work for the project organised?
141
142 BookStack is primarily organised via the [project on GitHub](https://github.com/BookStackApp/BookStack).
143 This is where the code is hosted, where code is contributed, and where the issue list is managed.
144 The issue list comprises of feature requests, bug reports, requests to contribute, requests for support, and more.
145 For managing translations, we use the [Crowdin platform](https://crowdin.com/project/bookstack) as a tool for this, 
146 which has automated syncs with the GitHub project.
147
148 Beyond those core development paths we also communicate, and take input from, our various communities
149 like the [BookStack discord server](https://discord.com/channels/578552496637739008/1060598935074381854)
150 and the [BookStack subreddit](https://www.reddit.com/r/BookStack/).
151
152 ### What versions of BookStack do you support?
153
154 We only support the latest version of BookStack.
155 Usually every couple of months we release a "Feature Release", which can 
156 then be followed by patch (minor) versions to that feature release.
157 We don't look to patch older versions.
158
159 We don't have aim to have major big new releases that are painful to migrate to.
160 We instead try to retain a steady update pace, with a focus on avoiding breaking changes
161 and allowing easy forward compatibility, so that jumping to the latest version to keep
162 supported should not be a large concern.
163
164 ### What license is the project provided under?
165
166 The BookStack source code is distributed under [the MIT license](https://github.com/BookStackApp/BookStack/blob/development/LICENSE).
167 This is an open source license which allows any type of use, modification, and distribution.
168 The only requirements are that you retain attribution to the project (it's license and copyright in particular)
169 in all copies or substantial portions of the Software.
170 This doesn't mean you have to keep our name/logo/link on your instance at all, you just need to meet the above
171 when sharing/re-distributing the code.
172
173 BookStack makes use of many other projects, either directly or indirectly, of which will have their own licenses and copyrights.
174 We ensure that the libraries used/included are under a license compatible with BookStack's MIT license.
175 Most of the directly used projects are [listed in our readme here](https://github.com/BookStackApp/BookStack/tree/development#-attribution).
176 BookStack uses the [npm](https://docs.npmjs.com/about-npm) and [composer](https://getcomposer.org/) dependency manager tools
177 which can be used to gain a full listing of used libraries.
178
179 ---
180
181 ## Feature Development
182
183 ### How are features & additions decided upon?
184
185 We strongly focus on our existing user-base when deciding the path of development.
186 This often means improving existing features, and new features that work to our original core goals,
187 rather than adding new exciting shiny features that will get us a larger audience, user-base or income.
188
189 The project receives many requests with many different ideas, but over time we've learnt
190 that increasing the scope wider blurs the focus on our core goals while disproportionately 
191 impacting maintainability, which is a very important factor for a project like this.
192 Rather than putting in effort to make the platform suit new users, we instead put the
193 effort into making the platform better for the existing people it works well for.
194 This usually has a long-term affect of attracting new users anyway.
195
196 Ultimately, it's a balance of what's maintainable, what's in demand from our existing users,
197 and what fits the project's goals. The maintainability aspect is not just about code, 
198 but also the impact on long-term sustainability and the impact on community management & support. 
199
200 ### Is feature X planned to be added?
201
202 Probably not is the most likely answer. If it hasn't been added by this point, there may not be the demand
203 for such a feature or there could be reasons it has not already been implemented.
204 You may be able to find prior request or history for the feature in [our issue list](https://github.com/BookStackApp/BookStack/issues?q=is%3Aissue).
205 Note though, if an issue is open that does not indicate intent to implement. 
206 A relaxed approach is taken to issues, allowing many to stay open to gain feedback, support or ideas.
207
208 ### But feature X would be really simple to implement, why not just build it?
209
210 Adding almost any feature can be quite simple on its own.
211 It's very different matter to officially implement & support a feature on a longer-life, open source project like this.
212 Complexity often compounds, as we have to think: How does this fit in with other features? 
213 What about accessibility? What about forward compatibility? What about future plans? What about common customizations?
214 What about other languages? What about testing coverage? What about ease of hosting? What about RTL display?
215 What about community support impact? What about platform fit?...
216
217 Throwing new things in, to add to that complexity, is a route to a maintainability & sustainability nightmare.
218 It's much better we take time to assess and consider things, to meet our goals of steady & stable evolution.
219
220 ### If a feature is not wanted, why not just add it as an option?
221
222 This often seems like an easy answer, but options can compound to impede future maintainability via complexity.
223 This isn't just about the code, but also about user experience complexity, and community support complexity.
224 Often there are better approaches, or the need for an option may point to a more fundamental need or problem.
225 Therefore we will strongly avoid adding new options (especially user-interface options) if possible.
226
227 For hackers, we do alternatively look to expose options for customization & hackery for those that really desire it, 
228 and have the skills to support their desires.
229
230 ### Would BookStack integrate with X platform?
231
232 We focus on providing abstract APIs & methods where possible, or look to use widely accepted standards where it makes sense.
233 Generally we won't build to specific external platforms within the scope of the core project.
234 We do support a range of specific OAuth providers, but we've stopped expanding support for these,
235 aiming to use firmer standards or options for custom extension where desired.
236
237 If looking to build a custom integration for your instance, our [REST API](/docs/admin/hacking-bookstack/#bookstack-api) is a good place to start,
238 with [our api-scripts repository](https://codeberg.org/bookstack/api-scripts) holding a range of 
239 examples in various languages.
240
241 ### Can we pay for the implementation of specific features?
242
243 No. Money should not be a driver or incentive for decisions made for the core project.
244 Those without money should have as much influence in the evolution of the platform as those with money.
245 Additionally, the implementation of a feature is rarely the largest cost.
246 Maintenance & support has much more of an impact, and is a forever ongoing cost to the project.
247 We don't want to have additional financial incentives involved that may entice us to stretch the project out beyond a
248 reasonably maintainable state.
249
250 We get offered payment to build features often, and we have previously offered some quotes for features that had been validated
251 to meet the scope of the project via our core process, but it's usually a time consuming & awkward business dance to actually
252 get to an agreed scope and figure, so we've only had time consumed via this, and therefore has not been worth
253 the added complications or concerns.
254
255 ### Can we get our own, or pay other, developers to contribute the features we want?
256
257 While we accept many code contributions we likely won't accept feature contributions unless you've opened
258 a line of discussion up with the project, and had BookStack maintainers confirm that an idea/scope would be accepted.
259 As touched on in the previous answer above, implementation is rarely the real cost of a new feature
260 and we don't want the direction of the platform to be directed by those with the most money (in this case,
261 those that are able to pay developers to implement the features they want).
262
263 It could seem like contributing the code for new features would be "doing the work for us", but quite often
264 it results in the core interesting coding logic being done, leaving us with testing, responsibility & maintenance long-term.
265 To be clear, we're happy to be getting others involved in contributing to the project, but we just don't like to have
266 feature contributions lead the direction & scope of the project.
267
268 ---
269
270 ## Funding & Partnerships
271
272 ### How is the project funded?
273
274 The project is mainly funded through donations, sponsorships, and official support offerings.
275 Donations and sponsorships make up about half of the funding, with support offerings making up the other half,
276 although the support side is growing.
277
278 Details about donations can be found [on our donations page](/donate/).
279 Sponsorships are available at different levels via these donation methods, and gain your
280 companies' logo and link placed on our homepage and project readme.
281
282 Details about our support offerings can be found [on our support page](https://www.bookstackapp.com/support/).
283 These offerings, in addition to any other commercial offerings we may provide, 
284 are provided via a UK limited company, [HTTP Functions Ltd](https://www.httpfunctions.com/), which is led by the
285 creator and lead maintainer of BookStack, Dan.
286 Providing these via a company compartmentalises those commercial activities, while also somewhat insulating
287 from the core project itself from the influence of commercial users.
288
289 This funding currently helps cover Dan's living costs to keep working on the project as his main focus.
290 Ever so often we'll share insight into the project's finances on the blog, like can be seen 
291 [in our 2023 post here](/blog/bookstack-in-2023/).
292
293 ### Will the project accept investment?
294
295 No. We do want money to become a core focus, goal, driver or concern for the project.
296 Investment is often in the desire for growth, gain and return.
297 This can put pressures on a project which can affect decisions and impede original goals.
298 We'd much rather be smaller and naturally grow steadily, as we believe that's better
299 long term for us and our users.
300
301 ### Would you consider an official partnership with other businesses?
302
303 Typically not, especially for commercial offerings much for the reasons in the answer above,
304 and because most of these are somewhat exclusive and we try to remain neutral when it
305 comes to possible services/offerings/projects related to BookStack.
306
307 That said, there could be opportunity in some non-exclusive partnership and collaboration
308 with other companies where it doesn't have the mentioned impacts, especially with 
309 other "smaller" self-funded open source projects & businesses like ours.
310
311 ---
312
313 ## Services
314
315 ### Do you provide an official managed hosting service?
316
317 We do not, and we don't intend to.
318 Many existing companies offer such services, and will have much better skills & capabilities to support
319 such a service. We instead take a position of being agnostic to hosting services, platforms and methods,
320 so we can keep focused on the core platform.
321
322 If interested in the services offered by others, you can find some options in 
323 the ["Other Hosting Options" part of our install page](https://www.bookstackapp.com/docs/admin/installation/#other)
324 otherwise [our sponsors](https://www.bookstackapp.com/#sponsors) are often hosting providers with BookStack
325 offerings, although none of these are officially vetted nor endorsed by the BookStack project.
326
327 ### What services do you officially provide?
328
329 We provide support services which you can read about [on our support page](https://www.bookstackapp.com/support/).
330 In addition, we do provide services for updating "hacks" (unofficial & unsupported customizations) on our site.
331 These services are provided via [HTTP Functions Ltd](https://www.httpfunctions.com/).
332
333 ### Are there other versions/editions of BookStack?
334
335 No, we don't provide custom, or enterprise versions of BookStack.
336 Our efforts are focused on a single, open and free version.
337 Official features should not be locked or limited unnecessarily.
338 There's no intent to change this.
339
340 ### Can others provide services/offerings for BookStack?
341
342 Sure! Our license allows that, and we believe that more services and infrastructure
343 around the project is key to a healthy wider community and open source ecosystem.
344 There's no requirement to contribute or pay back, although it is appreciated.
345 I just ask the following:
346
347 - If you offer hosting services, please ensure you're able to keep customer instances reasonably up-to-date (or provide users the means to do so).
348 - Please don't infer an "official" affiliation, or misrepresent your relation, with the BookStack project in any way to users.
349 - You can use the name and logo to refer to BookStack, but please respect the "BookStack" trademark. For example, don't use it for other software, or use it in a way that could appear as an official BookStack service/offering, and don't use the logo by itself as your own logo.
350 - Please don't defer your customers to the BookStack community support offerings for things that should be managed/addressed at a infrastructure/hosting level (Basically don't overload our support with things you should be supporting).
351 - If forking the project, please do so cleanly with separate branding & community spaces to avoid confusion, conflation and impact to our limited resources. Also please respect the MIT license, and the licenses of the other components involved in the project & source code.
352
353 ### Do you offer pre-sales support/calls?
354
355 No. These are usually desired by very large companies, and can often be very time consuming and non-productive
356 due to the abstract level of scale and business-specific process talked about.
357 We are not trying to sell you the software. It's free to take and assess as you need.
358
359 If pre-sales support or consultancy is essential, then our ["Enterprise Support Plan"](/support/) includes 
360 10 hours of video/call support & advice which could be used for this purpose.
361 Keep in mind, we will not make changes or add features to specifically "win your business".
362 Our enterprise plan offers no direct influence, development or custom build offering in regard
363 to new features and changes.
364
365 ---
366
367 ## Communications & Involvement
368
369 ### How can we receive project news & updates?
370
371 The best route for this is [our blog](/blog/). On that page you'll find an RSS feed and a link to sign up
372 for blog updates by email. 
373 We also have a [security-specific update email list here](https://updates.bookstackapp.com/signup/bookstack-security-updates),
374 which will be sent upon release of new important security updates.
375
376 Otherwise, you can [find us on the fediverse/Mastodon here](https://fosstodon.org/@bookstack).
377 We also publish a range of update and guide videos, which can be found on both [Peertube](https://foss.video/c/bookstack/videos)
378 and [YouTube](https://www.youtube.com/c/BookStackApp).
379
380 ### How can we contact you?
381
382 You can find us via any of the various communities we have:
383
384 - [On Mastodon](https://fosstodon.org/@bookstack)
385 - [Our Discord](https://discord.gg/ztkBqR2)
386 - [The Codeberg org](https://codeberg.org/bookstack)
387 - [The Github Project](https://github.com/BookStackApp/BookStack)
388 - [Our Subreddit](https://www.reddit.com/r/bookstack)
389
390 If you need to get hold of Dan directly, he has links to his personal social pages [on his homepage](https://danb.me/).
391 His email can be seen [on his GitHub profile](https://github.com/ssddanbrown), when logged in.
392
393 ### How can I get involved with the project?
394
395 You can join one of our communities and let us know!
396 We can then guide you to the right place or to any relevant existing documentation & guidance we might have.
397 It's not just about code either, there are many ways to help out. [See our blogpost here](/blog/contributing-to-open-source/)
398 about all the different ways you can get involved.
399
400 ### Do you provide mentoring?
401
402 We don't provide any kind of official mentoring program.
403 That said, if you're wanting to contribute and put in the effort, we're happy to spend some time
404 to help guide and hand-hold through the development & contribution process.
405 It's rare there's anything easy and pre-accepted in the GitHub issue list to pick-up & work on,
406 but we can help find or put aside potential things to help with, depending on your goals
407 and skill-set.