Skip to main content
Perkforge
Images
Your everyday toolkit

Image tools

Resize, crop, convert and create. Your images stay on your device.

Image ResizerImage CompressorJPG to PNGPNG to JPGScreenshot StudioBatch Image ToolsPixel StudioAll image tools
Files
Your everyday toolkit

File tools

Clean metadata, format data and convert tables in your browser.

CSV ↔ JSON ConverterCSV to Excel ConverterExcel to CSV ConverterSplit CSV FileMetadata RemoverJSON to XML ConverterXML to CSV ConverterAll file tools
Audio
Your everyday toolkit

Audio tools

Trim recordings and prepare subtitles without an upload.

Audio Clip MakerTrim audio, adjust volume and add fades without uploading.Subtitle ToolsEdit, check, shift and convert SRT and WebVTT subtitles.All audio tools
PDF
Your everyday toolkit

PDF tools

Create, organize, fill and sign PDFs on your device.

PDF Fill & SignAdd text, dates, marks, initials and a visual signature to a PDF locally.PDF ToolsMerge, compress and extract PDFs, or turn images into a PDF locally.Document BuilderCreate formatted letters, reports, checklists and certificates as PDFs.All document tools
Bots
Your everyday toolkit

Discord bots

Focused apps for your Discord community.

New Eden DiceOne shared dice panel. D4 to D20. Keep the next turn moving.Citizen BureauGive your community’s characters a home in Discord.All Discord bots
EN
EN · EnglishES · EspañolDE · Deutsch
Privacy information

Privacy Policy

How Perkforge handles data when you use the website and its tools.

Last updated: October 17, 2026

1. Controller and contact

Christopher Raulin
Burgstraße 24
19055 Schwerin
Germany
Email: [email protected]

Perkforge is an independent project operated by Christopher Raulin.

2. Hosting and content delivery

Perkforge is delivered through Cloudflare Pages. Cloudflare, Inc., 101 Townsend Street, San Francisco, CA 94107, USA, processes technically necessary connection and security data when the website is requested. This may include the IP address, request time, requested URL, HTTP method and status, transferred data volume, browser and operating-system information, and security-related metadata.

This processing is necessary to deliver the website reliably, maintain availability, troubleshoot failures and defend against abusive or malicious traffic. The legal basis is Article 6(1)(f) GDPR. The legitimate interests are secure, stable and efficient operation of the website. Cloudflare processes Customer Logs as a processor where applicable. Processing may occur outside the EU or EEA. Cloudflare states that it uses recognized transfer mechanisms including the EU-US Data Privacy Framework and Standard Contractual Clauses where applicable.

Perkforge does not maintain or export a separate long-term visitor log. Technical data is retained only for as long as required for delivery, security, troubleshooting or legal obligations. Cloudflare's specific retention period depends on the data category, security event, service and plan in use.

Cloudflare Smart Tiered Cache is enabled on the Free plan. It reuses copies of public, cacheable website resources within Cloudflare's network and consolidates requests to the Pages origin. It does not create browser storage or a separate visitor request. Files selected inside browser tools are not sent to or placed in this cache. Dynamic API responses follow their own cache controls. Cloudflare may process cache status and origin-latency information as part of operating the delivery service.

3. Use of the tools

Tool inputs, calculations and generated results remain in your browser. Some tools let you select a local image file for conversion, resizing or compression. The selected file is decoded and processed on your device and is not transmitted to Perkforge or Cloudflare. Perkforge receives neither the file nor its contents. Browser tools require no Perkforge account and do not upload your files. The separate Citizen Bureau app stores Discord-linked character profiles as explained below.

Document creation, PDF page operations, PDF Fill & Sign, metadata cleaning, audio editing, subtitle conversion, spreadsheet and CSV/XML/JSON conversion, pixel drawing and image batch processing run on your device. Perkforge does not upload or store selected files, file names, document content, visual signatures, extracted metadata, audio or results. PDF Fill & Sign reads an immutable selected file into temporary browser memory, keeps edits as a session-only overlay and downloads a new PDF without overwriting the source. Drawn, typed or uploaded visual signatures are not stored after the tab is closed. Downloads remain on your device until you delete them. Required software modules and fonts are served from this website; ordinary hosting and the existing Cloudflare measurements remain as described above.

Favorites are stored in browser storage only when you add a tool. Recently used tools are stored only after you explicitly enable that feature. These entries contain tool identifiers and the enablement preference, remain on your device, are not transmitted to Perkforge and remain until you remove them through Privacy Settings or clear your browser data. Their sole purpose is to provide the local convenience feature you requested. Storage and access are necessary to provide that expressly requested feature within the meaning of Section 25(2)(2) TDDDG. Where the GDPR applies, the legal basis is Article 6(1)(f) GDPR; the legitimate interest is providing the requested feature in a data-minimised way without an account or server-side profile.

The website language is determined by the URL. The language selector links to the same page in English, Spanish or German; no language cookie or stored language preference is used.

4. Contact by email

If you contact Perkforge by email, the email address, message content, time and any information you choose to provide are processed to answer the request. The legal basis is Article 6(1)(b) GDPR where the request concerns a contract or steps before a contract, and otherwise Article 6(1)(f) GDPR based on the legitimate interest in responding to enquiries.

Messages are deleted when the matter has been resolved and no legal retention or evidentiary obligation remains. Statutory retention periods may apply where a message qualifies as business correspondence.

5. Aggregated tool popularity

Perkforge counts the first meaningful activation of a tool during each individual page view. The request is sent to a Cloudflare Pages Function without delaying the tool. The database stores only the tool slug, the UTC calendar day, the aggregated activation count and the time at which that aggregate was last updated.

The popularity database does not store an IP address, user identifier, fingerprint, user agent or referrer. No cookie, local storage or session storage is used to deduplicate activations. Cloudflare may still process technically necessary connection and security data for the API request as described in section 2, but that data is not written to the popularity table.

The purpose is to rank tools by aggregate activations over the latest seven UTC calendar days and identify the current HOT tool. The legal basis is Article 6(1)(f) GDPR. The legitimate interest is improving navigation and prioritising useful tools with a data-minimised metric. Daily aggregates are retained until they are no longer needed for product analysis; Perkforge intends to review and delete obsolete aggregates periodically. This metric is not a billing-grade or unique-user measurement.

6. Cloudflare Pages Functions and D1

Cloudflare Pages Functions processes activation requests and Cloudflare D1 stores the aggregated daily counters. If the D1 binding is unavailable, no activation is stored and the website immediately uses its editorial fallback order. Tool functionality does not depend on tracking.

7. Cloudflare Web Analytics, cookies and advertising

Cloudflare Web Analytics is active through the automatic setup of the Cloudflare Pages project. Depending on Cloudflare's plan, regional routing and configuration, Cloudflare may automatically inject a JavaScript beacon into delivered HTML after deployment. It measures page views, visits and technical performance data, including a page-load identifier, landing path, referrer and browser performance timings such as loading, rendering and interaction metrics. Perkforge uses these aggregated reports to understand website use, identify technical problems and improve performance.

According to Cloudflare, the beacon does not set or read cookies, local storage, session storage or IndexedDB and does not fingerprint individuals for analytics reporting. The page-load identifier exists for the current page measurement rather than as a persistent visitor identifier. Cloudflare necessarily receives the source IP address when the beacon request reaches its network, but states that the RUM service discards it at the nearest data center instead of storing it in its core databases or logs. The current Free-plan setup uses Cloudflare's automatic lite mode. In this mode, the beacon is not injected for visitors connected through data centers in the European Union.

The legal basis relied upon is Article 6(1)(f) GDPR. The legitimate interests are measuring aggregate use, monitoring real-world performance and improving the website without persistent identifiers or advertising profiles. You may object to this processing for reasons arising from your particular situation by contacting Perkforge. Cloudflare processes the measurements on Perkforge's behalf; processing may occur outside the EU or EEA as described in section 2. Retention depends on Cloudflare's service configuration and applicable contractual settings. Perkforge does not create a separate raw-data copy or individual visitor profile.

In addition to the cookie-free measurements above, Perkforge offers optional first-party journey analytics. It is disabled until you select “Allow analytics” or enable it in Privacy Settings. If enabled, Perkforge stores a random browser identifier for up to 180 days and a rolling session identifier for 30 minutes in first-party cookies. The consent cookie stores only the current version and whether analytics was allowed for up to 180 days.

The optional system records a page view or meaningful tool activation, the current internal path, a previous internal Perkforge path where available, website language, broad device class, two-letter country code supplied by Cloudflare and sanitized UTM source, medium and campaign values. It does not collect IP addresses into the analytics table, full external referrers, file names, selected files, tool inputs or generated results. The raw random identifiers are transmitted over TLS to the same-origin analytics endpoint, used in memory to create SHA-256 hashes and never written to the database; the raw values otherwise remain in the browser cookies. The purpose is to understand journeys, distinguish returning browsers from new ones, improve navigation and estimate which pages could support future advertising. The legal basis is your consent under Article 6(1)(a) GDPR and Section 25(1) TDDDG.

Raw optional analytics events are automatically deleted after 90 days. You may withdraw consent at any time in Privacy Settings; this deletes the analytics identifiers from the browser and stops future optional collection. Lawfully collected pseudonymous events remain until the 90-day deletion point because, after the local identifier is removed, Perkforge cannot reliably associate them with that browser. The consent choice itself remains so that the website remembers your decision; you can replace it at any time.

Perkforge currently displays no advertising, uses no marketing technology and does not load Google AdSense. The Advertising category is therefore inactive. Advertising cookies or Google tags will not be activated through this choice. If advertising is introduced later, Perkforge will first provide the required separate information and, where required, a Google-certified consent platform.

The Privacy Settings dialog describes the current configuration and lets you enable or withdraw optional journey analytics, enable or disable recent-tool history and clear local tool data.

8. New Eden Dice Discord app

When you run the /ned command, optionally select a die in its count field or press one of its roll buttons, Discord sends a signed interaction to a dedicated Cloudflare Pages Function. The payload may include the Discord user ID, server, channel and message identifiers, locale, the selected die, command or component identifier, member information supplied by Discord and a request timestamp. New Eden Dice uses the user ID only to identify the person who rolled in the visible response and uses the selected die and button identifier to perform the requested roll.

The purpose is to authenticate Discord requests, provide the shared dice panel, generate the requested result and protect the endpoint from forged traffic. The legal basis is Article 6(1)(f) GDPR. The legitimate interests are providing the requested Discord functionality and operating it securely with minimal data.

Perkforge does not write interaction payloads, Discord identifiers, selected dice or roll results to a database and does not build user profiles from them. The app does not connect to Discord's Gateway, read ordinary channel messages or request Message Content access. Cloudflare may process technically necessary connection and security data as described in section 2. Messages created through the app remain in Discord according to the relevant server, channel and Discord settings until they are deleted there. Discord also processes information under its own Privacy Policy.

9. New Eden Citizen Bureau — stored character profiles

The Citizen Bureau is a separate, stateful Discord app. When you create a record, it stores your Discord user ID, a generated profile ID, game world ID, freely chosen character name and normalized uniqueness key, two fictional game balances and creation/update times in Cloudflare D1. World settings store the administration server ID, labels and starting balances. Server connections store server IDs, role IDs and write access. Transaction history stores an interaction ID to prevent duplicate bookings, record and initiating user IDs, server ID, balance changes and time. Temporary dialogs store the requesting user/server IDs, minimal dialog state and expiry. Invitations store a hash of a random code, issuing user ID, world, access, optional target server and expiry.

The purposes are providing the requested character record, sharing it within the same game world, controlling write access and correcting or detecting unauthorized/duplicate awards. The legal basis for the requested profile service is Article 6(1)(b) GDPR. Permission checks, limited transaction history and anti-abuse measures rely on Article 6(1)(f) GDPR; the legitimate interest is operating a trustworthy community game service.

Player views and data exports are private Discord responses. A game master sees the record name and balances of a player they reward. Administrators configure world/server permissions; provider account administrators can technically access the database. Cloudflare processes data as the hosting provider under the applicable processing agreement; international processing is addressed in the hosting section above. Discord processes interactions and messages under its own Privacy Policy. The bot does not read ordinary messages or store raw interaction payloads or interaction tokens in its database.

Profiles remain until deleted. Transaction entries are retained for up to 90 days, dialogs expire after 15 minutes, and invitations expire after 24 hours or are consumed once. Daily maintenance and bot use remove expired entries. World/server settings remain while configured. Use /data export to download your own data, /profile delete to remove one profile, or /data delete to delete all your profiles and profile history, remove pending dialogs/invitations you created, and anonymize your actor ID in transactions to other players. Deletion requires confirmation and takes effect immediately in the live application database. It does not delete messages or downloaded exports already held in Discord, or another person’s profile.

Cloudflare D1 recovery copies can retain earlier states for up to 7 days on the Free plan or 30 days on the Paid plan. Access to recovery copies is restricted; the recovery procedure requires reapplying deletions before service resumes. You can also exercise your rights or request removal of an unused world by contacting [email protected]. Full command and field details appear in the Citizen Bureau guide.

10. Retention

Personal data is kept only as long as necessary for the relevant purpose and is then deleted unless a legal retention obligation, a continuing security incident or the establishment, exercise or defence of legal claims requires longer processing. More specific information for hosting, contact and aggregate popularity data appears above.

11. Your rights

Subject to the applicable legal conditions, you may request access under Article 15 GDPR, rectification under Article 16, erasure under Article 17, restriction under Article 18, data portability under Article 20 and object to processing based on Article 6(1)(e) or (f) under Article 21. Any consent can be withdrawn for the future through Privacy Settings. Withdrawal does not affect the lawfulness of processing before withdrawal.

To exercise these rights, email [email protected].

12. Right to complain

You may lodge a complaint with a data protection supervisory authority under Article 77 GDPR. The authority responsible at the controller's location is:

Der Landesbeauftragte für Datenschutz und Informationsfreiheit Mecklenburg-Vorpommern
Werderstraße 74a
19055 Schwerin
Germany
Email: [email protected]
Website: datenschutz-mv.de

13. Future updates

This policy may be updated when the website, legal requirements or service providers change. The current version and its update date will remain available on this page.

© 2026 Perkforge.
Legal NoticeTerms of UsePrivacy PolicySoftware licences