Merge pull request #94 from safing/feature/backlog

Backlog
This commit is contained in:
Dave Gson 2020-08-20 15:50:32 +02:00 committed by GitHub
commit c730482944
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 303 additions and 163 deletions

View file

@ -1,9 +1,137 @@
cards:
- title: Connection Prompting
description:
- Reintroduce the "Prompt Mode" which asks for your input whether or not to allow a connection. Naturally, make it possible to lock in a decision for the future.
projects:
- Portmaster
- title: Full UI Redesign
description:
- Completely overhaul the Portmaster user interface to simplify all aspects of it.
- Easily block connections from the Monitor, easily block all connection of an app, etc...
projects:
- Portmaster
- title: Network Trust System
description:
- Remember which networks you trust and activate additional defenses in untrusted networks, like the Wi-Fi of your favorite coffee shop.
- Breathe some life into the Autopilot system and automatically switch to a heightened security level in untrusted networks.
projects:
- Portmaster
- title: Adaptive Protection System
description:
- Lookout for portscans against your device and block the offender. Research thoroughly to prevent false positives.
projects:
- Portmaster
- title: Local Connection History
projects:
- Portmaster
description:
- Instead of only viewing what is currently going on, save a local history to be able to inspect what apps did in the past. Naturally, this is local only.
- Also, provide a simple opt-out.
- title: TLS Inspection
description:
- The TLS protocol not only has many problems by itself, but is also often used fatally wrong by software developers.
- Inspect TLS traffic to ensure that the used encryption is good and check all certificates both for validity and for a potential nullification.
- Enable you to set or cut down on the amount of trusted Root Certification Authorities.
projects:
- Portmaster
- title: Stabilize the Network
description:
- After v0.1, focus on stabilizing the typical issues that arise with early software. Fix bugs, improve performance & stability.
- Detect failures in the network and react accordingly.
- Deliver to more and more pre-orders as the network's matures.
projects:
- SPN
team:
- Daniel
- title: Community Nodes
description:
- Fully support community nodes to join the network. Make it easy for contributors to get started by creating good documentation.
- "Disclaimer: this does not yet include compensation, which is tackled in its own project"
projects:
- SPN
- title: Connection Resiliance & Stability
description:
- Insert more resilience into SPN connections, so that even when your Internet goes down for a bit or a used node fails, the Portmaster will still be able to revive and continue your connection as if nothing happened.
projects:
- SPN
- title: Multi-Path Connections
description:
- Enable connections to go over multiple paths simultaneously, which will increase the maximum possible bandwidth within the network.
- Utilize this functionality to route all your SPN traffic through multiple Internet uplinks at the same time.
projects:
- SPN
- title: Routing Profiles
description:
- Make it possible to prioritize either speed, privacy or latency when using the SPN. Permit configuration per app/security level.
projects:
- SPN
- title: IP Leak Protection
description:
- Block known services that want to snoop your IP address.
- Also actively inspect SSDP, UPnP, Bonjour/Zeroconf and TURN in order to stop them from leaking your IP address.
projects:
- Portmaster
- title: CLI Client
description:
- Create a command line tool which provides the same features as the graphical user interface.
projects:
- Portmaster
- SPN
- title: Crowd-Sourced App Settings
description:
- Improve the structure of the app settings and make it easy for you to share selected parts of your configuration with the community.
- Make it just as simple to import community-vetted, privacy-enforcing app settings.
projects:
- Portmaster
- title: Mac OS Support
description: Integrate the Portmaster/SPN into the Mac operating system.
projects:
- Portmaster
- SPN
- title: Compensate Community Nodes
description:
- Implement a system to fairly compensate our awesome community nodes, which enable us to become a decentralized network.
- We do have concepts ready, but will refine them and further outline them as the project starts.
projects:
- SPN
- title: iOS Support
description: Develop iOS support for both the Portmaster and the SPN.
projects:
- Portmaster
- SPN
- title: Android Support
description: Support both the Portmaster and the SPN on Android.
projects:
- Portmaster
- SPN
- title: SPN Transports
description:
- Create new transport types (how you connect to the SPN) to allow you to connect to the SPN even in restricted networks.
- These transports will be able to circumvent network level detection and are the stepping stone to the Nebula Network.
projects:
- SPN
- title: Nebula Network
description: Allow you to access the SPN from within restricted countries or areas.
projects:
- SPN
- title: Cryptocurrency Payments
description: Enable you to pay for the SPN with cryptocurrencies such as Bitcoin, Ethereum, Zcash and Monero
projects:
- Website
- title: Credit Card Payments
description: Enable you to pay for the SPN with credit cards.
projects:
- Website
- title: "Video: Portmaster in Action"
description:
- Produce the trailer video showing what the Portmaster is all about as promised on the /portmaster page.
projects:
- Website
- title: "Video: SPN in Action"
description:
- Produce the trailer video showing what the SPN is all about as promised on the /spn page.
projects:
- Website
- title: 'Revamp "About" Section'
description:
- Retext & update the team page. Revisit the interview videos. Add a section that shows our values more clearly.
projects:
- Website

View file

@ -4,7 +4,7 @@
# - Website (includes the CustomerHub)
# - Community
# - Marketing
# - Backoffice
# - Back Office
# Ordering of team members should lean towards most involved -> least involved. but may also be done randomly
@ -39,7 +39,7 @@ cards:
text: "More on Transparent Funding..."
url: "/ownership/#finances"
projects:
- Backoffice
- Back Office
team:
- Tabitha
- Raphael

View file

@ -2,31 +2,14 @@
<div class="block cardshadow p-8 rounded-lg">
<div class="tabs">
<div class="tab">
<input class="dropinput" type="checkbox" id="card-{{ include.state }}-{{ forloop.index }}">
<label style="min-width: 90%; min-height: 150px; display: block;" class="absolute cursor-pointer" for="card-{{ include.state }}-{{ forloop.index }}">
<input class="dropinput" type="checkbox" id="card{{ include.state | prepend: '-' }}{{ include.project | prepend: '-' }}-{{ forloop.index }}">
<label style="min-width: 90%; min-height: 150px; display: block;" class="absolute cursor-pointer" for="card{{ include.state | prepend: '-' }}{{ include.project | prepend: '-' }}-{{ forloop.index }}">
<img class="absolute right-0" style="margin-right: 1rem;" id="icon" src="{{ site.assets_url }}/icons/arrow.svg" alt="">
</label>
<div>
<div class="flex">
{% for tag in card.projects %}
{% assign tag_bg_strength = 100 %}
{% if tag == 'Portmaster' %}
{% assign tag_color = 'blue' %}
{% elsif tag == 'SPN' %}
{% assign tag_color = 'green' %}
{% elsif tag == 'Website' %}
{% assign tag_color = 'pink' %}
{% elsif tag == 'Backoffice' %}
{% assign tag_color = 'gray' %}
{% assign tag_bg_strength = 200 %}
{% elsif tag == 'Community' %}
{% assign tag_color = 'purple' %}
{% elsif tag == 'Marketing' %}
{% assign tag_color = 'orange' %}
{% endif %}
<span class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium leading-5 bg-{{ tag_color }}-{{ tag_bg_strength }} text-{{ tag_color }}-800 mr-2">
{{ tag }}
</span>
{% include tag.html tag=tag %}
{% endfor %}
</div>
<div class="flex pt-6 items-center">

View file

@ -29,7 +29,7 @@
{% assign tag_color = 'green' %}
{% elsif tag == 'Website' %}
{% assign tag_color = 'pink' %}
{% elsif tag == 'Backoffice' %}
{% elsif tag == 'Back Office' %}
{% assign tag_color = 'gray' %}
{% assign tag_bg_strength = 200 %}
{% elsif tag == 'Community' %}

18
_includes/tag.html Normal file
View file

@ -0,0 +1,18 @@
{% assign tag_bg_strength = 100 %}
{% if include.tag == 'Portmaster' %}
{% assign tag_color = 'blue' %}
{% elsif include.tag == 'SPN' %}
{% assign tag_color = 'green' %}
{% elsif include.tag == 'Website' %}
{% assign tag_color = 'pink' %}
{% elsif include.tag == 'Back Office' %}
{% assign tag_color = 'gray' %}
{% assign tag_bg_strength = 200 %}
{% elsif include.tag == 'Community' %}
{% assign tag_color = 'purple' %}
{% elsif include.tag == 'Marketing' %}
{% assign tag_color = 'orange' %}
{% endif %}
<span class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium leading-5 bg-{{ tag_color }}-{{ tag_bg_strength }} text-{{ tag_color }}-800 mr-2">
{{ include.tag }}
</span>

View file

@ -39,7 +39,7 @@ When the connection arrives at the last server of the circuit it still has to tr
With the SPN however, every connection is calculated individually and leaves the network as near to the destination as possible. This means:
1. your connections are spread across the globe, creating vast amounts of identities
1. your connections are spread across the globe, using vast amounts of identities (IP addresses)
2. visibility in the 'open web' is minimized
3. connections are not slowed down by having to go extra miles

View file

@ -48,7 +48,7 @@ After a connection arrives at the VPN server it still has to travel to the desir
With the SPN however, every connection is calculated individually and leaves the network as near to the destination as possible. This means:
1. your connections are spread across the globe, creating vast amounts of identities
1. your connections are spread across the globe, using vast amounts of identities (IP addresses)
2. visibility in the 'open web' is minimized
3. connections are not slowed down by having to go extra miles

View file

@ -60,7 +60,7 @@ cards:
text: "More on Transparent Funding..."
url: "/ownership/#finances"
projects:
- Backoffice
- Back Office
team:
- Tabitha
- Raphael

View file

@ -3,140 +3,154 @@ title: Safing Ownership
layout: page
---
<!-- Project Priority according to next.yml -->
{% assign all_cards = site.data.backlog.cards %}
{% assign portmaster_cards = all_cards | where_exp: "card", "card.projects contains 'Portmaster'" %}
{% assign spn_cards = all_cards | where_exp: "card", "card.projects contains 'SPN'" %}
{% assign website_cards = all_cards | where_exp: "card", "card.projects contains 'Website'" %}
{% assign community_cards = all_cards | where_exp: "card", "card.projects contains 'Community'" %}
{% assign marketing_cards = all_cards | where_exp: "card", "card.projects contains 'Marketing'" %}
{% assign backoffice_cards = all_cards | where_exp: "card", "card.projects contains 'Back Office'" %}
<section style="margin-top: 12rem; margin-bottom: 8rem;" class="mb-40">
<div class="items-center h-full">
<div>
<div>
<div class="relative max-w-screen-sm lg:max-w-screen-xl mx-auto px-4 sm:px-6 xl:px-0 lg:flex">
<div class=" pt-8">
<div class="text-center lg:text-left">
<span class="text-sm opacity-55 tracking-normal">20.04.2020</span>
<h2 id="influences" class="text-5xl tracking-tight font-extrabold leading-none pb-10 pt-2">
Backlog
</h2>
<p class="text-md opacity-55 max-w-lg mx-auto">
We find it very hard to say what the ufutre will be. So we have
created our own roadmap to show what we plan doing what we are working.
</p>
</div>
<!-- <div class="pt-10 flex transform scale-110 ml-5 mx-auto justify-center lg:justify-start">
<div class="flex">
<div class="flex-1 pr-2">
<span class="inline-flex items-center px-3 py-0.5 rounded-full text-sm font-medium leading-5 bg-blue-100 text-blue-800">
Portmaster
</span>
</div>
<div class="flex-1 pr-2">
<span class="inline-flex items-center px-3 py-0.5 rounded-full text-sm font-medium leading-5 bg-green-100 text-green-800">
Spn
</span>
</div>
<div class="flex-1 pr-2">
<span class="inline-flex items-center px-3 py-0.5 rounded-full text-sm font-medium leading-5 bg-red-100 text-red-800">
Organization
</span>
</div>
</div>
</div> -->
</div>
<div class="relative mt-24 lg:mt-0 lg:absolute lg:right-0 lg:mr-10">
<div class="mx-auto max-w-xs transform hover:scale-95 duration-150 ease-in-out">
<a href="/roadmapblog/">
<div class="relative" style="max-width: 365px;">
<img src="/assets/img/thumbnails/blog/progress-update.png">
<span class="absolute text-white right-0 bottom-0 pr-3 pb-3" style="font-size: 3.1rem; font-weight: 800;">#01</span>
</div>
<div class="pt-6 max-w-xs">
<span class="opacity-25">
26. Jun 2020
</span>
<p>Progress Update June - #01</p>
</div>
</a>
</div>
</div>
</div>
</div>
<div class="pt-48">
<div class="gridwrapper">
<div style="margin-top: -3rem;" class="flex absolute pl-8 ">
<span class="opacity-50">Portmaster</span>
<strong class="pl-2 opacity-75">(3)</strong>
</div>
{% include project_card.html %}
{% include project_card.html %}
{% include project_card.html %}
{% include project_card.html %}
</div>
</div>
</div>
<div class="pt-48">
<div class="gridwrapper">
<div style="margin-top: -3rem;" class="flex absolute pl-8 ">
<span class="opacity-50">SPN</span>
<strong class="pl-2 opacity-75">(3)</strong>
</div>
{% include project_card.html %}
{% include project_card.html %}
{% include project_card.html %}
</div>
</div>
<div class="pt-48">
<div class="gridwrapper">
<div style="margin-top: -3rem;" class="flex absolute pl-8 ">
<span class="opacity-50">BackOffice</span>
<strong class="pl-2 opacity-75">(3)</strong>
</div>
{% include project_card.html %}
</div>
<div class="relative max-w-screen-sm lg:max-w-screen-xl mx-auto px-4 sm:px-6 xl:px-0 lg:flex">
<div class=" pt-8">
<div class="text-center lg:text-left">
<span class="text-sm opacity-55 tracking-normal">20.08.2020</span>
<h2 id="influences" class="text-5xl tracking-tight font-extrabold leading-none pb-5 pt-2">
Backlog
</h2>
<p class="text-md opacity-55 max-w-lg mx-auto">
A big picture overview of our current mid- and long-term plans.
</p>
</div>
<div class="pt-10 flex transform mx-auto justify-center lg:justify-start">
<span class="text-sm opacity-55 mr-4">
Jump to:
</span>
<div class="flex">
{% if portmaster_cards.size > 0 %}
<a href="#portmaster" class="flex-1 pr-2" style="word-break: normal;">
{% include tag.html tag='Portmaster' %}
</a>
{% endif %}
{% if spn_cards.size > 0 %}
<a href="#spn" class="flex-1 pr-2" style="word-break: normal;">
{% include tag.html tag='SPN' %}
</a>
{% endif %}
{% if website_cards.size > 0 %}
<a href="#website" class="flex-1 pr-2" style="word-break: normal;">
{% include tag.html tag='Website' %}
</a>
{% endif %}
{% if community_cards.size > 0 %}
<a href="#community" class="flex-1 pr-2" style="word-break: normal;">
{% include tag.html tag='Community' %}
</a>
{% endif %}
{% if marketing_cards.size > 0 %}
<a href="#marketing" class="flex-1 pr-2" style="word-break: normal;">
{% include tag.html tag='Marketing' %}
</a>
{% endif %}
{% if backoffice_cards.size > 0 %}
<a href="#backoffice" class="flex-1 pr-2" style="word-break: normal;">
{% include tag.html tag='Back Office' %}
</a>
{% endif %}
</div>
</div>
<p class="text-xs opacity-55 max-w-lg mx-auto pt-4">
Disclaimer: Even if we'd love to accomplish everything listed below, some projects may turn out to be unfeasible.
</p>
</div>
<div class="relative mt-24 lg:mt-0 lg:absolute lg:right-0 lg:mr-10">
{% assign progress_posts = site.posts | where: "progress_update", "true" %}
{% for post in progress_posts limit: 1 %}
{% include thumbnail_blog.html pre_header="BLOG" %}
{% endfor %}
</div>
</div>
</div>
{% if portmaster_cards.size > 0 %}
<div class="pt-32">
<div class="nextwrapper">
<div style="margin-top: -3rem;" class="flex absolute pl-8 ">
<span class="opacity-50" id="portmaster">Portmaster</span>
<strong class="pl-2 opacity-75">({{ portmaster_cards.size }})</strong>
</div>
{% for card in portmaster_cards %}
{% include project_card.html state='backlog' project='portmaster' %}
{% endfor %}
</div>
</div>
{% endif %}
{% if spn_cards.size > 0 %}
<div class="pt-32">
<div class="nextwrapper">
<div style="margin-top: -3rem;" class="flex absolute pl-8 ">
<span class="opacity-50" id="spn">Safing Privacy Network</span>
<strong class="pl-2 opacity-75">({{ spn_cards.size }})</strong>
</div>
{% for card in spn_cards %}
{% include project_card.html state='backlog' project='spn' %}
{% endfor %}
</div>
</div>
{% endif %}
{% if website_cards.size > 0 %}
<div class="pt-32">
<div class="nextwrapper">
<div style="margin-top: -3rem;" class="flex absolute pl-8 ">
<span class="opacity-50" id="website">Website</span>
<strong class="pl-2 opacity-75">({{ website_cards.size }})</strong>
</div>
{% for card in website_cards %}
{% include project_card.html state='backlog' project='website' %}
{% endfor %}
</div>
</div>
{% endif %}
{% if community_cards.size > 0 %}
<div class="pt-32">
<div class="nextwrapper">
<div style="margin-top: -3rem;" class="flex absolute pl-8 ">
<span class="opacity-50" id="community">Community</span>
<strong class="pl-2 opacity-75">({{ community_cards.size }})</strong>
</div>
{% for card in community_cards %}
{% include project_card.html state='backlog' project='community' %}
{% endfor %}
</div>
</div>
{% endif %}
{% if marketing_cards.size > 0 %}
<div class="pt-32">
<div class="nextwrapper">
<div style="margin-top: -3rem;" class="flex absolute pl-8 ">
<span class="opacity-50" id="marketing">Marketing</span>
<strong class="pl-2 opacity-75">({{ marketing_cards.size }})</strong>
</div>
{% for card in marketing_cards %}
{% include project_card.html state='backlog' project='marketing' %}
{% endfor %}
</div>
</div>
{% endif %}
{% if backoffice_cards.size > 0 %}
<div class="pt-32">
<div class="nextwrapper">
<div style="margin-top: -3rem;" class="flex absolute pl-8 ">
<span class="opacity-50" id="backoffice">Back Office</span>
<strong class="pl-2 opacity-75">({{ backoffice_cards.size }})</strong>
</div>
{% for card in backoffice_cards %}
{% include project_card.html state='backlog' project='backoffice' %}
{% endfor %}
</div>
</div>
{% endif %}
</section>
<!--
this is only for the roadmap backlog.
Luke will clean this at a later date.
-->
<style>
.gridwrapper{
display: grid;
grid-template-columns: repeat(1, auto);
grid-template-rows: auto;
grid-row-gap: 10px;
grid-auto-flow: row;
margin-left: auto;
margin-right: auto;
max-width: 1350px;
}
.card{
max-width: auto;
}
.shadowthing{
box-shadow: 0 0px 90px 0 rgba(59, 93, 199, 0.1), 0 0px 5px 0 rgba(0, 0, 0, 0);
}
@media (min-width: 768px) {
}
@media (min-width: 640px) {
.gridwrapper{
grid-template-columns: repeat(1, auto);
}
}
@media (min-width: 1024px) {
.gridwrapper{
grid-template-columns: repeat(3, minmax(auto, 445px));
}
.card{
max-width: 445px;
}
}
</style>

View file

@ -89,16 +89,13 @@ layout: page
We have plans and ideas for years to come. We will never be "done" but always evolve and progress. I'm sure you have cool ideas for us too!
Take a look what we already plan on doing in the longer run.
</p>
<p class="text-md opacity-55 max-w-lg pt-8">
As disclosed above we're still working on the backlog. Coming SoonTM.
</p>
<!-- <div class="py-10 flex">
<div class="py-10 flex">
<a href="{{ site.backlog_url }}">
<button type="button" style="background-color: #000;" class="transform hover:scale-95 inline-flex items-center px-10 py-3 border border-transparent text-xs leading-5 font-extrabold rounded-full text-white hover:bg-indigo-500 focus:outline-none focus:border-indigo-700 active:bg-indigo-700 transition duration-150 ease-in-out uppercase">
Explore the Backlog
</button>
</a>
</div> -->
</div>
</div>
<div class="hidden pt-16 lg:pt-0 ml-0 lg:ml-32 lg:block self-center">
<img src="{{ site.img_url }}page-specific/next/files.png" alt="">