diff --git a/public/about/1.png b/public/about/1.png new file mode 100644 index 00000000..bc455f93 Binary files /dev/null and b/public/about/1.png differ diff --git a/public/about/2.png b/public/about/2.png new file mode 100644 index 00000000..19577bef Binary files /dev/null and b/public/about/2.png differ diff --git a/public/about/3.png b/public/about/3.png new file mode 100644 index 00000000..891bd925 Binary files /dev/null and b/public/about/3.png differ diff --git a/public/about/4.png b/public/about/4.png new file mode 100644 index 00000000..c5039844 Binary files /dev/null and b/public/about/4.png differ diff --git a/public/about/about.png b/public/about/about.png new file mode 100644 index 00000000..e4e55fce Binary files /dev/null and b/public/about/about.png differ diff --git a/public/about/image1.png b/public/about/image1.png new file mode 100644 index 00000000..1deeb0d2 Binary files /dev/null and b/public/about/image1.png differ diff --git a/public/about/image2.png b/public/about/image2.png new file mode 100644 index 00000000..8110cf7b Binary files /dev/null and b/public/about/image2.png differ diff --git a/public/about/stickers.png b/public/about/stickers.png new file mode 100644 index 00000000..1ce86a51 Binary files /dev/null and b/public/about/stickers.png differ diff --git a/public/arrow.svg b/public/arrow.svg new file mode 100644 index 00000000..3657960e --- /dev/null +++ b/public/arrow.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/engine.png b/public/engine.png new file mode 100644 index 00000000..dd39d4c9 Binary files /dev/null and b/public/engine.png differ diff --git a/public/icons/calendar_today.svg b/public/icons/calendar_today.svg new file mode 100644 index 00000000..960f155d --- /dev/null +++ b/public/icons/calendar_today.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/database.svg b/public/icons/database.svg new file mode 100644 index 00000000..0ee1799b --- /dev/null +++ b/public/icons/database.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/encrypted.svg b/public/icons/encrypted.svg new file mode 100644 index 00000000..2af782ab --- /dev/null +++ b/public/icons/encrypted.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/experiment.svg b/public/icons/experiment.svg new file mode 100644 index 00000000..a2968c0b --- /dev/null +++ b/public/icons/experiment.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/gift.svg b/public/icons/gift.svg new file mode 100644 index 00000000..517b8600 --- /dev/null +++ b/public/icons/gift.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/icons/group_work.svg b/public/icons/group_work.svg new file mode 100644 index 00000000..9368d906 --- /dev/null +++ b/public/icons/group_work.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/local_florist.svg b/public/icons/local_florist.svg new file mode 100644 index 00000000..d9265922 --- /dev/null +++ b/public/icons/local_florist.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/query_stats.svg b/public/icons/query_stats.svg new file mode 100644 index 00000000..a1687a92 --- /dev/null +++ b/public/icons/query_stats.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/school.svg b/public/icons/school.svg new file mode 100644 index 00000000..23ee6a4e --- /dev/null +++ b/public/icons/school.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/star_half.svg b/public/icons/star_half.svg new file mode 100644 index 00000000..f27d293f --- /dev/null +++ b/public/icons/star_half.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/visibility_lock.svg b/public/icons/visibility_lock.svg new file mode 100644 index 00000000..aea7c495 --- /dev/null +++ b/public/icons/visibility_lock.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/membership/membership.png b/public/membership/membership.png new file mode 100644 index 00000000..a20ae5ec Binary files /dev/null and b/public/membership/membership.png differ diff --git a/src/components/AboutFooter.astro b/src/components/AboutFooter.astro index 79b1dccc..199f1f93 100644 --- a/src/components/AboutFooter.astro +++ b/src/components/AboutFooter.astro @@ -1,26 +1,34 @@ --- - -import * as config from '../config.yaml'; -import core from '../core.json'; -import contributors from '../contributors.json'; -import { getPersonByGH } from '../lib/core.js'; -import PeopleCarousel from '../components/PeopleCarousel.astro'; +import * as config from "../config.yaml"; +import core from "../core.json"; +import contributors from "../contributors.json"; +import { getPersonByGH } from "../lib/core.js"; +import PeopleCarousel from "../components/PeopleCarousel.astro"; function findPerson(src) { - const p = core.people.find(p => src.refs?.twitter ? p.refs?.twitter === src.refs.twitter : (src.refs?.bsky ? p.refs.bsky === src.refs.bsky : {})) - if (p) { - p.ct = src - } - return p + const p = core.people.find((p) => + src.refs?.twitter + ? p.refs?.twitter === src.refs.twitter + : src.refs?.bsky + ? p.refs.bsky === src.refs.bsky + : {} + ); + if (p) { + p.ct = src; + } + return p; } function personLink(person) { - return person.refs?.twitter ? `https://twitter.com/${person.refs.twitter}` : (person.refs?.bsky ? `https://bsky.app/profile/${person.refs.bsky}` : '#') + return person.refs?.twitter + ? `https://twitter.com/${person.refs.twitter}` + : person.refs?.bsky + ? `https://bsky.app/profile/${person.refs.bsky}` + : "#"; } - --- -
+
-

Join the Community

-
{config.landing.community}
- -

Speakers

-
- {core.people.filter(p => !core.teams['core-team'].includes(p.id)).filter(p => p.imageUrl).map((person) => ( -
- - - -
- ))} -
- -
- +

+ Join the Community +

+
{config.landing.community}
-
+

Speakers

+
+ { + core.people + .filter((p) => !core.teams["core-team"].includes(p.id)) + .filter((p) => p.imageUrl) + .map((person) => ( +
+ + + +
+ )) + } +
-

Git Contributors

-
+ - { // filter(p => !core.teams['core-team'].includes(getPersonByGH(p.login)?.id)) - contributors.items.map((contrib) => ( -
- ))} -
+

Git Contributors

+
+ { + // filter(p => !core.teams['core-team'].includes(getPersonByGH(p.login)?.id)) + contributors.items.map((contrib) => ( +
+ + + +
+ )) + } +
- -
\ No newline at end of file +
+ + + +
+
diff --git a/src/components/AboutItem.astro b/src/components/AboutItem.astro new file mode 100644 index 00000000..85a236e0 --- /dev/null +++ b/src/components/AboutItem.astro @@ -0,0 +1,36 @@ +--- +interface Props { + title: string; + subtext?: string; + variant?: "primary" | "secondary"; +} +const { title, subtext, variant = "primary" } = Astro.props; +--- + +
+
+ + {title} + + +
+ { + subtext && ( +
+
+ + {subtext} +
+
+ ) + } +
diff --git a/src/components/AboutItemGrid.astro b/src/components/AboutItemGrid.astro new file mode 100644 index 00000000..14cb84c9 --- /dev/null +++ b/src/components/AboutItemGrid.astro @@ -0,0 +1,237 @@ +--- +import AboutItem from "../components/AboutItem.astro"; +--- + +
+ +
+
+ General public + Projects + Startupers +
+
+ Developers + Audit companies + Investors +
+
+
+ +
+
+ +
+ + Market stats + + + + Like Crunchbase, but free forever + +
+
+ +
+ +
+ + Privacy Ranking + + + + Scoring and review of current privacy projects + +
+
+
+ +
+ + Academy + + + Education for general public how to reach privacy + +
+
+
+ +
+ + Research + + + + Anual reports, Frameworks, Tools, Books + +
+
+
+ +
+ + Data + + + For Projects, Use-case list, Market & Funding info + +
+
+
+
+ +
+
+ +
+ + Advocacy + + + + Branding “decentralization = privacy” + +
+
+ +
+ +
+ + Events + + + + Meetups, Summits, Hackathons, Camps + +
+
+
+ +
+ + Ecosystems collaboration + + + Networks, Alliances, Media +
+
+
+ +
+ + Standartisation + + + + Privacy-features, security audit (example) + +
+
+
+ +
+ + Incubation + + + Product managers facilitation, Business sustainability + +
+
+
+
+ +
+
+
+ + GENERAL PUBLIC + +
    +
  • Milions of educated users
  • +
  • Higher privacy culture
  • +
+
+
+ + PROJECTS + +
    +
  • Better privacy features
  • +
  • New use-cases
  • +
  • Efficient demos
  • +
+
+
+ + SECURITY AUDIT COMPANIES + +
    +
  • New “privacy audit” category
  • +
  • Significant growth of audited projects.
  • +
+
+
+
+
+ + DEVELOPERS + +
    +
  • More devs building privacy
  • +
  • More sustainable projects.
  • +
+
+
+ + STARTUPERS + +
    +
  • More privacy-oriented projects
  • +
  • Longer runway
  • +
+
+
+
+
+
diff --git a/src/components/AboutWidget.astro b/src/components/AboutWidget.astro new file mode 100644 index 00000000..dbdc3be7 --- /dev/null +++ b/src/components/AboutWidget.astro @@ -0,0 +1,125 @@ +--- +import * as config from "../config.yaml"; +import core from "../core.json"; + +interface Props { + variant?: "about" | "membership"; +} +const { variant = "about" } = Astro.props; +--- + +
+
+
+

+ together we are stronger - support us via membership +

+
+
+
+
+
+ INDIVIDUAL + Become an integral part of our community! Join us with building + privacy platform we all need. +
+
    +
  • You are supporting good thing!
  • +
  • Free access to all our events
  • +
  • "Privacy Survival Kit" swag bundle
  • +
  • Access to our researches and special group chats
  • +
  • Deals from our partners
  • +
  • Voting rights in our association
  • +
+
+
+ Price + + €100 / Year + +
+ +
+
+ +
+
+
+
+ ORGANISATION + Instead of proposing partnerships for every event and/or + initiative,
we decided to implement a continuous membership + approach. +
+
    +
  • Visibility at our Summits, Meetups & Hackathons
  • +
  • Free Tickets & discounts for your partners
  • +
  • + Finding right builders for your beta, product to test or develop +
  • +
  • Speaking and mentoring opportunities
  • +
  • Raise awareness within specific inputs
  • +
  • Engage target audience
  • +
+
+
+ Price + + Variable tiers + +
+ +
+
+ +
+
+
+ + + + + Or if you like our ideas and community you can privately donate via Ethereum + / Bitcoin / Monero or support us on Gitcoin Grants + + + +
diff --git a/src/components/OrganisationTableDesktop.astro b/src/components/OrganisationTableDesktop.astro new file mode 100644 index 00000000..12d5efc2 --- /dev/null +++ b/src/components/OrganisationTableDesktop.astro @@ -0,0 +1,187 @@ +--- +import * as config from "../config.yaml"; +import core from "../core.json"; +--- + +
+
+
+

CATEGORY

+
+
+

Objective

+
+
+

Details

+
+
+

More info

+
+
+
+
+

Events

+
+
+ { + config.organisation.table.events.map((item) => ( +

+ {item.objective} +

+ )) + } +
+
+ { + config.organisation.table.events.map((item) => ( +

+ {item.details} +

+ )) + } +
+
+ { + config.organisation.table.events.map((item) => ( + + + + )) + } +
+
+
+
+

RESEARCH

+
+
+ { + config.organisation.table.research.map((item) => ( +

+ {item.objective} +

+ )) + } +
+
+ { + config.organisation.table.research.map((item) => ( +

+ {item.details} +

+ )) + } +
+
+ { + config.organisation.table.research.map((item) => + item.url ? ( + + + + ) : ( +

+   +

+ ) + ) + } +
+
+
+
+

TOOLS

+
+
+ { + config.organisation.table.tools.map((item) => ( +

+ {item.objective} +

+ )) + } +
+
+ { + config.organisation.table.tools.map((item) => ( +

+ {item.details} +

+ )) + } +
+
+ { + config.organisation.table.tools.map((item) => ( + + + + )) + } +
+
+
+
+

education

+
+
+ { + config.organisation.table.education.map((item) => ( +

+ {item.objective} +

+ )) + } +
+
+ { + config.organisation.table.education.map((item) => ( +

+ {item.details} +

+ )) + } +
+
+ { + config.organisation.table.education.map((item) => + item.url ? ( + + + + ) : ( +

+   +

+ ) + ) + } +
+
+
diff --git a/src/components/OrganisationTableMobile.astro b/src/components/OrganisationTableMobile.astro new file mode 100644 index 00000000..9f12616a --- /dev/null +++ b/src/components/OrganisationTableMobile.astro @@ -0,0 +1,81 @@ +--- +import * as config from "../config.yaml"; +import core from "../core.json"; +--- + +
+
+

EVENTS

+
+ { + config.organisation.table.events.map((item) => ( + <> +

{item.objective}

+

{item.details}

+ {item.url && ( + + + + )} + + )) + } +
+
+
+

RESEARCH

+
+ { + config.organisation.table.research.map((item) => ( + <> +

{item.objective}

+

{item.details}

+ {item.url && ( + + + + )} + + )) + } +
+
+
+

tools

+
+ { + config.organisation.table.tools.map((item) => ( + <> +

{item.objective}

+

{item.details}

+ {item.url && ( + + + + )} + + )) + } +
+
+
+

education

+
+ { + config.organisation.table.education.map((item) => ( + <> +

{item.objective}

+

{item.details}

+ {item.url && ( + + + + )} + + )) + } +
+
+
diff --git a/src/config.yaml b/src/config.yaml index 36cace2e..c19564b7 100644 --- a/src/config.yaml +++ b/src/config.yaml @@ -22,6 +22,9 @@ header: link: news - name: Docs link: docs + - name: Membership + link: membership + url: /membership #- name: Manifesto # url: /manifesto rightMenu: @@ -53,10 +56,18 @@ hero: text: | Privacy advocates worldwide are coming together to discuss how to mainstream privacy within the Web3 industry. So it will become a cultural phenomenon embodying both decentralisation & anti-surveillance capitalism practices. landing: + merch: | + To make humans gain control over their privacy by utilizing Web3 stack. So privacy would become a cultural phenomena & active lifestyle. + research: | + We cultivate a culture of privacy in web3 making data free and public. 
Enjoy our researches, infographics, annual reports, tools, newsletter, guidelines & more. mission: | - To make humans gain control over their privacy by utilizing Web3 stack. So privacy would become a conscious choice (active lifestyle) & be accessible to everyone worldwide. + Empower individuals to take control of their digital privacy.

- Privacy advocates worldwide are coming together to discuss how to mainstream privacy within the Web3 industry. So it will become a cultural phenomenon embodying both decentralisation. + 
We envision a world where privacy is a conscious, actively chosen lifestyle, accessible to everyone, everywhere. To turn this into reality, we need to unite our efforts and carve out a path toward a more equitable, decentralized and privacy-respecting digital space. + event: | + Our aim with gatherings is to build understanding and solidarity between different groups of interests, cultures, states, chains, ecosystems and backgrounds. +

+ 

We aggregate web3 & non-tech people, builders, researchers, philosophers, lawyers, policymakers, hacktivists, key players, local communities and the general public. topics: - Identity - Private Messaging @@ -109,3 +120,141 @@ landing: ico: forum community: | Our aim with gatherings is to bring together key players, different perspectives, skills and visions. We aggregate tech and non tech people, key players and contributors, builders, researchers, philosophers, lawyers, policymakers, activists, local communities and general public. +organisation: + paragraphs: + - heading: Events + subheading: + text: + - subtext: + items: + - "10M annual reach (socials, media, events)" + - "Visibility - before, during and after - at our Summits, Meetups & Hackathons (Logo, Merch, Talks, Workshops, Recordings)" + - "Free Tickets for team and discounts for your partners" + - "Finding right builders for your beta, product to test or develop" + - "Speaking and mentoring opportunities" + - "Panel curation upon specific needs" + - "Bigger outreach and Impact (we bring your brand, your team and developing needs around every event we attend 
(ETHDam, ETHRome, ETHBrno, ETHBarcelona, BlackSky…)" + - "50 contributors (beyond core team)" + - heading: Research + subheading: We carry on research delivering essays, reports, infographics, github repos, decks, guidelines + text: + - subtext: Brand + items: + - "Raise awareness within specific inputs (category, specs, market)" + - "Empower trust (product of choice, Tier1 category service, top of mind)" + - "Logo at the end of every report" + - "Use report’s results stating you are supporting privacy research (positive image)" + - "Underline your role in the market" + - subtext: Growth + items: + - "Engage target audience via using (your and others) experts opinion" + - "Additional marketing content from infographics to charts" + - "Third party validation of your specific claims (if they are attested)" + - "Community building content" + - "Priority in our publications and newsletter" + - "Tailor made articles based upon specific needs" + + - heading: Explorer + subheading: 3in1 a ranking system, database & comprehensive profiling to empower the general public in discerning the privacy levels, security, and reliability of Web3 projects. + text: + - subtext: Brand + items: + - "Raise awareness within the category (gain reach)" + - "Increase trust by building great profile" + - "Improve trust by receiving a third party validation" + - "Visibility through benchmarks" + + - subtext: Product + items: + - "Increase trial or generate leads by building a transparent profile" + - "Support your releases" + - heading: Financial + subheading: + text: + - subtext: + items: + - "Tax optimization through donation" + + - heading: Other + subheading: + text: + - subtext: + items: + - "Organizing educational seminars for your employees, clients, target audience" + - "Job listings (web, newsletter, socials…)" + - "We transform content you share in conferences into educational material" + - "Special insights on market growth and evolution" + - "Group for company members" + - "Access to special members-only events" + - heading: Tiers + subheading: + text: + - subtext: + items: + - "Membership fee: 7K - 40K EUR / year (depends on tier)" + - "Non-profit membership fee: 1K EUR / year" + + table: + events: + - objective: 6+ Events in different countires + details: | + 1 Summit + 1 Hackathon + 3 Meetups [target outreach: 1000 people IRL] + height: 50 + research: + - objective: Privacy in Ethereum + details: | + The most comprehensive report of privacy + url: /research/ethereum + height: 40 + - objective: Use cases DB update & improve (500 → 700 privacy projects + details: | + Most extensive web3 db of privacy-enhancing solutions + url: /research/ethereum + height: 60 + - objective: Privacy Annual Report (150+ pages) + details: | + Showcase all happenings and achievements of the year (3rd Edition) + url: /research/ethereum + height: 40 + - objective: Privacy Awards + details: | + Annual vote of most popular and interesting privacy projects + url: /research/ethereum + height: 40 + - objective: Week in Privacy + details: | + Newsletter with round-up of the most important privacy news + url: /research/ethereum + height: 40 + - objective: Monthly Infographics & Articles + details: | + Release of useful material for tech & general public + url: /research/ethereum + height: 40 + tools: + - objective: Privacy Explorer V.2 + details: | + 300 services, 5 new categories, improve scoring model + url: /research/ethereum + height: 40 + - objective: Privacy Routing tool (V0.1 release) + details: | + Help users to choose the right service for their transactions + url: /research/ethereum + height: 40 + education: + - objective: Academy + details: | + 101 privacy educational track with our partners + + height: 40 + - objective: Hackathon Curation Pack + details: | + Guidelines to help the builders uderstand actual issues + url: /research/ethereum + height: 40 + - objective: Privacy Guidelines for the public + details: | + + url: /research/ethereum + height: 40 diff --git a/src/core.json b/src/core.json index 2905dc5a..79ad4e52 100644 --- a/src/core.json +++ b/src/core.json @@ -15,8 +15,13 @@ "forum": "https://forum.web3privacy.info", "explorer": "https://explorer.web3privacy.info", "news": "https://news.web3privacy.info", - "telegram": "https://t.me/web3privacynow", - "cfp": "https://cfp.web3privacy.info" + "telegram": "https://t.me/+DMkrxGNeJzYyYzM0", + "cfp": "https://cfp.web3privacy.info", + "signal": "https://signal.group/#CjQKILd3qhOu7_p8OB0bob3bU3Ko0jfgfxm9DK39oK1eiMe_EhA47ns-aCFke2YA3iMnuxqJ", + "projects": "https://docs.web3privacy.info/#our-projects", + "research": "https://web3privacy.info/research/", + "brand":"https://github.com/web3privacy/brand", + "donate":"https://docs.web3privacy.info/donate/" }, "teams": { "core-team": [ diff --git a/src/layouts/base.astro b/src/layouts/base.astro index 1358949d..18c93b3f 100644 --- a/src/layouts/base.astro +++ b/src/layouts/base.astro @@ -1,147 +1,231 @@ --- //import { ViewTransitions } from 'astro:transitions'; -import * as config from '../config.yaml'; -import * as pkg from '../../package.json'; -import core from '../core.json'; -import '../styles/base.css'; -import MetaTags from '../components/MetaTags.astro'; +import * as config from "../config.yaml"; +import * as pkg from "../../package.json"; +import core from "../core.json"; +import "../styles/base.css"; +import MetaTags from "../components/MetaTags.astro"; -const {banner, title, metaTitle, description, image} = Astro.props; +const { banner, title, metaTitle, description, image, subtext, subimage } = + Astro.props; -import cfonts from 'cfonts'; +import cfonts from "cfonts"; function genHeading(str) { - return cfonts.render(str + ' ', { font: '', maxLength: 5000 }, null, null, {width: "5000", height: "5000"}).string; + return cfonts.render(str + " ", { font: "", maxLength: 5000 }, null, null, { + width: "5000", + height: "5000", + }).string; } - --- - - - - - + + + + - - - - - - - -
- {typeof banner === 'object' && -
-
-
- } -
-
-
-
-
- -
- -
- {config.header.rightMenu.map((key) => ( - - ))} -
-
- {banner && typeof banner !== 'object' && -
-
- -
- {config.hero.text} -
- -
-
- } - {!banner && -
-
- {/**/} -
{genHeading(title)}
-
-
- } -
+ + + + + + + +
+ { + typeof banner === "object" && ( +
+
+
+ ) + } +
+
+
+
+
+ +
+ +
+ { + config.header.rightMenu.map((key) => ( + + )) + } +
+
+ { + banner && typeof banner !== "object" && ( +
+
+ +
+ ) + } + { + !banner && ( + <> +
+
+ {/**/} +
+                  
+                    {genHeading(title)}
+                  
+                
+
+
+
+

{subtext}

+
+ + ) + } +
- + -
-
-
- - -
-
- {config.footer.menu.map((item) => ( - - ))} -
-
-
-
-
- - +
+
+
+ + +
+
+ { + config.footer.menu.map((item) => ( + +
+
+
+
+ + diff --git a/src/pages/about.astro b/src/pages/about.astro index a0244b46..82acbadf 100644 --- a/src/pages/about.astro +++ b/src/pages/about.astro @@ -1,38 +1,108 @@ --- - -import BaseLayout from '../layouts/base.astro'; -import * as config from '../config.yaml'; -import core from '../core.json'; -import AboutFooter from '../components/AboutFooter.astro'; - +import BaseLayout from "../layouts/base.astro"; +import * as config from "../config.yaml"; +import core from "../core.json"; +import AboutFooter from "../components/AboutFooter.astro"; +import AboutItemGrid from "../components/AboutItemGrid.astro"; +import AboutWidget from "../components/AboutWidget.astro"; --- - - -
-
- -
+ +
+ -
-
-

Our mission

-
- -
-
-

Topics

-
- {config.landing.topics.map((topic) => ( -
{topic}
- ))} -
-
-
+
+
+
+

Our mission

+ +

how we support privacy in web3

- + +
+
+