From d4899ec696d5a052415bf3b3db77a1350cae60a8 Mon Sep 17 00:00:00 2001 From: "dobby-yivi-agent[bot]" <275734547+dobby-yivi-agent[bot]@users.noreply.github.com> Date: Tue, 21 Apr 2026 13:46:58 +0000 Subject: [PATCH] feat: add upload limits section to landing page Introduces a prominent "generous limits" section on the marketing frontpage to communicate PostGuard's 5 GB-per-upload and 15 GB-per- 2-weeks limits as a differentiator against competitors. - New section placed directly below the hero so it is the first thing visitors see after scrolling past the fold. - Large, primary-colored stat cards for "5 GB" and "15 GB". - English and Dutch translations added under `landing.limits`. - Mobile breakpoint collapses the two stats to a single column. Refs #86. --- src/lib/locales/en.json | 13 ++- src/lib/locales/nl.json | 13 ++- src/routes/(marketing)/+page.svelte | 119 +++++++++++++++++++++++++++- 3 files changed, 140 insertions(+), 5 deletions(-) diff --git a/src/lib/locales/en.json b/src/lib/locales/en.json index 0f414b7..a400fe5 100644 --- a/src/lib/locales/en.json +++ b/src/lib/locales/en.json @@ -55,7 +55,16 @@ "business5Desc": "Brand the encryption experience as your own and maintain a complete audit trail of all encrypted communications.", "business6Title": "Bring your own storage & DNS verification", "business6Desc": "Store encrypted files on your own infrastructure and verify your domain with DNS records, similar to Mailchimp's domain authentication.", - "businessCta": "Contact us" + "businessCta": "Contact us", + "limits": { + "sectionTitle": "Send large files. Without limits that get in the way.", + "intro": "Most encrypted file-sharing services cap free transfers at just a few hundred megabytes. PostGuard lets you share much more — completely free.", + "uploadSuffix": "per upload", + "uploadDesc": "Send a single file or a whole batch — up to 5 GB in one encrypted transfer.", + "rollingSuffix": "every 2 weeks", + "rollingDesc": "Up to 15 GB of encrypted file sharing per email address, over a rolling 14-day window.", + "footnote": "No account. No payment. End-to-end encrypted, always." + } }, "about": { "title": "About PostGuard", @@ -255,4 +264,4 @@ "title": "Privacy Policy", "full": "

PostGuard is a free platform is for securely sending emails and files. These are two separate services. They both offer confidentiality: protection against reading by the wrong person(s). PostGuard encrypts your emails and files in such a way that only the recipient that you choose can decrypt, and then read them. This works via the free Yivi app for attribute-based authentication: you, as sender choose certain personal attributes of the intended receiver (such as email address, phone number or name). The receiver must then prove, via the Yivi app, to be in possession of these attributes, before the mail/file can be decrypted and read. This is the essence of PostGuard: it reduces confidentiality to authentication. PostGuard is offered for free, as a social service, to make encrypted mail and file sharing easy for everyone. PostGuard is developed with support from NWO and SIDN fonds.

PostGuard is operated by the iHub team at Radboud University (RU) in The Netherlands. As explained in more detail below, iHub/RU is the data controller, in the sense of Europe's General Data Protection Regulation (GDPR): it determines the purposes and means. iHub/RU is also a PostGuard data processor. For PostGuard file sharing iHub/RU is a data processor jointly with the company ProcoliX. Only data that is necessary for the PostGuard service is processed.

Both email and file encryption make use of Identity-Based-Encryption (IBE) via a Key Generation Service (KGS) that is run by iHub/RU. A receiver of an email or file can obtain a decryption key from the KGS after proper authentication (via Yivi). The disclosed attributes are processed very briefly by iHub/RU in order to check if they match the requirements, so that a decryption key can be generated. Immediately after key generation, or after a failed disclosure, the relevant attributes (and associated timestamped IP-addresses) are deleted. iHub/RU does not maintain a log of these data in such disclosures. iHub/RU does count the number of disclosures and the rough location (at country level) of their origin. These data are used only for usage statistics and service improvements.

Technical changes to the PostGuard system, or any new services, may result in modification of this privacy policy. iHub/RU and ProcoliX reserve the right to make such changes and will announce the new privacy policy as soon as possible via this page. For any questions, comments, or complaints about this processing by iHub/RU and/or ProcoliX for PostGuard, please contact the PostGuard team at our contact address. For complaints about the processing of data by iHub/RU or ProcoliX, the Dutch Authority for the Protection of Personal Data (Autoriteit Persoonsgegevens) can also be contacted." } -} \ No newline at end of file +} diff --git a/src/lib/locales/nl.json b/src/lib/locales/nl.json index 7814554..4e5b55a 100644 --- a/src/lib/locales/nl.json +++ b/src/lib/locales/nl.json @@ -55,7 +55,16 @@ "business5Desc": "Geef de versleutelingservaring uw eigen huisstijl en houd een compleet auditlogboek bij van alle versleutelde communicatie.", "business6Title": "Eigen opslag & DNS-verificatie", "business6Desc": "Sla versleutelde bestanden op uw eigen infrastructuur op en verifieer uw domein met DNS-records, vergelijkbaar met de domeinauthenticatie van Mailchimp.", - "businessCta": "Neem contact op" + "businessCta": "Neem contact op", + "limits": { + "sectionTitle": "Verstuur grote bestanden. Zonder vervelende limieten.", + "intro": "De meeste versleutelde bestandsdeeldiensten beperken gratis overdrachten tot slechts enkele honderden megabytes. Met PostGuard deel je veel meer — helemaal gratis.", + "uploadSuffix": "per upload", + "uploadDesc": "Verstuur één bestand of een hele batch — tot 5 GB in één versleutelde overdracht.", + "rollingSuffix": "per 2 weken", + "rollingDesc": "Tot 15 GB aan versleutelde bestandsdeling per e-mailadres, binnen een doorlopend venster van 14 dagen.", + "footnote": "Geen account. Geen betaling. Altijd end-to-end versleuteld." + } }, "about": { "title": "Over PostGuard", @@ -254,4 +263,4 @@ "title": "Privacybeleid", "full": "

PostGuard is een gratis platform voor het veilig versturen van e-mails en bestanden. Dit zijn twee afzonderlijke diensten. Ze bieden allebei vertrouwelijkheid: bescherming tegen lezen door de verkeerde perso(o)n(en). PostGuard versleutelt uw e-mails en bestanden op zo'n manier dat alleen de door u gekozen ontvanger ze kan ontsleutelen en lezen. Dit werkt via de gratis Yivi-app voor attribuutgebaseerde authenticatie: u kiest als afzender bepaalde persoonlijke attributen van de beoogde ontvanger (zoals e-mailadres, telefoonnummer of naam). De ontvanger moet dan via de Yivi app bewijzen in het bezit te zijn van deze attributen, voordat de mail/het bestand kan worden ontsleuteld en gelezen. Dit is de essentie van PostGuard: het reduceert vertrouwelijkheid tot authenticatie. PostGuard wordt gratis aangeboden, als een openbare dienst, om versleutelde e-mail en het delen van bestanden voor iedereen gemakkelijk te maken. PostGuard is ontwikkeld met steun van NWO en SIDN fonds.

PostGuard wordt beheerd door het team iHub van de Radboud Universiteit (RU) in Nederland. Zoals nader toegelicht hieronder is iHub/RU de verwerkingsverantwoordelijke, in de zin van de Europese Algemene Verordening Gegevensbescherming (AVG): deze bepaalt de doelen en middelen. iHub/RU is ook een PostGuard-gegevensverwerker. Voor PostGuard's filesharing service is iHub/RU een gegevensverwerker verwerker samen met het bedrijf ProcoliX. Alleen gegevens die nodig zijn voor de PostGuard-service worden verwerkt.

Zowel e-mail- als bestandsversleuteling maken gebruik van Identity-Based-Encryption (IBE) via een Key Generation Service (KGS) die wordt uitgevoerd door iHub/RU . Een ontvanger van een e-mail of bestand kan na correcte authenticatie (via Yivi) een decryptiesleutel verkrijgen van de KGS. De vrijgegeven attributen worden door iHub/RU heel kort verwerkt om te controleren of ze voldoen aan de eisen, zodat een decryptiesleutel kan worden gegenereerd. Onmiddellijk na het genereren van de sleutel, of na een mislukte onthulling, worden de relevante attributen (en bijbehorende IP-adressen met tijdstempel) verwijderd. iHub/RU houdt geen logboek bij van deze gegevens in dergelijke onthullingen. iHub/RU telt wel het aantal meldingen en de globale locatie (op landniveau) van herkomst. Deze gegevens worden alleen gebruikt voor gebruiksstatistieken en verbeteringen aan de service.

Technische wijzigingen aan het PostGuard-systeem of nieuwe services kunnen leiden tot wijziging van dit privacybeleid. iHub/RU en ProcoliX behouden zich het recht voor om dergelijke wijzigingen aan te brengen en zullen het nieuwe privacybeleid zo snel mogelijk via deze pagina aankondigen. Voor vragen, opmerkingen of klachten over deze verwerking door iHub/RU en/of ProcoliX voor PostGuard kunt u contact opnemen met het PostGuard-team via ons e-mail adres. Voor klachten over de verwerking van gegevens door iHub/RU of ProcoliX kan ook contact worden opgenomen met de Autoriteit Persoonsgegevens." } -} \ No newline at end of file +} diff --git a/src/routes/(marketing)/+page.svelte b/src/routes/(marketing)/+page.svelte index 5f2691f..bf5e5dc 100644 --- a/src/routes/(marketing)/+page.svelte +++ b/src/routes/(marketing)/+page.svelte @@ -34,6 +34,34 @@ +
+
+

{$_('landing.limits.sectionTitle')}

+

{$_('landing.limits.intro')}

+ +
+
+
+ 5 + GB +
+
{$_('landing.limits.uploadSuffix')}
+

{$_('landing.limits.uploadDesc')}

+
+
+
+ 15 + GB +
+
{$_('landing.limits.rollingSuffix')}
+

{$_('landing.limits.rollingDesc')}

+
+
+ +

{$_('landing.limits.footnote')}

+
+
+

{$_('home.subtitle1')}

@@ -192,6 +220,86 @@ } } + .limits { + background: var(--pg-soft-background); + border-top: 1px solid var(--pg-strong-background); + border-bottom: 1px solid var(--pg-strong-background); + padding: 4rem 1rem; + } + + .limits-inner { + max-width: 1100px; + margin: 0 auto; + text-align: center; + + h2 { + margin: 0 0 1rem; + font-size: var(--pg-font-size-xl); + font-weight: var(--pg-font-weight-extrabold); + } + } + + .limits-intro { + max-width: 700px; + margin: 0 auto 3rem; + line-height: 1.6; + color: var(--pg-text-secondary); + } + + .limits-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 2rem; + margin-bottom: 2.5rem; + } + + .limit-stat { + padding: 2rem 1.5rem; + background: var(--pg-general-background); + border-radius: var(--pg-border-radius-md); + border: 1px solid var(--pg-strong-background); + } + + .limit-number { + display: flex; + align-items: baseline; + justify-content: center; + gap: 0.5rem; + color: var(--pg-primary); + line-height: 1; + margin-bottom: 0.25rem; + } + + .limit-value { + font-size: 4.5rem; + font-weight: var(--pg-font-weight-extrabold); + } + + .limit-unit { + font-size: var(--pg-font-size-xl); + font-weight: var(--pg-font-weight-bold); + } + + .limit-suffix { + font-size: var(--pg-font-size-base); + font-weight: var(--pg-font-weight-semibold); + color: var(--pg-text); + margin-bottom: 1rem; + } + + .limit-desc { + margin: 0; + line-height: 1.5; + color: var(--pg-text-secondary); + } + + .limits-footnote { + margin: 0; + font-size: var(--pg-font-size-sm); + color: var(--pg-text-secondary); + font-style: italic; + } + .landing { max-width: 1100px; margin: 0 auto; @@ -315,8 +423,17 @@ @media only screen and (max-width: 768px) { .feature-grid, - .business-features { + .business-features, + .limits-grid { grid-template-columns: 1fr; } + + .limits { + padding: 3rem 1rem; + } + + .limit-value { + font-size: 3.5rem; + } }