Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/components/sections/Footer.astro
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@

<div class="mt-10 border-t border-cd-border pt-8">
<p class="text-sm text-cd-text-secondary">Copyright Robin van Baalen. Released under the <a class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2 " href="https://github.com/spreadpaper/SpreadPaper/blob/main/LICENSE">MIT licence</a>.</p>
<p class="mt-2.5 text-sm text-cd-text-secondary"><a class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2 " href="/privacy">Privacy policy</a> <span aria-hidden="true" class="px-1.5 text-cd-text-tertiary">&middot;</span> <a class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2 " href="/terms">Terms of service</a> <span aria-hidden="true" class="px-1.5 text-cd-text-tertiary">&middot;</span> <a class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2 " href="mailto:hello@spreadpaper.app">hello@spreadpaper.app</a></p>
</div>
</div>
</footer>
127 changes: 127 additions & 0 deletions src/pages/privacy.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
---
import Footer from '../components/sections/Footer.astro'
import Nav from '../components/sections/Nav.astro'
import Layout from '../layouts/Layout.astro'

/** Last substantive change to this policy, shown at the top of the page. */
const updatedLabel = '14 September 2026'
---

<Layout
title="Privacy policy | SpreadPaper"
description="SpreadPaper collects nothing. No account, no analytics, no telemetry. What the app and this site do touch, and why, in plain terms."
socialDescription="SpreadPaper collects nothing. No account, no analytics, no telemetry."
>
<Nav />
<main id="main" class="cd-section bg-cd-bg">
<div class="cd-shell">
<div class="grid grid-cols-12 gap-x-6 gap-y-10">
<div class="col-span-12 lg:col-span-6">
<p class="cd-eyebrow">Privacy</p>
<h1
class="mt-3 text-3xl font-bold leading-[1.05] tracking-[-0.025em] text-balance text-cd-text sm:text-4xl lg:text-5xl"
>
SpreadPaper collects nothing
</h1>
</div>
<div class="col-span-12 lg:col-span-5 lg:col-start-8">
<p class="text-lg leading-relaxed text-pretty text-cd-text-secondary sm:text-xl">
No account, no sign-in, no analytics, no telemetry, no crash reporting. There is no
server of ours for your data to sit on. Everything below is the detail behind that
sentence.
</p>
<p class="mt-5 text-sm text-cd-text-secondary">Last updated {updatedLabel}</p>
</div>
</div>

<div class="mt-16 max-w-[62ch]">
<h2 class="text-xl font-semibold tracking-[-0.01em] text-cd-text">Your images never leave your Mac</h2>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
The photograph you pick is opened, cropped and rendered on your own machine, and the
result is written to your own disk. It is never uploaded anywhere. The app runs inside
Apple's sandbox and can only read the files you hand it through the open panel or by
dragging them in.
</p>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
Your presets, schedules and display arrangement are stored locally in the app's own
container, alongside the rendered wallpapers. Deleting the app removes them.
</p>

<h2 class="mt-12 text-xl font-semibold tracking-[-0.01em] text-cd-text">The one thing the app does over the network</h2>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
SpreadPaper checks whether a newer version exists. To do that it asks GitHub's public API
about this project's latest release, and fetches the changelog file from the repository.
Nothing about you is sent. The request carries what any HTTP request carries: your IP
address, and a user agent naming the app and its version, for example
<code class="cd-code">SpreadPaper/1.10.0</code>.
</p>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
That request goes to GitHub, not to us. We never see it, and we keep no record of who
checked or when. GitHub's handling of it falls under
<a
class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2"
href="https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement">their privacy statement</a
>. If you would rather it did not happen at all, the update check is the only outbound
request in the app, and blocking
<code class="cd-code">api.github.com</code> stops it.
</p>

<h2 class="mt-12 text-xl font-semibold tracking-[-0.01em] text-cd-text">This website</h2>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
spreadpaper.app is a static site with no analytics, no tracking pixels and no cookies of
its own. It is served by Cloudflare, which keeps standard request logs for security and
abuse prevention under
<a
class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2"
href="https://www.cloudflare.com/privacypolicy/">their privacy policy</a
>.
</p>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
The page loads its typeface from Google Fonts, which means Google receives your IP address
when you visit. That is the only third party the page contacts. Downloads are hosted on
GitHub, so following a download link takes you to them.
</p>

<h2 class="mt-12 text-xl font-semibold tracking-[-0.01em] text-cd-text">If you get in touch</h2>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
Email sent to
<a
class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2"
href="mailto:hello@spreadpaper.app">hello@spreadpaper.app</a
> is forwarded to a personal mailbox and kept only as long as the conversation is useful. Anything
you post as a GitHub issue is public, and governed by GitHub's terms rather than this policy.
</p>

<h2 class="mt-12 text-xl font-semibold tracking-[-0.01em] text-cd-text">Your rights</h2>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
Under the GDPR you may ask what personal data is held about you, and ask for it to be
corrected or erased. In practice there is nothing to hand over unless you have emailed,
because nothing is collected. The project is run from the Netherlands by Robin van Baalen.
Ask at
<a
class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2"
href="mailto:hello@spreadpaper.app">hello@spreadpaper.app</a
>.
</p>

<h2 class="mt-12 text-xl font-semibold tracking-[-0.01em] text-cd-text">Changes</h2>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
If this policy changes, the date at the top changes with it. The app is open source, so
you do not have to take any of the above on trust: the update check lives in
<a
class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2"
href="https://github.com/spreadpaper/SpreadPaper/blob/main/SpreadPaper/Services/UpdateChecker.swift">UpdateChecker.swift</a
>, and it is the only place the app opens a connection.
</p>

<p class="mt-12 border-t border-cd-border pt-8 text-sm text-cd-text-secondary">
See also the <a
class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2"
href="/terms">terms of service</a
>.
</p>
</div>
</div>
</main>
<Footer />
</Layout>
120 changes: 120 additions & 0 deletions src/pages/terms.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
---
import Footer from '../components/sections/Footer.astro'
import Nav from '../components/sections/Nav.astro'
import Layout from '../layouts/Layout.astro'

/** Last substantive change to these terms, shown at the top of the page. */
const updatedLabel = '14 September 2026'
---

<Layout
title="Terms of service | SpreadPaper"
description="SpreadPaper is free software under the MIT licence. The terms that come with it, the warranty that does not, and what you may do with the app and this site."
socialDescription="Free software under the MIT licence. Use it, read it, fork it, ship it. No warranty."
>
<Nav />
<main id="main" class="cd-section bg-cd-bg">
<div class="cd-shell">
<div class="grid grid-cols-12 gap-x-6 gap-y-10">
<div class="col-span-12 lg:col-span-6">
<p class="cd-eyebrow">Terms</p>
<h1
class="mt-3 text-3xl font-bold leading-[1.05] tracking-[-0.025em] text-balance text-cd-text sm:text-4xl lg:text-5xl"
>
The MIT licence, and the little that sits around it
</h1>
</div>
<div class="col-span-12 lg:col-span-5 lg:col-start-8">
<p class="text-lg leading-relaxed text-pretty text-cd-text-secondary sm:text-xl">
SpreadPaper is free software. There is no purchase, no subscription and no account, so
most of what a normal terms page covers does not apply here. What follows is the part
that does.
</p>
<p class="mt-5 text-sm text-cd-text-secondary">Last updated {updatedLabel}</p>
</div>
</div>

<div class="mt-16 max-w-[62ch]">
<h2 class="text-xl font-semibold tracking-[-0.01em] text-cd-text">The licence is the agreement</h2>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
The app and its source are released under the
<a
class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2"
href="https://github.com/spreadpaper/SpreadPaper/blob/main/LICENSE">MIT licence</a
>. You may use it for anything, including commercially, and you may copy, change,
redistribute and sell it, provided the copyright notice and the licence text travel with
it. Where anything on this page appears to contradict the licence, the licence wins.
</p>

<h2 class="mt-12 text-xl font-semibold tracking-[-0.01em] text-cd-text">No warranty</h2>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
The software is provided as is, without warranty of any kind, express or implied. Nobody
is liable for any claim, damage or other liability arising from the software or its use.
That is the MIT licence's own wording and it is meant literally: this is a personal
project given away for free, not a product with a support contract behind it.
</p>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
Practically, that means no guarantee it works on your setup, no promised response time,
and no commitment that a given feature will keep existing. Some jurisdictions do not allow
the exclusion of certain warranties, so parts of this may not apply to you.
</p>

<h2 class="mt-12 text-xl font-semibold tracking-[-0.01em] text-cd-text">Get it from here or from GitHub</h2>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
Official builds are published only on the project's
<a
class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2"
href="https://github.com/spreadpaper/SpreadPaper/releases">GitHub releases page</a
>, which is where the download buttons here point. Copies from anywhere else have not been
built by us and may be anything at all. Because the app is not signed with a paid Apple
Developer ID, macOS will warn you on first launch; the front page explains the two ways
through that.
</p>

<h2 class="mt-12 text-xl font-semibold tracking-[-0.01em] text-cd-text">Your images and your wallpapers</h2>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
Whatever you open in SpreadPaper stays yours. Nothing is claimed over the images you use
or the wallpapers the app renders from them, and nothing is uploaded. Making sure you have
the right to use a given photograph is up to you. The photographs shown on this site and
bundled as examples come from Unsplash under the
<a
class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2"
href="https://unsplash.com/license">Unsplash licence</a
>, credited in the footer.
</p>

<h2 class="mt-12 text-xl font-semibold tracking-[-0.01em] text-cd-text">Contributing</h2>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
Issues and pull requests are welcome. Anything you contribute is taken as offered under
the same MIT licence, so that it can be released as part of the project. Issues are public
and the usual rule applies: do not put anything in one you would not want read.
</p>

<h2 class="mt-12 text-xl font-semibold tracking-[-0.01em] text-cd-text">The name</h2>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
The MIT licence covers the code, not the name. Forks are entirely welcome, but please give
yours its own name rather than shipping something else called SpreadPaper, so nobody
downloads a build expecting this one.
</p>

<h2 class="mt-12 text-xl font-semibold tracking-[-0.01em] text-cd-text">Who and where</h2>
<p class="mt-4 text-base leading-relaxed text-pretty text-cd-text-secondary">
SpreadPaper is made by Robin van Baalen in the Netherlands. Dutch law applies to these
terms, without affecting any consumer rights you have where you live. Reach the project at
<a
class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2"
href="mailto:hello@spreadpaper.app">hello@spreadpaper.app</a
>. If these terms change, the date at the top changes with them.
</p>

<p class="mt-12 border-t border-cd-border pt-8 text-sm text-cd-text-secondary">
See also the <a
class="cd-inline-link focus-visible:outline-2 focus-visible:outline-cd-accent focus-visible:outline-offset-2"
href="/privacy">privacy policy</a
>.
</p>
</div>
</div>
</main>
<Footer />
</Layout>