Files
offscale-mobile/NOTICE
T
pastilhasandClaude Opus 5 c63662082a docs: record where the Tailscale logo permission actually stands
Tailscale replied on 2026-08-14, after a week, that their logo is not to be used for
MARKETING purposes.

That is not this use. The mark appears in the attribution strip inside an installed
app, naming the project the client speaks to — no store listing, no screenshot, no
website, and this repository is not published anywhere it reads as promotion. So it
stays, deliberately and provisionally, on that reading.

Written into the component and the NOTICE rather than left in a conversation, because
the decision has two halves and only one of them is obvious later. The first is that
it may stay for now. The second is that it must NOT migrate into a store listing or a
promotional image on the strength of already being in the app — that is exactly the
use they declined, and it is the mistake this note exists to prevent.

If they say remove it, it is one component and its two call sites. That containment is
why it was worth keeping rather than pre-emptively cutting.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 21:15:11 +01:00

157 lines
7.8 KiB
Plaintext

OffScale
Copyright (c) 2026 André Alçada Padez Monteiro da Conceição
This product is licensed under the MIT License (see LICENSE). It bundles and
links third-party software under its own terms, reproduced below.
================================================================================
1. Tailscale — BSD 3-Clause License
================================================================================
WHAT IS EMBEDDED, AND WHERE
OffScale is a Tailscale client. It does not reimplement the protocol; it embeds
Tailscale's own Go client library and runs it inside the app.
modules/officer-net/gocore/
A small Go shim (`tailcore.go` and siblings) that imports `tailscale.com`
and exposes a narrow API to Swift and Kotlin through gomobile. Its
`go.mod` requires:
tailscale.com v1.102.0
Everything under `gocore/` that is not Tailscale's own source is part of
this project and MIT-licensed; what it *imports* is Tailscale's, under the
BSD 3-Clause licence below.
modules/officer-net/ios/libs/TailCore.xcframework (built, not committed)
modules/officer-net/android/libs/tailcore.aar (built, not committed)
The compiled output of `gomobile bind` over that shim. These artifacts
CONTAIN compiled Tailscale code, so any binary distribution of OffScale —
an .ipa, an .apk, a TestFlight or store build — is a binary distribution of
Tailscale's software and must carry this notice with it. They are produced
by `modules/officer-net/scripts/build-libtailscale-{ios,android}.sh` and
are gitignored because of their size, not because they are unimportant.
modules/officer-net/gocore/go.sum
Records the exact module versions, including transitive dependencies of
`tailscale.com`, several of which carry their own permissive licences
(BSD, MIT, Apache-2.0). Their full texts ship inside the Go module cache
that `go build` resolves; run `go mod download` in `gocore/` and read
`$(go env GOMODCACHE)` for the authoritative set.
The rest of this repository — the React Native app, the Swift Network Extension
bridge, the Kotlin VpnService bridge, the Expo config plugin and the build
scripts — is original work under the MIT licence.
LICENCE TEXT
Copyright (c) 2020 Tailscale Inc & AUTHORS. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Tailscale Inc nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
TRADEMARKS — READ THIS SEPARATELY FROM THE LICENCE ABOVE
The BSD 3-Clause licence covers Tailscale's SOURCE CODE. It does not grant any
right to the Tailscale name or logo — in fact its third clause explicitly
withholds the use of the name to endorse or promote derived products.
OffScale is an independent, unofficial client. It is **not affiliated with,
sponsored by, endorsed by or supported by Tailscale Inc.** Do not read the
presence of the name in this repository as any kind of approval. Please do not
ask Tailscale's support for help with this app.
Two places in this repository use Tailscale's marks, both deliberately and both
worth reviewing before any public release or store submission:
1. The word "Tailscale" appears throughout the UI and the source. It is used
nominatively — to say truthfully which network protocol and which hosted
service this client speaks to. That is the ordinary permitted use of
another party's trademark, and it is why the app is called OffScale rather
than anything Tailscale-shaped.
2. `src/ui/TailscaleMark.tsx` REPRODUCES THE TAILSCALE LOGO. It draws
Tailscale's 3x3 dot mark as nine circles rather than as their supplied
bezier paths, but the rendered result is their logo, and it is displayed in
the attribution strip at the bottom of every screen. It is drawn in a
single flat colour (white by default) and is deliberately never tinted to
this app's accent colour.
This is a TRADEMARK question, not a licensing one, and the licence above
does not answer it. It is included here as an attribution — crediting the
project this client is built on — which is the use most trademark policies
permit. If Tailscale Inc. would prefer it removed, remove it: nothing else
in the app depends on that component.
Asked and partly answered. On 2026-08-14 Tailscale replied that their logo
is not to be used for MARKETING purposes. The use here is not marketing: it
is attribution inside an installed app, on no store listing, no screenshot,
no website. The mark stays on that reading, provisionally, pending anything
further from them — and comes straight out if they say so.
It must not migrate to a store listing or promotional image on the strength
of already being in the app. That is precisely the use they declined.
"Tailscale" is a trademark of Tailscale Inc.
================================================================================
2. Headscale
================================================================================
OffScale can be pointed at Headscale (https://headscale.net), an open-source,
self-hosted implementation of the Tailscale control server, licensed BSD
3-Clause. No Headscale code is included in this repository or in any build of
this app — Headscale is a server you run, and this app is a client that speaks
to it over the network. It is credited in the app's attribution strip for the
same reason Tailscale is: it is what makes self-hosting possible.
Headscale is likewise not affiliated with this project.
================================================================================
3. JavaScript and native dependencies
================================================================================
The app depends on React Native, Expo, NativeWind, react-native-svg and others,
each under its own permissive licence (MIT, Apache-2.0, BSD). `package.json`
lists them with exact pinned versions, and the full licence text of each ships
inside its package in `node_modules`.
================================================================================
4. Artwork
================================================================================
The app icon, the adaptive icon, the wordmark and the two wallpaper photographs
in `assets/` and `src/assets/` are original work, Copyright (c) 2026 André
Alçada Padez Monteiro da Conceição. The MIT licence above covers the SOFTWARE.
Redistributing the artwork under the OffScale name, or shipping a fork that
presents itself as OffScale, is not something this licence is meant to permit —
fork the code freely, and please use your own name and icon.