]> BookStack Code Mirror - website/blob - content/blog/2021/services-we-use.md
Script refresh, now compatible with RHEL 8.9 with PHP 8.1
[website] / content / blog / 2021 / services-we-use.md
1 +++
2 categories = ["Community"]
3 tags = ["Open Source", "Services"]
4 title = "The Services We Use"
5 date = 2021-10-15T16:39:32Z
6 author = "Dan Brown"
7 image = "/images/blog-cover-images/unsplash/zebra-herd-the_bracketeer.jpg"
8 slug = "services-we-use"
9 draft = false
10 +++
11
12 Now that [I've got a bit more time](https://danb.me/blog/posts/leaving-my-job-to-focus-on-open-source/)
13 to work on BookStack, I thought it'd be good to
14 do something a little different on the blog and pay tribute to the services we use
15 to help manage the project. Keep in mind that this is not a complete listing
16 of projects that we use within BookStack itself, but instead a listing of the services
17 and projects that we use from a project & code management point of view. 
18
19
20 ### GitHub
21
22 ![GitHub](/images/2021/10/github.png)
23
24 [GitHub](https://github.com/BookStackApp/BookStack) provides a lot of the core central management of the project.
25 We use GitHub for the following:
26
27 - Central location for code management.
28 - Issue and feature request tracking.
29 - Release planning and management.
30 - Code contribution management via Pull Requests.
31 - Automated running of our test suite.
32 - Sponsorship management.
33
34 Originally I hosted the project on GitLab but, after deciding that I'd want to push
35 the project further into the open, I decided to move it to GitHub for better visibility.
36 Although not open itself, GitHub has provided good facilitation of the project's needs
37 and our value from GitHub has grown as they've increased their feature-set with new
38 offerings such as [GitHub Actions](https://github.com/BookStackApp/BookStack/actions)
39 and [GitHub Sponsors](https://github.com/sponsors/ssddanbrown).
40
41 ### Plausible
42
43 ![Plausible](/images/2021/10/plausible.png)
44
45 [Plausible](https://plausible.io/) provides [our website analytics](https://analytics.bookstackapp.com/bookstackapp.com) as a privacy friendly alternative
46 to the Google Analytics tracking we used to use. I detailed our migration
47 in [a blogpost earlier this year](https://www.bookstackapp.com/blog/replacing-ga-and-mailchimp/).
48
49 The information it provides is concise and exactly what I may need to know about our website's usage. Plausible is a great open-source offering, with a focused goal which
50 it meets superbly. We self-host an instance and then contribute back via GitHub sponsors.
51
52 ### CrowdIn
53
54 ![CrowdIn](/images/2021/10/crowdin.png)
55
56 [CrowdIn](https://crowdin.com/project/bookstack) provides translation management
57 services for BookStack. Previous to using CrowdIn translations would be managed
58 via GitHub pull requests which could pose a significant barrier to non-developer
59 translators while being tricky for me to manage.
60
61 Using CrowdIn's free-for-open-source
62 offerings provided a central location to track translations while massively
63 improving accessability for translators. CrowdIn the integrates neatly back to GitHub
64 to send back all translation changes via a single pull request making my maintainer role
65 easier. Overall it's very valuable and I'm grateful to CrowdIn for their free offering.
66
67 ### StyleCI
68
69 ![StyleCI](/images/2021/10/styleci.png)
70
71 It's good to have consistent code styling within a project to ease the cognitive load.
72 I did use [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) to impose
73 a standard but I'd often forget to run it or be hesitant of causing a lot of changes
74 which would then complicate pending pull requests.
75
76 Instead I turned to [StyleCI](https://styleci.io/), an offering from the great
77 open source wizard [Graham Campbell](https://twitter.com/GrahamJCampbell).
78 StyleCI will automatically assess code style upon push to GitHub, with blazing speed,
79 and report back if there any issues. You can then pull the fixes to be made
80 via automated or manual means to get the code back into shape. 
81
82 While StyleCI does cost, Open source projects can use it for free. It's a 
83 classic example of a focused service that just does exactly what you need it to, 
84 making your life easier in the process. 
85
86 ### Code Climate
87
88 ![Code Climate](/images/2021/10/code-climate.png)
89
90 [Code Climate](https://codeclimate.com/github/BookStackApp/BookStack) is something
91 I added to the project out of curiosity a few years ago and have since left active
92 after getting a surprising amount of value back. Code Climate provides code quality
93 analysis, highlighting potential maintainability issues in code. 
94 I don't follow its guidance religiously but it's proved useful to get a feel
95 when particular files might be getting out of control. 
96
97 CodeClimate is not open source but it does provide free services to Open Source
98 projects. It's another service that was super simple, taking only minutes to set-up,
99 while providing a net benefit. 
100
101 ### Hugo
102
103 ![Go Hugo](/images/2021/10/gohugo.png)
104
105 Not so much a service as an open source project, but [Hugo](https://gohugo.io/) plays a big
106 part for our website and this blog. Hugo is a static-site generator that allows 
107 us to generate a performant, easy-to-host, static HTML site for our docs, blog
108 and homepage from content [we can manage via GitHub](https://github.com/BookStackApp/website).
109
110 Hugo has remained great for our usage and has remained super fast even as
111 the site and blog have grown. I've sometimes had trouble wrangling with the 
112 template & variable syntax but I can usually find a solution and it's infrequent
113 I need to make changes. Overall, A great open-source project.
114
115 ### Mailbag
116
117 ![Mailbag](/images/2021/10/mailbag.png)
118
119 Mailbag is a project I created myself to manage [our mailing lists](https://updates.bookstackapp.com/signup/bookstack-news-and-updates) as an alternative
120 to our previous Mailchimp usage.  I detailed our migration
121 in [a blogpost earlier this year](https://www.bookstackapp.com/blog/replacing-ga-and-mailchimp/).
122
123 It's quite a simple system, focusing on plaintext email content,
124 but it's designed to privacy respecting and fast to use. [I provide it under the 
125 MIT license via GitHub](https://github.com/ssddanbrown/mailbag).
126
127 ### Discord
128
129 ![Discord](/images/2021/10/discord.png)
130
131 Although primarily intended for gaming, [Discord](https://discord.com/) has been 
132 adopted as the discussion system of choice by many open source projects.
133 Personally I was very hesitant about [utilizing it for BookStack](https://discord.com/invite/ztkBqR2)
134 but Discord has acted as a very good host,
135 providing any required features while doing so with a 
136 great user experience. Discord has proved itself as a great alternative to our 
137 GitHub issue list as a place to informally discuss the project and to seek/provide
138 support.
139
140 ### OVH
141
142 ![OVH](/images/2021/10/ovh.png)
143
144 I've used many hosting providers over the years but I've landed on using
145 [OVH](https://www.ovh.co.uk/) for most of my personal projects thanks to their
146 relatively cheap price-point for VPS systems in Europe.
147 Their reliability may not be at Google Cloud or AWS levels, with a few recent events
148 occuring including [data centre fires](https://www.reuters.com/article/us-france-ovh-fire-idUSKBN2B20NU)
149 and [network configuration issues](https://www.theregister.com/2021/10/13/ovh_outage/),
150 but I'm happy to sacrifice a little reliability for a better price and
151 predictable pricing. We use OVH's VPS offerings to host this website & blog.
152
153
154 ### Algolia DocSearch
155
156 ![Aloglia DocSearch](/images/2021/10/docsearch.png)
157
158 The BookStack documentation pages are generated as part of the website static-site build.
159 While there are options for search in this scenario, using [DocSearch](https://docsearch.algolia.com/) by Algolia has made things very easy which providing a 
160 great search experience within our documentation. DocSearch is offered free
161 by Aloglia for open source projects.
162
163
164 ----
165
166 <span style="font-size: 0.8em;opacity:0.9;">Header Image Credits: <span>Photo by <a href="https://unsplash.com/@the_bracketeer?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Hendrik Cornelissen</a> on <a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></span></span>