Back to app selection Privacy Policy

Current version

Privacy Policy for NoteCraft

NoteCraft stores your notes, attachments, reminders, and settings on your device. It displays banner advertising through Google AdMob. The app does not require an account and does not upload your note database to a server operated by the controller.

Last updated: 27 July 2026

1. Controller

Thomas Schwarz
Plöner Straße 7
23795 Klein Rönnau
Germany

Email: schwarz1993.ts@googlemail.com

2. Data processed by the app

Notes and organisation

Titles, note text, checklist items, tags, favourites, archive and trash status, drawings, formatting, list order, and endless-note content are stored locally in the app's private database. The controller does not receive this content.

Photos, videos, and files

When you choose the relevant feature, the app can access the camera or Android media picker. Selected or captured images and videos may be copied into private app storage and attached to notes. Access occurs only after your action and, where required, Android permission.

On-device text recognition

Images selected for OCR are processed on the device with Google ML Kit Text Recognition. This implementation does not intentionally upload the selected image to the controller. Extracted text is added to a note only when you use that function. Google may process technical diagnostics under its own terms.

Reminders and notifications

Reminder times, repeat settings, note references, and reminder text are stored locally and used to schedule device notifications. You can deny or disable notification permission in Android; reminders may then not be displayed.

App lock

If enabled, a cryptographic hash of the PIN and the lock settings are stored locally. Biometric verification is performed by Android. The controller does not receive or store your biometric characteristics.

Settings and background image

Language, filters, transparency, selected background image reference, review-prompt state, and comparable preferences are stored locally to provide your chosen interface.

Export, import,…8603 tokens truncated…ign-items: center; padding: 18px; background: white; border: 1px solid var(--line); border-radius: 8px; } .steps strong { color: var(--teal-dark); } .steps span { color: var(--muted); } .start { display: flex; align-items: center; justify-content: space-between; gap: 24px; background: var(--ink); color: white; } .start .eyebrow, .start p { color: #b7dfd7; } .start .button.primary { color: var(--ink); background: var(--gold); } .site-footer { display: flex; justify-content: space-between; gap: 16px; padding: 24px clamp(20px, 5vw, 72px); color: var(--muted); background: white; border-top: 1px solid var(--line); font-size: 0.92rem; } .footer-links { display: inline-flex; flex-wrap: wrap; gap: 14px; } .footer-links a { color: var(--teal-dark); font-weight: 800; } .policy-page { background: white; } .policy-hero { padding: clamp(48px, 7vw, 88px) clamp(20px, 5vw, 72px) 32px; } .policy-hero h1 { max-width: 840px; font-size: clamp(2.6rem, 6vw, 5.8rem); } .policy-hero p { max-width: 720px; color: var(--muted); font-size: clamp(1rem, 1.6vw, 1.18rem); } .policy-embed { padding: 0 clamp(20px, 5vw, 72px) clamp(48px, 7vw, 88px); } .policy-embed iframe { width: 100%; min-height: 76vh; border: 1px solid var(--line); border-radius: 8px; background: white; } .directory-page { background: #f5f7f6; } .directory-hero { max-width: 980px; } .app-directory { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; padding: 0 clamp(20px, 5vw, 72px) clamp(56px, 8vw, 96px); } .app-card { min-height: 260px; display: flex; flex-direction: column; justify-content: space-between; gap: 20px; padding: 22px; color: white; border-radius: 8px; overflow: hidden; position: relative; } .app-card::after { content: ""; position: absolute; inset: auto -30px -40px auto; width: 130px; height: 130px; border: 24px solid rgba(255, 255, 255, 0.18); border-radius: 50%; } .app-card span { width: 42px; height: 42px; display: grid; place-items: center; background: rgba(255, 255, 255, 0.18); border-radius: 8px; font-weight: 800; } .app-card strong { max-width: 240px; font-size: 1.45rem; line-height: 1.08; } .app-card small { color: rgba(255, 255, 255, 0.78); font-weight: 800; text-transform: uppercase; } .redbook-card { background: #a8323e; } .planner-card { background: #1f6f8b; } .notecraft-card { background: #5f7046; } .outpost-card { background: #26324b; } .app-policy { --app-bg: #f8f5f2; --app-ink: #151515; --app-muted: #66706c; --app-surface: #ffffff; --app-soft: #efe8e0; --app-accent: #a8323e; --app-accent-strong: #6f1d27; min-height: 100vh; color: var(--app-ink); background: linear-gradient(135deg, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0)), var(--app-bg); } .theme-redbook { --app-bg: #fbf3f0; --app-soft: #f4d8d3; --app-accent: #b63642; --app-accent-strong: #70212c; } .theme-planner { --app-bg: #eef8fb; --app-soft: #d3edf4; --app-accent: #14708d; --app-accent-strong: #0a4155; } .theme-notecraft { --app-bg: #f5f6ec; --app-soft: #e0e4ca; --app-accent: #657848; --app-accent-strong: #374526; } .theme-outpost { --app-bg: #f0f2f7; --app-soft: #d9dfef; --app-accent: #293753; --app-accent-strong: #11192b; } .policy-top { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 22px clamp(20px, 4vw, 56px); } .back-link, .policy-badge { display: inline-flex; align-items: center; min-height: 38px; padding: 0 13px; border-radius: 8px; font-weight: 800; } .back-link { color: var(--app-accent-strong); background: rgba(255, 255, 255, 0.7); } .policy-badge { color: white; background: var(--app-accent); } .policy-shell { display: grid; grid-template-columns: minmax(260px, 0.34fr) minmax(0, 0.66fr); gap: clamp(22px, 4vw, 46px); align-items: start; padding: 18px clamp(20px, 4vw, 56px) clamp(48px, 7vw, 82px); } .policy-sidebar { position: sticky; top: 24px; min-height: calc(100vh - 80px); display: flex; flex-direction: column; justify-content: space-between; gap: 26px; padding: clamp(22px, 4vw, 34px); color: white; background: var(--app-accent-strong); border-radius: 8px; } .policy-sidebar h1 { margin: 0; font-size: clamp(2.3rem, 5vw, 5.2rem); line-height: 0.96; } .policy-sidebar p { color: rgba(255, 255, 255, 0.78); } .app-number { width: 52px; height: 52px; display: grid; place-items: center; color: var(--app-accent-strong); background: white; border-radius: 8px; font-weight: 800; } .policy-sidebar nav { display: grid; gap: 8px; } .policy-sidebar nav a { padding: 10px 0; color: rgba(255, 255, 255, 0.82); border-bottom: 1px solid rgba(255, 255, 255, 0.16); } .policy-content { display: grid; gap: 18px; } .policy-section { padding: clamp(22px, 4vw, 38px); background: rgba(255, 255, 255, 0.92); border: 1px solid rgba(19, 32, 31, 0.08); border-radius: 8px; } .policy-section h2 { font-size: clamp(1.55rem, 3vw, 2.6rem); line-height: 1.03; } .policy-section h3 { color: var(--app-accent-strong); } .policy-section p, .policy-section dd { color: var(--app-muted); } .policy-section a { color: var(--app-accent-strong); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; } .intro-panel { background: var(--app-soft); } .update-note { margin-bottom: 0; font-weight: 800; } .data-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } .data-card { padding: 18px; background: white; border: 1px solid rgba(19, 32, 31, 0.1); border-radius: 8px; } .data-card h3 { margin-bottom: 16px; } .data-card dl { margin: 0; } .data-card dt { margin-top: 14px; font-weight: 800; } .data-card dt:first-child { margin-top: 0; } .data-card dd { margin: 4px 0 0; } .info-strip { display: grid; gap: 14px; } .info-strip article { padding: 18px 0 0; border-top: 1px solid rgba(19, 32, 31, 0.1); } .info-strip article:first-child { padding-top: 0; border-top: 0; } .contact-panel { background: var(--app-accent-strong); color: white; } .contact-panel h3, .contact-panel p { color: rgba(255, 255, 255, 0.82); } .contact-panel a { color: white; } .policy-footer { background: transparent; } .legal-document { width: min(900px, calc(100% - 40px)); margin: 0 auto; padding: clamp(48px, 7vw, 88px) 0; } .legal-document > h1 { max-width: 760px; font-size: clamp(2.6rem, 6vw, 5.4rem); } .legal-document section { padding: 28px 0; border-top: 1px solid var(--line); } .legal-document section:first-of-type { margin-top: 36px; } .legal-document h2 { font-size: clamp(1.45rem, 3vw, 2.35rem); line-height: 1.1; } .legal-document p, .legal-document li { color: var(--muted); } .legal-document a { color: var(--teal-dark); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; } .legal-lead { max-width: 720px; font-size: 1.12rem; } .policy-section ul { margin: 0; padding-left: 20px; color: var(--app-muted); } .policy-section li + li { margin-top: 8px; } @media (max-width: 880px) { .site-header { position: static; align-items: flex-start; flex-direction: column; } .site-header nav { width: 100%; justify-content: space-between; } .hero, .workflow { grid-template-columns: 1fr; } .hero { min-height: auto; } .feature-grid { grid-template-columns: 1fr; } .app-directory, .data-grid { grid-template-columns: 1fr; } .policy-shell { grid-template-columns: 1fr; } .policy-sidebar { position: static; min-height: auto; } .steps li { grid-template-columns: 1fr; } .start, .site-footer { align-items: flex-start; flex-direction: column; } } @media (max-width: 520px) { .site-header nav { flex-wrap: wrap; justify-content: flex-start; } h1 { font-size: 2.55rem; } .hero-media figcaption { position: static; max-width: none; color: var(--ink); background: white; border-radius: 0; } .button { width: 100%; } .policy-top { align-items: flex-start; flex-direction: column; } }