Checking your connection

The things we decided not to build, and what each one costs us.

Morke was built without things that would have made it easier to run and easier to sell, and each one costs us something.

The limits here are ours. The first is only a name.

Mørke is Norwegian and Danish for darkness. It names our side of the connection: what we can see of the people using this is the dark part.

We cannot get in touch with anyone who uses Morke. No release note reaches you, and there is no way for us to ask somebody who left why they went. What we have instead of an address is on the home page.

This website loads nothing from another company. The policy it is served under allows scripts, styles, images and fonts from this domain and from no other origin, so a tracker added here by accident would have nowhere to send anything. What it costs is that we do not know whether anyone reads this page, or whether any of it works.

The iPhone app carries an Apple attestation and the backend checks it before answering. The check runs offline against a pinned Apple root. There is no HTTP client in either attestation module, so Apple is never asked and does not learn our request volume or our endpoints. We also never read the receipt, the one artefact Apple would exchange for per-device figures. What we cannot remove is that the device asks Apple for the attestation itself, so Apple sees that a device requested one for our App ID.

Some of this has exact values. The rest is a decision and has none.

1.0This website

1.1Origins a page load reaches
morke.co
1.2Scripts from another origin
Blocked
1.3Fonts
Self-hosted
1.4Analytics and pixels
None

2.0The Apple attestation

2.1Verified
Offline, pinned root
2.2Calls to Apple from our servers
None
2.3Attestation receipt
Never read
2.4What Apple sees
One request per install

The system does keep records. Not everything can be left out.

None of this is a claim that nothing is stored. Running the service means keeping a small set of rows about an account, and some of them are rows we would rather not need. The logging policy names every row and what it holds.

The rest of it is on other pages. This page has the reasons and none of the detail.

What any of this looks like in the app is on the features page. What happens when an activation key is gone is on the FAQ.