Commits: 3
Update the readme
Separate development setup (simpler) from publishing (more complex).
Describe git rebase operation.
Describe the publish script.
Describe branch previews.
index 25a36fd..dc2028e 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,42 @@
-This repository contains sources to build escco.eu website: content, templates, assets. Use Zola to generate a website from it and push it to
+This repository is one of the two involved in escco.eu website. It contains sources to build escco.eu website: content, templates, assets. Use Zola to generate a website from it and push the generated files (from the `public/` directory) to https://codeberg.org/escco/pages/.
=
=
=# Development
=
-Start by cloning this repository. Then from within clone the pages using the following command:
+To install and keep track of all dependencies automatically you need [Nix package manager](https://nixos.org/) and [direnv](https://direnv.net/).
+
+Start by cloning this repository.
+
+You should be able to run `zola serve` and get a working website at <http//localhost:1111/>.
+
+Changing content should be automatically reflected in the website (hot reloading).
+
+# Collaboration
+
+If you are working on a feature, create a branch. For example:
+
+``` shell
+git switch --create awesome-services-list
+```
+
+If you are a member of the collective, share your work with the rest of us (see publishing) and discuss it in the Club. You don't need to create a PR. If you are an outside contributor, please create a pull request.
+
+It's advised to work together with another person (peer programming). If both of you are contributting to the same branch, you may run into conflicts. We deal with them by using a git feature called "rebasing". The easiest way is to invoke the following command:
+
+``` shell
+git pull --rebase
+```
+
+This command will fetch the latest contributions from your colleagues and if needed rewrite your local contributions as if they were written after. Do it every time you start working after a break (e.g. in the morning). This way your local repository will only contain changes additional to what others did (a linear, non-diverging histories). Follow it with `git push` and your version will be on top. Occasionally you may need to manually resolve conflicting changes. It's not difficult, but if you are new to this kind of thing, as a colleague to walk you through it.
+
+
+# Publishing
+
+Pushing your contributions to this repository will not automatically update the website (not yet, eventually we will setup a continuous delivery system for that). For now, you need to take some manual steps to deploy a new version.
+
+## Setup
+
+Within _this_ repository clone the _other_ one (pages) using the following command:
=
=``` shell
=git --work-tree public clone ssh://git@codeberg.org/escco/pages.git pages.git
@@ -15,39 +48,40 @@ This should create two sub-directories:
= - `pages.git` containing git history and configuration
=
=
-> Why? Because Zola will wipe out everything in public/, including .git/ if it were there. So we need to keep git directory outside of public.
+> Why not clone directly to the `public/` directory? Because Zola will wipe out everything in `public/`, including `.git/` if it were there. So we need to keep `.git/` directory outside of `public/`.
=
=This is the directory structure you should have now:
=
=``` shellsession
=escco.eu/
- ./config.toml
+ ./config.toml <-- global configuration of the website
= ./content <-- markdown files
- ./flake.lock
- ./flake.nix
+ ./flake.lock <-- pins down versions of dependencies (like Zola; do not edit by hand)
+ ./flake.nix <-- declaration of development environment
= ./pages.git <-- git history of public
= ./public <-- generated web content to be published
- ./README.md
+ ./README.md <-- this document
= ./sass <-- stylesheets
- ./static
+ ./static <-- content like images, scripts, 3rd party CSS or JS
= ./templates <-- reusable html templates
=```
=
-`
+## The publish script
=
-Use `zola serve` command to preview the website on your local machine.
+There is a script called `./publish.nu` that automates the publishing process. Once you are happy with your changes, call in like that:
=
-Use `zola build` to write production ready files to `public/`.
+``` shell
+nu publish.nu
+```
=
-Change directory to `pages.git/`, commit and push to publish the website.
+It should:
+
+ 1. Make sure you don't have any uncommitted changes
+ 2. Build the site with production optimizations
+ 3. Present you with a list of changes (commits since last time site was published)
+ 4. Publish the site to the branch preview matching your branch (see below)
+
=
-Inside `pages.git` you can use branches and other features of Git. Just remember that `pages.git/` and `public/` are a separate repository from this one. If it feels too complicated, talk to Tad - he will explain or try find a way to make it simpler.
+## Branch preview
=
-> NOTE: The `zola serve` command, when stopped, will remove `public/`. If you are getting weird errors from git, like
->
-> ``` shellsession
-> $ git status
-> fatal: this operation must be run in a work tree
-> ```
->
-> inside pages repository, check if it exists. If not, just run `zola build` again to re-create it.
+If you are publishing the `main` branch, the changes will be applied to the website at <https://escco.eu/>. Other branches will be published at `https://escco.eu/@branch` where `branch` is the name of your branch. This allows us to experiment with different ideas and present them to the collective for discussion. Don't be affraid to take initiative and show us what you have in mind. It's often more efficient than having long discussions about ideas, that might not be feasible. The only risk is that your work will not be approved, but most likely it will lead to some learning.Link to git-rebase from the readme
index dc2028e..2f24b63 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@ git switch --create awesome-services-list
=
=If you are a member of the collective, share your work with the rest of us (see publishing) and discuss it in the Club. You don't need to create a PR. If you are an outside contributor, please create a pull request.
=
-It's advised to work together with another person (peer programming). If both of you are contributting to the same branch, you may run into conflicts. We deal with them by using a git feature called "rebasing". The easiest way is to invoke the following command:
+It's advised to work together with another person (peer programming). If both of you are contributting to the same branch, you may run into conflicts. We deal with them by using [a git feature called "rebasing"](https://git-scm.com/docs/git-rebase). The easiest way is to invoke the following command:
=
=``` shell
=git pull --rebaseAdded solutions Proton Mail and Tuta Mail, and finalized solution Mailfence
index ca766b4..4598b8d 100644
--- a/content/solutions/mailfence/index.md
+++ b/content/solutions/mailfence/index.md
@@ -5,18 +5,23 @@ taxonomies:
= solution_providers: [ "ContactOffice Group sa" ]
= solution_categories: [ "email provider" ]
= features:
- - "rich text formatting"
- - "scripting"
- - "libre"
- - "local"
- esc_support: [ "training", "consulting", "integration" ]
+ - "open standards: imap, smtp"
+ - "encryption with OpenPGP"
+ - "calendar"
+ - "free plan"
+ esc_support: [ "consulting", "integration" ]
=---
=
-Mailfence is a solution for email, including calendar
+Mailfence is a secure and private email solution providing calendar, chat, documents and advanced user management.
=
=<!-- more -->
=
-Esc Collective offers commercial support for business switching to Mailfence in form of consulting, training and integration. We can help set up the Mailfence environment, take care of DNS settings including DKIM and DMARC, and help migrate existing email from your current provider.
-We believe Mailfence is a viable solution because it -- customer base, age, mature product
+Esc Collective offers commercial support for business switching to Mailfence in form of consulting and integration. We can help set up the Mailfence environment, take care of DNS settings including DKIM and DMARC, and help migrate existing email from your current provider. But maybe most important of all, Esc Collective can help you find the email provider which meets your functional and business requirements.
+
+What makes Mailfence great is that it supports open standards for email synchronisation such as IMAP and SMTP which gives you the freedom to choose your own email client (e.g. Thunderbird). Nevertheless Mailfence does have a great browser app as well as apps for Android and iOS.
+
+Based in Belgium they are fully compliant with GDPR, and the focus of Mailfence has always been on privacy and security. There is no tracking, and even their browser client fully supports email encryption, digital signatures with OpenPGP.
+
+Functionalities include everything a small and medium sized business needs including user management, shared mailboxes, group calendars and so on. However, they have a free plan and Mailfence would still be great for small teams, families and individual users.
=
=Home page: <https://mailfence.com/>new file mode 100644
index 0000000..1f7844e
--- /dev/null
+++ b/content/solutions/proton-mail/index.md
@@ -0,0 +1,28 @@
+---
+title: Proton Mail
+
+taxonomies:
+ solution_providers: [ "Proton AG" ]
+ solution_categories: [ "email provider" ]
+ features:
+ - "encryption"
+ - "calendar"
+ - "free plan"
+ esc_support: [ "consulting", "integration" ]
+---
+
+Proton Mail is an email solution focused on privacy and freedom. Their email solution includes calendar, and Proton also has solutions for documents, VPN and password management.
+
+<!-- more -->
+
+Esc Collective offers commercial support for business switching to Proton Mail in form of consulting and integration. We can help set up the Proton Mail environment, take care of DNS settings including DKIM and DMARC, and help migrate existing email from your current provider. But maybe most important of all, Esc Collective can help you find the email provider which meets your functional and business requirements.
+
+Based in Switzerland Proton Mail is governed by strict privacy regulations. They have a history of contesting court orders to disclose user information, and share information about this on [their website](https://proton.me/legal/transparency). Note that under Swiss law Proton can outright reject any such requests from foreign authorities, and more recently stated clearly that pending changes to Swiss law [will make them leave the country](https://www.tomsguide.com/computing/vpns/proton-vpn-boss-compares-switzerland-to-russia-and-claims-it-could-leave-the-country-over-proposed-law).
+
+What makes Proton Mail great is the company's focus on privacy and freedom. Their email service is developed to use encryption by default. Zero knowledge cloud storage ensures that even if Proton is ever obliged to disclose user data this is only limited to metadata.
+
+Proton requires the installation of their Mail Bridge to allow synchronization with other mail clients on a computer, this is not supported on mobile devices. Most users will therefore choose to use the browser app or the Proton email clients, which are available on Android, iOS, MS Windows and macOS. There is a Proton Mail client for Linux but it is still in beta.
+
+Proton Mail will work for most businesses. Having to rely on the Mail Bridge when not using Proton's email clients is a drawback, and some functionalities are missing such as shared mailboxes. But aside of that it is a great privacy and security focused email provider, with a large customer base and a proven history of reliability.
+
+Home page: <https://proton.me/>new file mode 100644
index 0000000..4dba12c
--- /dev/null
+++ b/content/solutions/tuta-mail/index.md
@@ -0,0 +1,28 @@
+---
+title: Tuta Mail
+
+taxonomies:
+ solution_providers: [ "Tutao HmbH" ]
+ solution_categories: [ "email provider" ]
+ features:
+ - "encryption"
+ - "calendar"
+ - "free plan"
+ esc_support: [ "consulting", "integration" ]
+---
+
+Tuta Mail is an email solution focused on security through quantum-safe encryption. Their service includes a calendar and many business grade functionalities.
+
+<!-- more -->
+
+Esc Collective offers commercial support for business switching to Tuta Mail in form of consulting and integration. We can help set up the Tuta Mail environment, take care of DNS settings including DKIM and DMARC, and help migrate existing email from your current provider. But maybe most important of all, Esc Collective can help you find the email provider which meets your functional and business requirements.
+
+Tuta is based in Germany, and therefore ensures full GDPR compliance for both their private and business customers. They do not support IMAP, POP or other open email retrieval protocols so you cannot use email clients such as Thunderbird or Outlook. Tuta offers their own mail clients in the browser or installed on Android, iOS, Linux, Windows and MacOS.
+
+What makes Tuta Mail great is the company's focus on security through encryption, in a simple to use interface. Their email service is developed to use end-to-end encryption by default (with a limitation, see below). This ensures that even if Tuta is ever obliged to disclose user data this is only limited to metadata.
+
+Tuta goes very far in encrypting data stored on their servers and for emails sent in between mailboxes hosted on Tuta Mail - everything is encrypted except for email addresses and dates. However, because encryption is not performed with an open standard such as OpenPGP, any email traffic outside of the Tuta Mail network is only encrypted when it arrives in the network and not during transfer.
+
+Tuta Mail will work for most businesses. They offer multi-user support, as well as specific functionalities such as shared mailboxes.
+
+Home page: <https://tuta.com/>