Skip to content

Commit

Permalink
Add Use Cases column to ProsAndCons
Browse files Browse the repository at this point in the history
  • Loading branch information
Rikthepixel committed Dec 26, 2024
1 parent a570898 commit 9d704f8
Show file tree
Hide file tree
Showing 9 changed files with 74 additions and 30 deletions.
4 changes: 4 additions & 0 deletions src/assets/data/pages/en/guides/less-important/Messaging.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"logo": "/images/logos/session.png",
"logo_alt": "Session Logo",
"link": "https://getsession.org/",
"use_cases": [],
"pros": [
"[Recently audited](https://getsession.org/blog/session-code-audit)",
"Available on [all operating systems](/criteria#definitions)",
Expand All @@ -21,6 +22,7 @@
"logo": "/images/logos/signal.png",
"logo_alt": "Signal Logo",
"link": "https://signal.org/",
"use_cases": [],
"pros": [
"[Recently audited](https://community.signalusers.org/t/wiki-overview-of-third-party-security-audits/13243)",
"Available on [all operating systems](/criteria#definitions)",
Expand All @@ -38,6 +40,7 @@
"logo": "/images/logos/simplex.png",
"logo_alt": "SimpleX Logo",
"link": "https://simplex.chat/",
"use_cases": [],
"pros": [
"[Recently audited](https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html)",
"Available on [all operating systems](/criteria#definitions)",
Expand All @@ -53,6 +56,7 @@
"logo": "/images/logos/threema.png",
"logo_alt": "Threema Logo",
"link": "https://threema.ch/",
"use_cases": [],
"pros": [
"[Recently audited](https://threema.ch/en/blog/posts/audit-2020-en)",
"Available on [all operating systems](/criteria#definitions)"
Expand Down
6 changes: 6 additions & 0 deletions src/assets/data/pages/en/guides/less-important/Voip.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"logo": "/images/logos/hushed.png",
"logo_alt": "Hushed logo",
"link": "https://promo.hushed.com/lp/lifetime-3?oid=14&affid=497",
"use_cases": [],
"pros": [
"Unlimited numbers",
"International calling",
Expand All @@ -20,6 +21,7 @@
"logo": "/images/logos/google_voice.png",
"logo_alt": "Google Voice logo",
"link": "https://voice.google.com/about",
"use_cases": [],
"pros": [
"One free number (unlimited numbers with Workspace subscription)",
"Desktop client available",
Expand All @@ -35,6 +37,7 @@
"logo": "/images/logos/mysudo.png",
"logo_alt": "MySudo logo",
"link": "https://mysudo.com/",
"use_cases": [],
"pros": [
"Up to 9 numbers available",
"Does not require your SIM number",
Expand All @@ -51,6 +54,7 @@
"logo": "/images/logos/skype.png",
"logo_alt": "Skype logo",
"link": "https://www.skype.com/en/skype-number/",
"use_cases": [],
"pros": [
"Supports up to 10 phone numbers",
"Available in 25+ countries",
Expand All @@ -64,6 +68,7 @@
"logo": "/images/logos/tossable-digits.png",
"logo_alt": "Tossable Digits logo",
"link": "https://www.tossabledigits.com/",
"use_cases": [],
"pros": [
"Unlimited numbers",
"International calling",
Expand All @@ -82,6 +87,7 @@
"logo": "/images/logos/viber.png",
"logo_alt": "Viber logo",
"link": "https://www.viber.com/",
"use_cases": [],
"pros": [
"Desktop client",
"Available in 59 countries",
Expand Down
3 changes: 3 additions & 0 deletions src/assets/data/pages/en/guides/less-important/Vpns.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"logo": "/images/logos/ivpn.png",
"logo_alt": "IVPN logo",
"link": "https://www.ivpn.net",
"use_cases": [],
"pros": [
"[Recently audited](https://www.ivpn.net/blog/tags/audit/)",
"Available on all operating systems",
Expand All @@ -20,6 +21,7 @@
"logo": "/images/logos/mullvad.png",
"logo_alt": "Mullvad logo",
"link": "https://mullvad.net/",
"use_cases": [],
"pros": [
"[Recently audited](https://mullvad.net/en/blog/search/?q=audit)",
"Available on all operating systems",
Expand All @@ -37,6 +39,7 @@
"logo": "/images/logos/protonvpn.png",
"logo_alt": "Proton VPN logo",
"link": "https://go.getproton.me/aff_c?offer_id=26&aff_id=2187&url_id=282",
"use_cases": [],
"pros": [
"[Recently audited](https://protonvpn.com/blog/open-source/)",
"Available on all operating systems",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"logo": "/images/logos/filen.png",
"logo_alt": "Filen logo",
"link": "https://filen.io/r/834a3bd235bca0caa53141f2ebc30438",
"use_cases": [],
"pros": [
"Includes text chat feature with other users",
"Includes notes"
Expand All @@ -19,6 +20,7 @@
"logo": "/images/logos/mega.png",
"logo_alt": "MEGA Logo",
"link": "https://mega.nz/aff=UBJLjO7sxZU",
"use_cases": [],
"pros": [
"Includes text, audio, and video chat feature with other users"
],
Expand All @@ -34,6 +36,7 @@
"logo": "/images/logos/protondrive.png",
"logo_alt": "ProtonDrive Logo",
"link": "https://go.getproton.me/aff_c?offer_id=7&aff_id=2187",
"use_cases": [],
"pros": [
"Includes ecosystem (VPN, Mail, calendar, password manager)",
"Recently [audited](https://proton.me/blog/security-audit-all-proton-apps)"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"logo": "/images/logos/protonmail.png",
"logo_alt": "Protonmail Logo",
"link": "https://go.getproton.me/aff_c?offer_id=7&aff_id=2187",
"use_cases": [],
"pros": [
"[Recently audited](https://protonmail.com/blog/security-audit/)",
"Based on PGP",
Expand All @@ -18,6 +19,7 @@
"logo": "/images/logos/tuta.png",
"logo_alt": "Tuta Logo",
"link": "https://tuta.com/?t-src=the-new-oil",
"use_cases": [],
"pros": [
"[Recently audited](https://tuta.com/blog/posts/desktop-clients-tutanota/)",
"Offers a free tier",
Expand Down
4 changes: 4 additions & 0 deletions src/assets/data/pages/en/guides/most-important/Mfa.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"logo": "/images/logos/2fas.png",
"logo_alt": "2FAS logo",
"link": "https://2fas.com/",
"use_cases": [],
"pros": [
"Available on Android & iOS",
"Can sync with Mac via browser extension and shared clipboard (see Cons)"
Expand All @@ -18,6 +19,7 @@
"logo": "/images/logos/aegis.png",
"logo_alt": "Aegis Authenticator Logo",
"link": "https://getaegis.app/",
"use_cases": [],
"pros": [
"Available on [F-Droid](https://f-droid.org/en/packages/com.beemdevelopment.aegis/)",
"Allows automatic backups (cloud only)"
Expand All @@ -29,6 +31,7 @@
"logo": "/images/logos/bitwarden_auth.png",
"logo_alt": "Bitwarden Authenticator Logo",
"link": "https://bitwarden.com/products/authenticator/",
"use_cases": [],
"pros": ["Available on Android & iOS"],
"cons": ["Not available on F-Droid"]
},
Expand All @@ -37,6 +40,7 @@
"logo": "/images/logos/ente-auth.png",
"logo_alt": "ente Authenticator logo",
"link": "https://ente.io/auth/",
"use_cases": [],
"pros": [
"Available on all operating systems",
"Available on [F-Droid](https://f-droid.org/en/packages/io.ente.auth/)",
Expand Down
14 changes: 7 additions & 7 deletions src/assets/data/pages/en/guides/most-important/MobileApps.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
"Alternatives": [
"[Adguard](https://adguard.com/)",
"[Blokada](https://blokada.org/) *(No free version for iOS)*",
"[NextDNS](https://nextdns.io/)",
"[NextDNS](https://nextdns.io/)",
"[Lockdown](https://lockdownprivacy.com/) (iOS Only)"
],
"Reason": [
Expand Down Expand Up @@ -67,8 +67,8 @@
"name": "Notes",
"values": {
"Alternatives": [
"[Cryptee](https://crypt.ee/)",
"[Filen](https://filen.io/r/834a3bd235bca0caa53141f2ebc30438)",
"[Cryptee](https://crypt.ee/)",
"[Filen](https://filen.io/r/834a3bd235bca0caa53141f2ebc30438)",
"[Joplin](https://joplinapp.org/)",
"[Nextcloud](https://nextcloud.com/)",
"[Notesnook](https://notesnook.com/)",
Expand All @@ -94,11 +94,11 @@
"name": "Photos",
"values": {
"Alternatives": [
"[Cryptee](https://crypt.ee/)",
"[Cryptee](https://crypt.ee/)",
"[Ente](https://ente.io/)",
"[Filen](https://filen.io/r/834a3bd235bca0caa53141f2ebc30438)",
"[Nextcloud](https://nextcloud.com/)",
"[Proton Drive](https://proton.me/drive) (Android only)"
"[Filen](https://filen.io/r/834a3bd235bca0caa53141f2ebc30438)",
"[Nextcloud](https://nextcloud.com/)",
"[Proton Drive](https://proton.me/drive) (Android only)"
],
"Reason": [
"Google, Apple, and other non-encrypted photo storage options can see all your photos. These services provide a way to securely store, manage, and back up your photos between multiple devices safe from the provider's prying eyes."
Expand Down
15 changes: 9 additions & 6 deletions src/assets/data/pages/en/guides/most-important/Passwords.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"logo": "/images/logos/bitwarden.png",
"logo_alt": "Bitwarden Logo",
"link": "https://bitwarden.com/",
"use_cases": [],
"pros": [
"[Recently audited](https://bitwarden.com/blog/post/bitwarden-network-security-assessment-2020/)",
"Available on all operating systems",
Expand All @@ -17,23 +18,25 @@
"logo": "/images/logos/keepassxc.png",
"logo_alt": "KeePass Logo",
"link": "https://keepassxc.org/",
"use_cases": [],
"pros": [
"[Audited](https://keepassxc.org/docs/#faq-audit)",
"[Audited](https://keepassxc.org/docs/#faq-audit)",
"Available on all operating systems",
"Available on [F-Droid](https://f-droid.org/packages/com.kunzisoft.keepass.libre/) (as [KeePassDX](https://www.keepassdx.com/)",
"Passkey support (KeePassXC, KeePassDX, and [Strongbox (iOS)](https://strongboxsafe.com/)",
"Multiple clients compatible with the vault's .kdbx format allows users to easily migrate to another similar app for any reason"
"Available on [F-Droid](https://f-droid.org/packages/com.kunzisoft.keepass.libre/) (as [KeePassDX](https://www.keepassdx.com/)",
"Passkey support (KeePassXC, KeePassDX, and [Strongbox (iOS)](https://strongboxsafe.com/)",
"Multiple clients compatible with the vault's .kdbx format allows users to easily migrate to another similar app for any reason"
],
"cons": [
"Not cloud based",
"Other clients may not have the same features (audits, F-Droid availibility, passkey support)"
"Other clients may not have the same features (audits, F-Droid availibility, passkey support)"
]
},
"protonpass": {
"name": "Proton Pass",
"logo": "/images/logos/protonpass.png",
"logo_alt": "Proton Pass Logo",
"link": "https://go.getproton.me/aff_c?offer_id=38&aff_id=2187",
"link": "https://go.getproton.me/aff_c?offer_id=38&aff_id=2187",
"use_cases": [],
"pros": [
"[Recently audited](https://proton.me/blog/pass-open-source-security-audit)",
"Available on all all operating systems (browser extension only for Linux and Mac)",
Expand Down
53 changes: 36 additions & 17 deletions src/components/charts/ProsAndCons.astro
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@ interface Tool {
logo: string;
logo_alt: string;
name: string;
use_cases?: string[];
pros: string[];
cons: string[];
}
interface Props {
data: Tool[];
headingLevel: number;
useCasesName?: string;
prosName?: string;
consName?: string;
nonReferralLinkText: string;
Expand All @@ -26,6 +28,7 @@ const {
headingLevel,
prosName = "Pros",
consName = "Cons",
useCasesName = "Use Cases",
nonReferralLinkText = "Non-referral link"
} = Astro.props;
Expand All @@ -39,16 +42,22 @@ const ChildrenHeading = (headingLevel < 6 ? `h${headingLevel + 1}` : "p") as any
text: tool.name,
prefix: `pros-and-cons-`
});

const prosHeadingId = await textToHeadingId({
text: "Pros",
prefix: nameHeadingId + "-"
});

const consHeadingId = await textToHeadingId({
text: "Cons",
prefix: nameHeadingId + "-"
});
const [prosHeadingId, consHeadingId, useCasesHeadingId] = await Promise.all([
textToHeadingId({
text: "Pros",
prefix: nameHeadingId + "-"
}),
textToHeadingId({
text: "Cons",
prefix: nameHeadingId + "-"
}),
tool.use_cases && tool.use_cases.length > 0
? textToHeadingId({
text: "Use Cases",
prefix: nameHeadingId + "-"
})
: undefined
]);

const columns = [
{
Expand All @@ -63,6 +72,14 @@ const ChildrenHeading = (headingLevel < 6 ? `h${headingLevel + 1}` : "p") as any
}
];

if (useCasesHeadingId && tool.use_cases && tool.use_cases.length > 0) {
columns.push({
headingId: useCasesHeadingId,
heading: useCasesName,
items: tool.use_cases
});
}

return (
<div class="markdown--disabled flex flex-col items-center gap-4 rounded-lg border-4 p-4 pb-12 border-gradient-secondary border-bg-primary motion-safe:transition-[padding] motion-safe:duration-200 motion-safe:ease-in-out lg:gap-6 lg:p-6 xl:gap-8 xl:p-8 2xl:flex-row dark:border-bg-primary-dark">
<div class="my-4 flex max-h-40 flex-col items-center justify-center gap-4 border-none text-center lg:my-0 xl:w-1/5">
Expand All @@ -83,13 +100,15 @@ const ChildrenHeading = (headingLevel < 6 ? `h${headingLevel + 1}` : "p") as any
{column.heading}
</ChildrenHeading>
<ul class="lg:px-8 lg:py-0">
{column.items.map((item) => {
return (
<li>
<Markdown of={String(item)} />
</li>
);
})}
{column.items.length > 0
? column.items.map((item) => {
return (
<li>
<Markdown of={String(item)} />
</li>
);
})
: "None"}
</ul>
</div>
);
Expand Down

0 comments on commit 9d704f8

Please sign in to comment.