Small Instruments / Privacy Manual

Type Orbit
Privacy Specification

A local-first privacy specification for the kinetic-typography extension. It documents exactly what the shipped 1.0.0 build handles, stores, and deliberately does not access.

Chrome permissions None requested
Host access None
Persistent data Phrase + visual settings
Application network None

01. Scope of this policy

This privacy policy applies to Type Orbit version 1.0.0 and to the local extension pages packaged with that release. Type Orbit is a Chrome extension whose only product function is to provide an interactive kinetic-typography canvas. It is not a website analytics tool, browsing assistant, content reader, account service, cloud editor, or advertising product.

The policy is intentionally specific to the behavior of the shipped code. It describes the phrase entered by the user, the animation controls saved locally, the toolbar action that opens the app, and the absence of data transmission. If a future release adds a materially different data practice, this document will be updated before that behavior is represented as covered by the current policy.

The short version: Type Orbit keeps its small workspace state on the device and does not send that state to the developer or to a third party.

02. What Type Orbit does

Type Orbit lets a user enter a short phrase and render its characters as moving glyphs on a Canvas 2D surface. The application includes six motion systems: Orbit, Wave, Spiral, Ribbon, Pendulum, and Gravity. The user can adjust speed, spacing, trail persistence, and direction, pause or resume the animation, randomize visual controls, and click individual letters to kick them temporarily away from their calculated trajectory.

All animation calculations happen inside the local extension page using JavaScript and the browser's built-in Canvas API. The product contains no remote template service and does not download animation presets. A phrase is converted directly into an in-memory list of glyph objects and rendered on each animation frame.

The extension toolbar icon exists only as a launcher. When the user clicks the action, a small background service worker asks Chrome to create a new tab whose URL is the packaged app.html page. That operation does not require Type Orbit to inspect the tab that was active when the icon was clicked.

03. Information the extension handles

User-entered phrase

The phrase typed into the PHRASE field is handled because it is the material the user chose to animate. The application normalizes repeated whitespace, limits the stored phrase to 48 characters, and uses the resulting text to construct local glyph state. The phrase is not treated as an account identifier and is not transmitted anywhere.

Visual settings

The selected motion mode, speed value, spacing value, trail value, and direction are handled so that the current composition can be restored when the extension page is reopened. These values are ordinary local configuration numbers or strings. They are not combined with browsing activity or an external identifier.

Transient interaction state

Letter kick velocity, temporary displacement, frame timing, canvas dimensions, hit boxes, and animation phase are maintained in memory while the app is open. They are used to render motion smoothly. This transient state is not written to storage and disappears when the extension page closes or reloads.

Information Type Orbit does not collect

  • No name, email address, postal address, telephone number, or account profile is requested.
  • No passwords, authentication tokens, payment information, or financial information are requested.
  • No precise or approximate location information is requested.
  • No browsing history, current-page text, page HTML, search history, or visited-domain list is read.
  • No clipboard contents, downloads, bookmarks, cookies, form entries, or saved passwords are accessed.
  • No microphone, camera, screen capture, file-system, or device-sensor access is requested.

04. Local storage behavior

Type Orbit uses the browser's standard localStorage facility for the Type Orbit extension origin. The storage key in version 1.0.0 is typeOrbit.v1. Its value is a small JSON object representing the current phrase and visual settings.

Stored fields: phrase, mode, speed, space, trail, direction. The code validates the mode against the six supported motion names, clamps numeric controls to their supported ranges, and falls back to safe defaults if saved JSON is missing or malformed.

This storage is local to the browser profile where the extension is installed. Type Orbit does not implement its own synchronization feature and does not call a cloud database. The extension does not use chrome.storage.sync. Whether the browser platform itself backs up profile data is controlled by the browser and user environment rather than by Type Orbit.

LocalStorage is used to improve continuity, not to build a historical record. Type Orbit stores one current composition state. It does not append previous phrases to a log, preserve a phrase history, count how many sessions a user opens, or derive behavioral metrics from saved settings.

05. Chrome permissions

The production manifest declares an empty permissions array. It does not request tabs, storage, history, bookmarks, downloads, clipboardRead, notifications, or any other optional or required Chrome extension permission.

The extension also declares no host permissions. There is no wildcard site access such as <all_urls>, and no domain-specific host pattern. Type Orbit cannot use a content script to enter arbitrary webpages because no content script is included in the manifest.

The background service worker calls chrome.tabs.create only to open the extension's own packaged app page when the toolbar action is clicked. Chrome allows creation of a tab without granting the broad tabs permission. Type Orbit does not read the URL, title, favicon, ID, or content of the user's active tab as part of this operation.

06. Access to webpages and browsing activity

Type Orbit does not inject JavaScript or CSS into websites. It does not observe navigation events, watch page titles, parse document content, modify links, change page styling, add overlays, or intercept user input on ordinary webpages. The animation interface runs under a chrome-extension:// URL that belongs to the installed extension.

Because the product does not need webpage content to animate user-entered text, requesting host access would be unnecessary. The production package is deliberately structured so the core feature can operate without such access.

The app page may remain open beside ordinary browser tabs, but Type Orbit does not use that fact to infer what those tabs contain. The JavaScript responsible for Canvas rendering has no code path that queries the browser for the user's tab list.

07. Network behavior

Type Orbit version 1.0.0 does not make application network requests. There are no fetch, XMLHttpRequest, WebSocket, EventSource, or remote module imports in the production source. The app does not require an internet connection to animate a phrase after it has been installed.

Fonts and interface assets are local. The extension uses system font families and packaged icons rather than a hosted web-font service. JavaScript and CSS are packaged inside the extension rather than loaded from a CDN. This design also means the extension does not transmit the entered phrase as part of a font request, asset request, or telemetry call.

The browser itself may perform platform-level operations unrelated to Type Orbit, such as extension update checks or Chrome Web Store services. Those browser operations are controlled by Chrome and are not application requests initiated by Type Orbit's feature code.

08. Analytics, telemetry, advertising, and profiling

No analytics library is included in Type Orbit. The extension does not use Google Analytics, Firebase Analytics, Segment, Mixpanel, Amplitude, Sentry analytics, advertising pixels, fingerprinting libraries, or a custom telemetry endpoint.

The developer therefore does not receive a stream describing phrases, motion selections, button clicks, session duration, installation activity, or user retention from the extension. There is no in-product advertising profile and no mechanism that sells, rents, or shares Type Orbit usage data for advertising.

No automated decision making or user profiling is performed. The small deterministic hash used by the animation code is computed from the current phrase only to seed visual variation. It is not an identifier, is not sent off-device, and is rebuilt as part of the local rendering process.

09. Third-party services and processors

Type Orbit has no third-party data processor for its application state because the application state is not sent to a service. There is no account provider, cloud storage provider, advertising network, analytics vendor, payment processor, or remote AI provider integrated into version 1.0.0.

The Chrome Web Store and the Chrome browser are platform services through which the extension may be distributed and executed. Their handling of store visits, downloads, updates, crash behavior, or browser-profile information is governed by the applicable platform terms and privacy practices. Type Orbit does not receive hidden access to those platform datasets merely because it is installed from the store.

10. Retention

The locally saved composition remains in the browser profile until one of several local events removes or replaces it. Changing a phrase or control overwrites the corresponding current value. Type Orbit does not preserve earlier values as separate historical entries.

Because there is no server-side collection, there is no server retention period to describe. The developer cannot remotely extend or shorten retention for data that never leaves the user's browser. Local retention is instead under the user's control through the app, browser data controls, profile management, or uninstallation.

11. Deleting Type Orbit data

A user can remove the saved state by uninstalling Type Orbit and allowing Chrome to remove the extension's local site data. A user can also clear storage for the extension origin using browser developer or site-data controls available in their environment. Reinstalling into a fresh browser profile starts from the default phrase and default control values.

There is no separate online deletion request required for Type Orbit workspace data because the extension does not upload that data. The developer does not hold a server copy of the phrase or controls that would need to be matched to an account.

If a user merely closes the app page, in-memory animation state such as temporary letter kicks is discarded immediately, while the small saved composition settings remain locally for convenience.

12. Security design

Type Orbit reduces exposure primarily by reducing data access. No host permissions means the extension does not need broad access to websites. No application network layer means there is no feature endpoint to which the current phrase is transmitted. No remote JavaScript means the behavior of the shipped app is defined by the packaged code reviewed with the extension.

Local state is ordinary preference data, not a credential vault. Users should nevertheless avoid treating the phrase field as a secure place to store secrets. The phrase is displayed prominently on screen as part of the artwork and persists locally until replaced or removed.

Extension security also depends on the browser profile and operating system. Anyone with access to an unlocked local profile or diagnostic tools may be able to inspect browser storage. Type Orbit does not claim to encrypt the phrase at rest against a person who already controls the local browser profile.

13. User controls and expected behavior

The user chooses the phrase, motion mode, speed, spacing, trail, and direction. Pausing stops advancement of animation time while leaving the current frame visible. Randomize changes local visual controls only. Clicking a letter changes transient velocity for that glyph and does not trigger an external request.

The toolbar action is user initiated. Type Orbit does not automatically replace the new-tab page, redirect browsing, open promotional pages, or create recurring tabs in the background. Each toolbar click opens the packaged app page because that is the direct purpose of the action.

Users who no longer want any Type Orbit behavior can disable or uninstall the extension using Chrome's extension management interface.

14. Children and sensitive information

Type Orbit is a general creative tool and is not designed to solicit personal information from children. It has no account creation flow, social feed, messaging feature, behavioral advertising, or purchase flow. The extension does not knowingly collect personal information from children because it does not operate a collection service for user-entered phrases.

Users of any age should understand that the phrase is visually displayed on screen. A phrase containing private information could be visible to people who can see the device display or access the local browser profile. The product is intended for short creative text, not for storing confidential records.

15. Changes to this policy

This document may be revised when Type Orbit changes in a way that affects privacy, storage, permissions, or network behavior. A future feature that required new Chrome permissions, remote processing, analytics, account data, or a different retention model would require corresponding disclosure rather than being silently treated as covered by the current text.

Editorial changes that clarify wording without changing product behavior may also be made. The policy version and the extension version should be considered together when evaluating the statements above. This policy describes Type Orbit 1.0.0.

16. Questions and contact

Questions about this privacy policy or the shipped behavior of Type Orbit can be sent through the developer support contact associated with the Type Orbit Chrome Web Store listing. Using the listing's current support channel avoids publishing an unrelated or outdated address inside the extension package.

When reporting a privacy concern, users do not need to include the phrase they entered into Type Orbit. A description of the behavior, extension version, and relevant browser version is generally sufficient to investigate a product issue without asking the user to disclose the content of their local composition.

Type Orbit 1.0.0: zero declared permissions, zero host permissions, localStorage-only workspace persistence, and no application network requests.