23 Commits

Author SHA1 Message Date
5200952b19 first drone test commit
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2025-07-31 17:53:05 -07:00
45fce5fe76 update README and get rid of astro embed 2025-06-16 21:02:43 -07:00
ff14276559 Merge branch 'main' of https://git.coopcloud.tech/RTM/rtm-website 2025-06-13 17:21:34 -07:00
75baf0fdfd update computer icon and add commented out calendar page 2025-06-13 17:21:26 -07:00
05fc21daa2 add details for book club 2025-06-09 20:23:35 -07:00
ed1c796f49 make the computer/people icon numbers not hard coded 2025-05-22 21:01:57 -07:00
449f1abd4d 1. remove ../public from asset links
2. add book club page
2025-05-22 20:36:44 -07:00
e197ed4e28 deployment configs and instructions 2025-05-15 19:57:46 -07:00
4ec3c3eafa polishing! 2025-05-08 19:07:23 -07:00
895501032e Merge branch 'main' of https://git.coopcloud.tech/RTM/rtm-website 2025-05-01 20:51:03 -07:00
e52390db7c movin pictures around 2025-05-01 20:51:01 -07:00
be5bb755c0 format the points of unity 2025-05-01 20:49:06 -07:00
04d3b17d75 fix computer and people icons 2025-05-01 20:44:27 -07:00
8b535c9bae highlight the current page on the navbar 2025-05-01 20:25:42 -07:00
470a4cad86 add the sign up button 2025-05-01 19:59:21 -07:00
217f605041 navbar code cleanup 2025-05-01 19:55:42 -07:00
247d2c9bf2 h1 title styling 2025-05-01 19:55:04 -07:00
c0be749c02 uppercase page names 2025-05-01 19:44:25 -07:00
1cb415f829 Redirect to home page when clicking RTM 2025-05-01 19:26:46 -07:00
a69ef055ac adding tailwind docs to readme 2025-05-01 19:26:05 -07:00
60844a118f making UI work 2025-05-01 19:22:40 -07:00
e4a6dde7ff Merge branch 'main' of https://git.coopcloud.tech/RTM/rtm-website 2025-05-01 18:51:17 -07:00
e0ddafb005 add instruction to readme 2025-04-24 20:32:21 -07:00
23 changed files with 398 additions and 76 deletions

3
.dockerignore Normal file
View File

@ -0,0 +1,3 @@
.DS_Store
node_modules
dist

10
.drone.yml Normal file
View File

@ -0,0 +1,10 @@
kind: pipeline
type: docker
name: test
steps:
- name: greeting
image: alpine
commands:
- echo hello
- echo world

3
.gitignore vendored
View File

@ -22,3 +22,6 @@ pnpm-debug.log*
# jetbrains setting folder
.idea/
# Emacs
*~

11
Dockerfile Normal file
View File

@ -0,0 +1,11 @@
FROM node:lts AS build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:alpine AS runtime
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 8080

View File

@ -1 +1,71 @@
# hello friends !
# hello friends !
# To Run the Website Locally
### Prerequisites
- [Node.js](https://nodejs.org/) version 18.17.1 or higher (we recommend using NVM to manage Node versions)
- [pnpm](https://pnpm.io/) (optional but recommended)
### Step 1: Install correct Node.js version
If you have NVM (Node Version Manager) installed:
```bash
nvm install 18.17.1
nvm use 18.17.1
```
Verify your Node.js version:
```bash
node -v
```
### Step 2: Install dependencies
```bash
npm install
```
### Step 3: Start the development server
```bash
npx astro dev
```
## Tech Stack
- [Astro](https://astro.build/) - The core framework
- [React](https://reactjs.org/) - For interactive components
- [Tailwind CSS](https://tailwindcss.com/) - For styling (find docs [here](https://tailwindcss.com/docs/installation/using-vite))
- [TypeScript](https://www.typescriptlang.org/) - For type safety
# To release a new version
## Build in the docker image (make sure you have Docker installed!)
``` bash
version=<specify-version>
docker build --platform linux/amd64 -t git.coopcloud.tech/rtm/rtmwebsite:$version .
```
## Push the image to gitea registery
Check out [this documentation](https://docs.gitea.com/next/usage/packages/container) for how to login with gitea registery.
``` bash
# If not in the same terminal session, rerun `version=...` line from last step
docker push git.coopcloud.tech/rtm/rtmwebsite:$version
```
## Update recipe
We use a [private recipe](https://git.coopcloud.tech/RTM/rtm-astro-recipe) to deploy this website, you will need to update the version in the compose.yml file and redoploy.
``` bash
abra app undeploy resisttechmonopolies.online
# wait 10 seconds
abra app deploy resisttechmonopolies.online
```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

31
nginx/nginx.conf Normal file
View File

@ -0,0 +1,31 @@
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen 8080;
server_name _;
root /usr/share/nginx/html;
index index.html index.htm;
include /etc/nginx/mime.types;
gzip on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
internal;
}
location / {
try_files $uri $uri/index.html =404;
}
}
}

BIN
public/assets/book-club.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 KiB

BIN
public/assets/calendar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
public/assets/computer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

BIN
public/assets/pihole.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" width="115" height="48"><path fill="#17191E" d="M7.77 36.35C6.4 35.11 6 32.51 6.57 30.62c.99 1.2 2.35 1.57 3.75 1.78 2.18.33 4.31.2 6.33-.78.23-.12.44-.27.7-.42.18.55.23 1.1.17 1.67a4.56 4.56 0 0 1-1.94 3.23c-.43.32-.9.61-1.34.91-1.38.94-1.76 2.03-1.24 3.62l.05.17a3.63 3.63 0 0 1-1.6-1.38 3.87 3.87 0 0 1-.63-2.1c0-.37 0-.74-.05-1.1-.13-.9-.55-1.3-1.33-1.32a1.56 1.56 0 0 0-1.63 1.26c0 .06-.03.12-.05.2Z"/><path fill="url(#a)" d="M7.77 36.35C6.4 35.11 6 32.51 6.57 30.62c.99 1.2 2.35 1.57 3.75 1.78 2.18.33 4.31.2 6.33-.78.23-.12.44-.27.7-.42.18.55.23 1.1.17 1.67a4.56 4.56 0 0 1-1.94 3.23c-.43.32-.9.61-1.34.91-1.38.94-1.76 2.03-1.24 3.62l.05.17a3.63 3.63 0 0 1-1.6-1.38 3.87 3.87 0 0 1-.63-2.1c0-.37 0-.74-.05-1.1-.13-.9-.55-1.3-1.33-1.32a1.56 1.56 0 0 0-1.63 1.26c0 .06-.03.12-.05.2Z"/><path fill="#17191E" d="M.02 30.31s4.02-1.95 8.05-1.95l3.04-9.4c.11-.45.44-.76.82-.76.37 0 .7.31.82.76l3.04 9.4c4.77 0 8.05 1.95 8.05 1.95L17 11.71c-.2-.56-.53-.91-.98-.91H7.83c-.44 0-.76.35-.97.9L.02 30.31Zm42.37-5.97c0 1.64-2.05 2.62-4.88 2.62-1.85 0-2.5-.45-2.5-1.41 0-1 .8-1.49 2.65-1.49 1.67 0 3.09.03 4.73.23v.05Zm.03-2.04a21.37 21.37 0 0 0-4.37-.36c-5.32 0-7.82 1.25-7.82 4.18 0 3.04 1.71 4.2 5.68 4.2 3.35 0 5.63-.84 6.46-2.92h.14c-.03.5-.05 1-.05 1.4 0 1.07.18 1.16 1.06 1.16h4.15a16.9 16.9 0 0 1-.36-4c0-1.67.06-2.93.06-4.62 0-3.45-2.07-5.64-8.56-5.64-2.8 0-5.9.48-8.26 1.19.22.93.54 2.83.7 4.06 2.04-.96 4.95-1.37 7.2-1.37 3.11 0 3.97.71 3.97 2.15v.57Zm11.37 3c-.56.07-1.33.07-2.12.07-.83 0-1.6-.03-2.12-.1l-.02.58c0 2.85 1.87 4.52 8.45 4.52 6.2 0 8.2-1.64 8.2-4.55 0-2.74-1.33-4.09-7.2-4.39-4.58-.2-4.99-.7-4.99-1.28 0-.66.59-1 3.65-1 3.18 0 4.03.43 4.03 1.35v.2a46.13 46.13 0 0 1 4.24.03l.02-.55c0-3.36-2.8-4.46-8.2-4.46-6.08 0-8.13 1.49-8.13 4.39 0 2.6 1.64 4.23 7.48 4.48 4.3.14 4.77.62 4.77 1.28 0 .7-.7 1.03-3.71 1.03-3.47 0-4.35-.48-4.35-1.47v-.13Zm19.82-12.05a17.5 17.5 0 0 1-6.24 3.48c.03.84.03 2.4.03 3.24l1.5.02c-.02 1.63-.04 3.6-.04 4.9 0 3.04 1.6 5.32 6.58 5.32 2.1 0 3.5-.23 5.23-.6a43.77 43.77 0 0 1-.46-4.13c-1.03.34-2.34.53-3.78.53-2 0-2.82-.55-2.82-2.13 0-1.37 0-2.65.03-3.84 2.57.02 5.13.07 6.64.11-.02-1.18.03-2.9.1-4.04-2.2.04-4.65.07-6.68.07l.07-2.93h-.16Zm13.46 6.04a767.33 767.33 0 0 1 .07-3.18H82.6c.07 1.96.07 3.98.07 6.92 0 2.95-.03 4.99-.07 6.93h5.18c-.09-1.37-.11-3.68-.11-5.65 0-3.1 1.26-4 4.12-4 1.33 0 2.28.16 3.1.46.03-1.16.26-3.43.4-4.43-.86-.25-1.81-.41-2.96-.41-2.46-.03-4.26.98-5.1 3.38l-.17-.02Zm22.55 3.65c0 2.5-1.8 3.66-4.64 3.66-2.81 0-4.61-1.1-4.61-3.66s1.82-3.52 4.61-3.52c2.82 0 4.64 1.03 4.64 3.52Zm4.71-.11c0-4.96-3.87-7.18-9.35-7.18-5.5 0-9.23 2.22-9.23 7.18 0 4.94 3.49 7.59 9.21 7.59 5.77 0 9.37-2.65 9.37-7.6Z"/><defs><linearGradient id="a" x1="6.33" x2="19.43" y1="40.8" y2="34.6" gradientUnits="userSpaceOnUse"><stop stop-color="#D83333"/><stop offset="1" stop-color="#F041FF"/></linearGradient></defs></svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="1024" fill="none"><path fill="url(#a)" fill-rule="evenodd" d="M-217.58 475.75c91.82-72.02 225.52-29.38 341.2-44.74C240 415.56 372.33 315.14 466.77 384.9c102.9 76.02 44.74 246.76 90.31 366.31 29.83 78.24 90.48 136.14 129.48 210.23 57.92 109.99 169.67 208.23 155.9 331.77-13.52 121.26-103.42 264.33-224.23 281.37-141.96 20.03-232.72-220.96-374.06-196.99-151.7 25.73-172.68 330.24-325.85 315.72-128.6-12.2-110.9-230.73-128.15-358.76-12.16-90.14 65.87-176.25 44.1-264.57-26.42-107.2-167.12-163.46-176.72-273.45-10.15-116.29 33.01-248.75 124.87-320.79Z" clip-rule="evenodd" style="opacity:.154"/><path fill="url(#b)" fill-rule="evenodd" d="M1103.43 115.43c146.42-19.45 275.33-155.84 413.5-103.59 188.09 71.13 409 212.64 407.06 413.88-1.94 201.25-259.28 278.6-414.96 405.96-130 106.35-240.24 294.39-405.6 265.3-163.7-28.8-161.93-274.12-284.34-386.66-134.95-124.06-436-101.46-445.82-284.6-9.68-180.38 247.41-246.3 413.54-316.9 101.01-42.93 207.83 21.06 316.62 6.61Z" clip-rule="evenodd" style="opacity:.154"/><defs><linearGradient id="b" x1="373" x2="1995.44" y1="1100" y2="118.03" gradientUnits="userSpaceOnUse"><stop stop-color="#D83333"/><stop offset="1" stop-color="#F041FF"/></linearGradient><linearGradient id="a" x1="107.37" x2="1130.66" y1="1993.35" y2="1026.31" gradientUnits="userSpaceOnUse"><stop stop-color="#3245FF"/><stop offset="1" stop-color="#BC52EE"/></linearGradient></defs></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,32 +1,39 @@
import { cn } from "@/lib/utils";
export default function Navbar() {
interface NavbarProps {
activePage?: string;
}
export default function Navbar({ activePage = "" }: NavbarProps) {
return (
<>
<div className={cn("flex flex-row justify-between pb-8 pl-4 pr-4 pt-8")}>
<div>
<strong className={cn("sm:text-2xl md:text-4xl")}>
Resist Tech Monopolies
<a
className={cn(
activePage === "Home" && "border-b-2 border-black-500",
)}
href="/">Resist Tech Monopolies</a>
</strong>
</div>
<strong className={cn("sm:text-1xl flex gap-4 md:text-4xl")}>
<strong className={cn("sm:text-1xl flex gap-10 md:text-4xl")}>
<a
href="/src/pages/GetInvolved.astro"
className={cn("text-blue-500")}
>
Get Involved
</a>
{/* <Separator orientation="vertical" className="w-5" /> */}
<a
href="/src/pages/PointsOfUnity.astro"
className={cn("text-green-500")}
href="/PointsOfUnity/"
className={cn(
"text-green-500",
activePage === "PointsOfUnity" && "border-b-2 border-green-500",
)}
>
Points of Unity
</a>
{/* <Separator orientation="vertical" className="w-5" /> */}
<a
href="/src/pages/WhatWereWorkingOn.astro"
className={cn("text-red-500")}
href="/WhatWereWorkingOn/"
className={cn(
"text-red-500",
activePage === "WhatWereWorkingOn" && "border-b-2 border-red-500",
)}
>
What We're Working On
</a>
@ -34,30 +41,18 @@ export default function Navbar() {
</div>
<div className={cn("flex flex-row justify-between pb-8")}>
{[
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
].map(() => (
<>
<a
href="https://www.flaticon.com/free-icons/computer"
title="computer icons"
>
<img
src="/computer.png"
alt="computer icon"
width="30"
height="30"
<div className="w-full grid grid-flow-col auto-cols-[76px] gap-8">
{Array.from({ length: 20 }).map((_, index) => (
<div key={index} className="flex justify-center">
<img
src={index % 2 === 0 ? "/assets/computer.png" : "/assets/people.png"}
alt={index % 2 === 0 ? "computer icon" : "people icon"}
width="30"
height="30"
/>
</a>
<a
href="https://www.flaticon.com/free-icons/peopler"
title="people icons"
>
<img src="/people.png" alt="people icon" width="30" height="30" />
</a>
</>
))}
</div>
))}
</div>
</div>
</>
);

View File

@ -1,17 +1,20 @@
---
import Footer from "@/components/Footer";
import Navbar from "@/components/Navbar";
import Layout from "@/layouts/Layout.astro";
import Navbar from "../components/Navbar";
import Footer from "../components/Footer";
import Layout from "../layouts/Layout.astro";
import "../styles/globals.css";
---
<Layout>
<main class="flex min-h-screen flex-col justify-between">
<div>
<Navbar />
<div class="pl-4">get involved!</div>
<Navbar client:load activePage="GetInvolved" />
<div class="pl-4 pr-4">
<h1 class="text-3xl font-semibold">Get Involved</h1>
</div>
</div>
<Footer />
</main>
</Layout>

View File

@ -1,24 +1,54 @@
<h1>Points of Unity</h1>
<p>
We situate ourselves in our context - as Seattle residents and as users and
creators of the technologies we aim to resist. We are seeing long-spanning
rise of fascism within all levels of governance, from Seattle city council to
national governments here and abroad. In parallel is the increasing power of
tech companies over our lives through surveillance and the provisioning of
everyday needs, from employment to how we get our internet utilities in the
first place. There are rising income disparities across the nation, but also
more specifically across everyone who can be considered a "tech worker": from
a CEO to a software engineer to a contractor to a child slave mining cobalt in
the Congo. Technology contributes to gentrification both through the
tech-enabled financialization of real estate as well as the gentrifying waves
of tech workers moving into cities. Increased technical sophisication of
militaries and carceral systems have created the first "AI genocide" in
Palestine; increased militarization of borders such as the US-Mexico and the
surveillance of migrants; increased police brutality worldwide, all
disparately impacting people of the global majority. All of these crises are
enabled and worsened by technology companies. As tech workers of various kinds
living in the imperial core, on stolen Coast Salish land covered by the broken
Treaty of Point Elliot of 1855, we understand how our labor is contributing -
directly or indirectly - to these oppressions, and seek to use our skills
towards more liberatory ends.
</p>
---
import Navbar from "../components/Navbar";
import Footer from "../components/Footer";
import Layout from "../layouts/Layout.astro";
import "../styles/globals.css";
---
<Layout>
<main class="flex min-h-screen flex-col justify-between">
<div>
<Navbar client:load activePage="PointsOfUnity" />
<div class="pl-4 pr-4">
<h1 class="text-3xl font-semibold">Points of Unity</h1>
<p class="mb-4">
We situate ourselves in our context - as Seattle residents and as
users and creators of the technologies we aim to resist. We are seeing
a long-spanning rise of fascism within all levels of governance, from
Seattle city council to national governments here and abroad.
</p>
<p class="mb-4">
In parallel is the increasing power of tech companies over our lives
through surveillance and the provisioning of everyday needs, from
employment to how we get our internet utilities in the first place.
There are rising income disparities across the nation, but also more
specifically across everyone who can be considered a "tech worker":
from a CEO to a software engineer to a contractor to a child slave
mining cobalt in the Congo.
</p>
<p class="mb-4">
Technology contributes to gentrification both through the tech-enabled
financialization of real estate as well as the gentrifying waves of
tech workers moving into cities. Increased technical sophisication of
militaries and carceral systems have created the first "AI genocide"
in Palestine; increased militarization of borders such as the
US-Mexico and the surveillance of migrants; increased police brutality
worldwide, all disparately impacting people of the global majority.
</p>
<p class="mb-4">
All of these crises are enabled and worsened by technology companies.
As tech workers of various kinds living in the imperial core, on
stolen Coast Salish land covered by the broken Treaty of Point Elliot
of 1855, we understand how our labor is contributing - directly or
indirectly - to these oppressions, and seek to use our skills towards
more liberatory ends.
</p>
</div>
</div>
<Footer />
</main>
</Layout>

View File

@ -1,2 +1,71 @@
<h1>What We're Working On</h1>
<p>Pihole Workshop</p>
---
import Navbar from "../components/Navbar";
import Footer from "../components/Footer";
import Layout from "../layouts/Layout.astro";
import "../styles/globals.css";
---
<Layout>
<main class="flex min-h-screen flex-col justify-between">
<div>
<Navbar client:load activePage="WhatWereWorkingOn" />
<div class="pl-4 pr-4">
<h1 class="pb-4 pt-4 text-3xl font-semibold">What We're Working On</h1>
<div class="flex flex-row gap-8">
<!-- <div class="justify-items-center">
<img
src="/assets/calendar.png"
alt="stack of books"
width="250"
class="border pb-4"
/>
<a
href="/WhatWereWorkingOnPages/Calendar/"
class="underline decoration-solid">Calendar</a
>
</div> -->
<div class="justify-items-center">
<img
src="/assets/pihole.jpeg"
alt="pihole parts"
width="250"
class="border pb-4"
/>
<a
href="/WhatWereWorkingOnPages/Pihole/"
class="underline decoration-solid">Pihole Workshop</a
>
</div>
<div class="justify-items-center">
<img
src="/assets/this-website.png"
alt="screenshot of this website including screenshot of this website including screenshot of this website..."
width="250"
class="border pb-4"
/>
<a href="/" class="underline decoration-solid">This website!</a>
</div>
<div class="justify-items-center">
<img
src="/assets/book-club.png"
alt="stack of books"
width="250"
class="border pb-4"
/>
<a
href="/WhatWereWorkingOnPages/BookClub/"
class="underline decoration-solid">Book Club</a
>
</div>
</div>
</div>
</div>
<Footer />
</main>
</Layout>

View File

@ -0,0 +1,48 @@
---
import Navbar from "../../components/Navbar";
import Footer from "../../components/Footer";
import Layout from "../../layouts/Layout.astro";
import "../../styles/globals.css";
---
<Layout>
<main class="flex min-h-screen flex-col justify-between">
<div>
<Navbar client:load activePage="WhatWereWorkingOn" />
<div class="pl-4 pr-4">
<h1 class="pb-4 pt-4 text-3xl font-semibold">Book Club</h1>
<p>Join our book club where we read and discuss books about technology, power, and resistance.</p>
<div class="flex flex-col gap-8">
<div class="border p-6 rounded-lg">
<h2 class="text-lg font-semibold mb-4 underline">Current Book</h2>
<div class="flex flex-col gap-4">
<div class="flex items-center gap-4">
<p class="italic font-semibold">Common Circuits</p>
<p class="text-sm text-gray-500">by Luis Felipe R. Murillo</p>
</div>
<p class="text-purple-600">Next meeting: 6/27</p>
<p class="text-sm">Reading for next meeting: Introduction + Chapter 1 + Chapter 2</p>
</div>
</div>
<div class="border p-6 rounded-lg">
<h2 class="text-2xl font-semibold mb-4">Past Books</h2>
<div class="flex flex-col gap-4">
<ul class="list-disc pl-6">
<li>Internet for the People</li>
</ul>
</div>
</div>
<div class="border p-6 rounded-lg">
<a href="/" class="text-blue-500 hover:text-blue-700">
<h2 class="text-2xl font-semibold mb-4">Join Us</h2>
</a>
</div>
</div>
</div>
</div>
<Footer />
</main>
</Layout>

View File

@ -0,0 +1,21 @@
---
import Navbar from "../../components/Navbar";
import Footer from "../../components/Footer";
import Layout from "../../layouts/Layout.astro";
import "../../styles/globals.css";
---
<Layout>
<main class="flex min-h-screen flex-col justify-between">
<div>
<Navbar client:load activePage="Calendar" />
<div class="pl-4 pr-4">
<h1 class="pb-4 pt-4 text-3xl font-semibold">Calendar</h1>
<div class="flex flex-col gap-4">
<p class="mb-4">See what we're doing next!</p>
</div>
</div>
</div>
<Footer />
</main>
</Layout>

View File

@ -0,0 +1,19 @@
---
import Navbar from "../../components/Navbar";
import Footer from "../../components/Footer";
import Layout from "../../layouts/Layout.astro";
import "../../styles/globals.css";
---
<Layout>
<main class="flex min-h-screen flex-col justify-between">
<div>
<Navbar />
<div class="pl-4 pr-4">
<h1 class="text-3xl font-semibold">Pihole</h1>
</div>
</div>
<Footer />
</main>
</Layout>

View File

@ -8,15 +8,26 @@ import "@/styles/globals.css";
<Layout>
<main class="flex min-h-screen flex-col justify-between">
<div>
<Navbar />
<Navbar client:load activePage="Home" />
<div class="pl-4 pr-4">
<div class="pl-4 pr-4 text-xl leading-[2]">
<p>
Do you believe technology can and should be used for good? Do you
think a democratic internet could liberate us? Join us!
</p>
<p>We share this vision, and we want to work together to achieve it.</p>
<div class="my-8">
<a
href="https://shlink.resisttechmonopolies.online/HNrZG"
class="px-6 py-3 bg-[#80aaff] text-white font-semibold rounded-md hover:bg-[#6090e0] transition-colors"
target="_blank"
rel="noopener noreferrer"
>
Fill Out Our Interest Form!
</a>
</div>
</div>
</div>