Skip to content

Privacy

Last updated: October 25, 2026

This page is a plain-language draft. It describes what the Termul website and app do today, as far as we could verify in the source code. It is not legal advice.

Summary

Termul is a free, open-source desktop app. This website (termul.dev) loads Google Tag Manager, may load Cloudflare Web Analytics, and stores testimonial submissions. We did not find analytics or crash reporting code in the desktop app source. Details below.

Ringkasan: situs ini memakai Google Tag Manager dan menyimpan testimoni yang dikirim lewat formulir. Di source aplikasi desktop kami tidak menemukan kode analytics atau crash reporting.

Website: analytics and third-party requests

  • Google Tag Manager (container GTM-M7G7GR3C) is loaded on every page. What it collects depends on the tags configured inside that container, which is not visible in this repository. Google Analytics domains are allowed by the site's Content Security Policy, but we have not verified which tags actually run.
  • Cloudflare Web Analytics: the Content Security Policy allows the Cloudflare Insights script and endpoint. Whether it is turned on for termul.dev is a dashboard setting we have not verified.
  • Google Fonts (fonts.googleapis.com and fonts.gstatic.com) are loaded for the Inter and JetBrains Mono fonts. Your browser sends a request, including your IP address, to Google.
  • Images for contributors and testimonials may be loaded from GitHub and unavatar.io. A demo video is loaded from CloudFront.
  • DiceBear avatars: when a testimonial has no avatar image, the browser computes a SHA-256 hash of the displayed name and requests a generated avatar from api.dicebear.com using only that hash as the seed. The raw name is not sent. If hashing is not available, local initials are shown instead.
  • The site sets the Referrer-Policy: no-referrer header.
  • The site does not currently show a cookie consent banner.

Website: testimonial form

If you submit a testimonial at /testimonial/submit, we store:

  • Your quote, name, and role, as you typed them.
  • An avatar: either an uploaded image (PNG, JPEG, GIF, or WebP, up to 2 MB) stored in a Cloudflare R2 bucket, or an avatar URL you provide.
  • The submission time and a moderation status (pending, approved, or rejected).

Data is stored in Cloudflare D1 (database) and R2 (uploaded avatars). Submissions are reviewed before they appear publicly; pending and rejected ones are only visible to the maintainer through a token-protected moderation page.

To limit spam, the form handler hashes your IP address with SHA-256 and keeps the hash with a timestamp in a rate-limit table (limit: 5 submissions per hour). Rows older than one hour are deleted when a new submission is checked. The raw IP address is not stored by this code. When a secret salt is configured on the server, it is combined with the IP address before hashing; without it, the hash is unsalted. We did not verify whether the production site has the salt configured.

Hosting

The site and its API appear to be built for Cloudflare Pages (Pages Functions, D1, R2). Cloudflare, as host, may process request logs such as IP addresses under its own policy. We did not verify the production hosting configuration beyond the repository.

Desktop app

  • In the app source (github.com/gnoviawan/termul) we did not find analytics, telemetry, or crash reporting libraries.
  • The app includes the Tauri updater, configured to read latest.json from the project's GitHub releases. Checking for updates therefore contacts GitHub. The app also reads release notes from api.github.com. Exactly when automatic checks run was not verified.
  • Your terminals, files, and projects stay on your machine. If you use features that connect elsewhere (AI coding agents, MCP servers, SSH, a browser pane, or termul-server), the data you send goes to the service you chose, under that service's own policy. We did not audit each of these integrations for this page.

Removal and questions

To ask for your testimonial to be removed, or to ask any privacy question, open an issue at github.com/gnoviawan/termul/issues. Please do not post private information in a public issue; say that you want to be contacted privately and a maintainer will reply on the issue. There is no dedicated privacy email address.

Changes

This page lives in the open-source repository. Changes are made by pull request and the date above is updated.