87 Commits

Author SHA1 Message Date
c13049aa00 Make project images clickable links, make pet calendar alt text more equitable 2026-05-19 21:22:19 -07:00
a2bb2ef92b Enable individual zine sharing by link
Some checks failed
continuous-integration/drone/push Build is failing
2026-05-07 20:23:10 -07:00
4753715e9f add signal 201 2026-05-07 19:51:13 -07:00
c499d0e2d3 allow zooming when reading zines 2026-03-30 20:58:57 -07:00
B
19317d3572 Merge pull request 'fixing out of order pages' (#5) from strawberry/discotech-101-pages-out-of-order into main
Reviewed-on: #5
2026-03-17 02:21:04 +00:00
058550fec3 fixing out of order pages 2026-03-16 19:19:54 -07:00
34d1da02d0 Merge pull request 'Adding Signal 101 Zine and Making Some Capitalization/Naming Fixes for Other Zines' (#4) from strawberry/signal-101-zine into main
Reviewed-on: #4
2026-02-26 04:58:24 +00:00
e523c1a02c updates to zine data file 2026-02-25 20:56:16 -08:00
2c3664d767 signal 101 printable 2026-02-25 20:55:40 -08:00
9a203563b5 rename printable 2026-02-25 20:55:01 -08:00
e83af716ac rename De-monopoly Cheatsheet to Brief Notes from a De-Monopoly DiscoTech 2026-02-25 20:54:23 -08:00
0f12e1c0dc adding signal 101 zine pages 2026-02-25 20:52:21 -08:00
0ea1a26182 add a new zine 2026-02-02 15:56:16 -08:00
bd232caade 1. fix copyleft year and color in darkmode 2. remove duplicate ourprojects title 2026-01-26 21:48:58 -08:00
cbcd8e7bed remove duplicate entries in the projects page 2026-01-21 08:30:13 -08:00
c8517a4488 Change printable zine permission so they can be downloaded; rename flipbookviewer to zineviewer 2026-01-21 08:20:25 -08:00
6559bfae33 Fixing all the stuff I effed up in rebasing 2026-01-19 22:44:08 -08:00
1fad0f2ff1 pet calendar updates 2026-01-19 22:44:08 -08:00
91aee1ea49 Add all the tutorial links babyyyy 2026-01-19 22:44:08 -08:00
e9c22e0dd2 Create pet calendar page 2026-01-19 22:44:08 -08:00
c4df0bf232 rename ../ourprojectspages/... to just .../projects/... in the page route 2026-01-19 22:44:08 -08:00
70437d2b31 add zines to our projects 2026-01-19 22:44:08 -08:00
e9583bae4e update bookclub page; rename What Were Working On to Our Projects in the code 2026-01-19 22:44:08 -08:00
8321986c90 Merge pull request 'Create pet calendar page' (#3) from js/petcal into main
Reviewed-on: #3
2026-01-20 06:42:35 +00:00
392dc2d44f Merge branch 'main' into js/petcal 2026-01-19 22:13:06 -08:00
dde00997e6 Fixing all the stuff I effed up in rebasing 2026-01-19 21:47:23 -08:00
64939c8b65 pet calendar updates 2026-01-19 21:37:30 -08:00
6d6ef3dbf3 Add all the tutorial links babyyyy 2026-01-19 21:37:13 -08:00
9b828168f7 Create pet calendar page 2026-01-19 21:36:10 -08:00
f8a808f1e4 rename ../ourprojectspages/... to just .../projects/... in the page route 2026-01-19 21:35:51 -08:00
4a2cf1e983 add zines to our projects 2026-01-19 21:35:34 -08:00
234d93c99f update bookclub page; rename What Were Working On to Our Projects in the code 2026-01-19 21:34:04 -08:00
6d2ce212ae Update Our Points of Unity 2026-01-19 21:32:54 -08:00
c381a1605b make navbar buttons less dark in light mode 2026-01-19 21:32:54 -08:00
3c525cfa82 1. Rename What we're working on to our projects 2. make them look clickable 2026-01-19 21:32:54 -08:00
f4118f5c91 remove stale alternatives 2026-01-19 21:32:54 -08:00
ae163746e7 Add all the tutorial links babyyyy 2026-01-19 21:22:02 -08:00
5cef42d976 rename ../ourprojectspages/... to just .../projects/... in the page route 2026-01-18 22:38:15 -08:00
041e60295d add zines to our projects 2026-01-18 21:56:55 -08:00
64fedb4050 update bookclub page; rename What Were Working On to Our Projects in the code 2026-01-18 21:02:11 -08:00
d892188c81 Update Our Points of Unity 2026-01-18 20:33:54 -08:00
f571315b8c make navbar buttons less dark in light mode 2026-01-15 21:18:37 -08:00
b8991c6f2c Create pet calendar page 2026-01-15 21:10:16 -08:00
2e01e39150 1. Rename What we're working on to our projects 2. make them look clickable 2026-01-15 20:50:38 -08:00
ad998497aa remove stale alternatives 2026-01-15 20:31:54 -08:00
2d2bf06055 Merge pull request 'updating readme with deployment info' (#2) from strawberry/readme-deployment-info-update into main
Reviewed-on: #2
Reviewed-by: ammaratef45 <ammaratef45@proton.me>
2025-10-17 04:22:59 +00:00
fe5f0ca2ef addressing feedback 2025-10-16 21:22:14 -07:00
1e4f2add82 adding instructions for clone of sootie-config 2025-10-14 12:18:01 -07:00
428e1a7ce2 updating readme with deployment info 2025-10-14 12:12:01 -07:00
16879ca4fc adding discussion guide to book club 2025-10-13 22:33:46 -07:00
5f69492ca7 adjusting book club pic width 2025-10-13 20:12:52 -07:00
6a9c18f784 add details to readme 2025-10-13 19:52:16 -07:00
344b2fd8f9 update version to 0.0.8 2025-10-13 19:17:42 -07:00
0dd6b2bb82 fixing horizontal sizing issue in navbar 2025-10-09 19:54:42 -07:00
0c663b03da updating book club page 2025-10-09 19:52:03 -07:00
b6b0fac277 update README with deployment instruction 2025-09-01 15:02:50 -07:00
52538643fd update tags 2025-09-01 13:31:39 -07:00
828c779c57 strike through big tech option 2025-09-01 13:26:42 -07:00
64be0a4ea6 remove this website from what we are working on + add alternatives page 2025-09-01 13:17:24 -07:00
66c56b0fd3 add alt page 2025-08-19 16:08:26 -07:00
00d9e92e47 update to 0.0.6 version 2025-07-31 22:10:29 -07:00
a64d2b32cb update version to 0.0.3 2025-07-31 21:56:41 -07:00
dbff57eda1 add a heart symbol to points of unity 2025-07-31 21:53:41 -07:00
4bcaba420d add build badge 2025-07-31 21:45:32 -07:00
602037c4df add .drone.yml 2025-07-31 21:40:50 -07:00
98e69d80f8 update README and get rid of astro embed 2025-06-16 21:02:43 -07:00
8db08b091b Merge branch 'main' of https://git.coopcloud.tech/RTM/rtm-website 2025-06-13 17:21:34 -07:00
a59abe9e61 update computer icon and add commented out calendar page 2025-06-13 17:21:26 -07:00
73c5743818 add details for book club 2025-06-09 20:23:35 -07:00
666cea39d9 make the computer/people icon numbers not hard coded 2025-05-22 21:01:57 -07:00
b7c7fb9a6f 1. remove ../public from asset links
2. add book club page
2025-05-22 20:36:44 -07:00
01da8eb6ed deployment configs and instructions 2025-05-15 19:57:46 -07:00
695bb40ef8 polishing! 2025-05-08 19:07:23 -07:00
4da3e02d1d Merge branch 'main' of https://git.coopcloud.tech/RTM/rtm-website 2025-05-01 20:51:03 -07:00
6f075b5280 movin pictures around 2025-05-01 20:51:01 -07:00
11d17706a7 format the points of unity 2025-05-01 20:49:06 -07:00
fe96e90ba9 fix computer and people icons 2025-05-01 20:44:27 -07:00
b2f75f203f highlight the current page on the navbar 2025-05-01 20:25:42 -07:00
aafed46359 add the sign up button 2025-05-01 19:59:21 -07:00
1c2c51761a navbar code cleanup 2025-05-01 19:55:42 -07:00
24ad35ff28 h1 title styling 2025-05-01 19:55:04 -07:00
b6472fd57d uppercase page names 2025-05-01 19:44:25 -07:00
ce1b9ad91b Redirect to home page when clicking RTM 2025-05-01 19:26:46 -07:00
4a520d412c adding tailwind docs to readme 2025-05-01 19:26:05 -07:00
43db3343aa making UI work 2025-05-01 19:22:40 -07:00
dec175fe89 Merge branch 'main' of https://git.coopcloud.tech/RTM/rtm-website 2025-05-01 18:51:17 -07:00
e12dd81a7a add instruction to readme 2025-04-24 20:32:21 -07:00
17 changed files with 224 additions and 55 deletions

View File

@ -55,7 +55,7 @@ version=<specify-version>
docker build --platform linux/amd64 -t git.coopcloud.tech/rtm/rtmwebsite:$version .
```
## Push the image to gitea registry
## 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.
@ -66,19 +66,63 @@ docker push git.coopcloud.tech/rtm/rtmwebsite:$version
At [our co-op cloud's packages site](https://git.coopcloud.tech/RTM/-/packages), click on "rtmwebsite" and check that the version mentioned is the version you specified!
## Deploy changes to resisttechmonopolies.online
## Update recipe
We use coop cloud tooling [private recipe](https://git.coopcloud.tech/RTM/rtm-astro-recipe) to deploy this website to our [fleet](https://git.coopcloud.tech/RTM/rtm-config) of lil cat-named machines.
We use a [private recipe](https://git.coopcloud.tech/RTM/rtm-astro-recipe) to deploy this website. This step needs Wireguard to be activated (download Wireguard and ask Sootie's owner to create a config for you and give you Docker permissions). The following examples will assume your name in Sootie's config is "blueberry"!
Read the "Fleet Setup and access" collectives page on our RTM nextcloud to get the `rtm-config` repo set up with the `rtm-astro-recipe` submodule and install the `abra` command line tool!
You will need to have wget (`brew install wget` on mac) and [abra](https://docs.coopcloud.tech/abra/) installed.
Then, in your `rtm-config` repo update the RTM website image version to the one you just built and published by running:
Create an SSH key to use with Sootie with the following command. Take note of the file where you save the key. The following examples will assume it is saved to `rtm` and that the `.ssh` directory is in your home directory (which you can find with the command `echo $HOME`).
``` bash
$ abra app config resisttechmonopolies.online # Change VERSION to the docker image you just pushed
$ abra app deploy -f resisttechmonopolies.online # Re-deploy the RTM website, now with your changes!
$ git add abra/servers/laylotta.resisttechmonopolies.online/resisttechmonopolies.online
$ git commit -m 'Updated website to x.x.x' # Publish this change to the rtm-config repo either via direct commit or a PR
```ssh-keygen -t ed25519```
Run the following commands to install the SSH key to Sootie as an authorized key:
```
ssh-copy-id -i $HOME/.ssh/rtm.pub blueberry@resisttechmonopolies.online
ssh -i $HOME/.ssh/rtm 'blueberry@resisttechmonopolies.online'
```
Done! Thank you for your contributions 🏋️⚡📖!
In the `$HOME/.ssh/config` file (which you may have to create if it does not exist), paste the following:
```
Host resisttechmonopolies.online
Hostname resisttechmonopolies.online
User blueberry
UseKeychain yes
IdentityFile ~/.ssh/rtm
```
You should now be able to SSH into Sootie with just the command `ssh resisttechmonopolies.online`
Run the following command (outside of the terminal in which you ran ssh in the previous step)
```abra server add resisttechmonopolies.online```
Clone the `sootie-config` repo into your `$HOME/.abra/servers/resisttechmonopolies.online` directory:
``` bash
git clone https://git.coopcloud.tech/RTM/sootie-config.git .
# DON'T FORGET THE . AT THE END OF THE COMMAND
```
Clone the `rtm-astro-recipe` repo into your `$HOME/.abra/recipes` directory:
```git clone https://git.coopcloud.tech/RTM/rtm-astro-recipe.git```
Update the version number to the latest in
``` bash
.abra/servers/resisttechmonopolies.online/resisttechmonopolies.online.env
```
Then
``` bash
abra app undeploy resisttechmonopolies.online
# wait 10 seconds
abra app deploy resisttechmonopolies.online
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

View File

@ -0,0 +1,40 @@
import { useEffect, useState } from "react";
import { Check, Share2 } from "lucide-react";
import { Button } from "../ui/button";
interface ShareZineButtonProps {
zineId: string;
}
export function ShareZineButton({ zineId }: ShareZineButtonProps) {
const [copied, setCopied] = useState(false);
useEffect(() => {
if (!copied) return;
const timer = setTimeout(() => setCopied(false), 1500);
return () => clearTimeout(timer);
}, [copied]);
const handleClick = async (e: React.MouseEvent) => {
e.stopPropagation();
const url = `${window.location.origin}/projects/zines/${zineId}`;
await navigator.clipboard.writeText(url);
setCopied(true);
};
return (
<Button variant="outline" size="sm" onClick={handleClick}>
{copied ? (
<>
<Check />
Copied!
</>
) : (
<>
<Share2 />
Share
</>
)}
</Button>
);
}

View File

@ -1,6 +1,7 @@
import { Download } from "lucide-react";
import type { Zine } from "../../data/zines";
import { Button } from "../ui/button";
import { ShareZineButton } from "./ShareZineButton";
interface ZineCardProps {
zine: Zine;
@ -46,6 +47,7 @@ export function ZineCard({ zine, onClick }: ZineCardProps) {
Printable
</a>
</Button>
<ShareZineButton zineId={zine.id} />
</div>
</div>
);

View File

@ -45,6 +45,7 @@ export function ZineGrid() {
<ZineViewer
pages={selectedZine.pages}
title={selectedZine.title}
zineId={selectedZine.id}
/>
)}
</DialogContent>

View File

@ -2,6 +2,7 @@ import React, { useRef, useState, useCallback, forwardRef, useEffect } from "rea
import HTMLFlipBook from "react-pageflip";
import { ChevronLeft, ChevronRight, ZoomIn, ZoomOut, Minimize2 } from "lucide-react";
import { Button } from "../ui/button";
import { ShareZineButton } from "./ShareZineButton";
interface PageProps {
src: string;
@ -25,13 +26,14 @@ Page.displayName = "Page";
interface ZineViewerProps {
pages: string[];
title: string;
zineId?: string;
}
const MIN_ZOOM = 1;
const MAX_ZOOM = 2.5;
const ZOOM_STEP = 0.5;
export function ZineViewer({ pages, title }: ZineViewerProps) {
export function ZineViewer({ pages, title, zineId }: ZineViewerProps) {
const flipBookRef = useRef<any>(null);
const [currentPage, setCurrentPage] = useState(0);
const totalPages = pages.length;
@ -153,6 +155,7 @@ export function ZineViewer({ pages, title }: ZineViewerProps) {
<Minimize2 className="h-4 w-4" />
</Button>
)}
{zineId && <ShareZineButton zineId={zineId} />}
</div>
<div

View File

@ -93,4 +93,21 @@ export const zines: Zine[] = [
],
printablePdf: "/assets/zines/signal-101/printable.pdf",
},
{
id: "signal-201",
title: "Signal 201",
description: "Advanced usage of signal",
coverImage: "/assets/zines/signal-201/cover.jpg",
pages: [
"/assets/zines/signal-201/cover.jpg",
"/assets/zines/signal-201/page-1.jpg",
"/assets/zines/signal-201/page-2.jpg",
"/assets/zines/signal-201/page-3.jpg",
"/assets/zines/signal-201/page-4.jpg",
"/assets/zines/signal-201/page-5.jpg",
"/assets/zines/signal-201/page-6.jpg",
"/assets/zines/signal-201/page-7.jpg",
],
printablePdf: "/assets/zines/signal-201/printable.pdf",
},
];

View File

@ -27,66 +27,64 @@ import "../styles/globals.css";
</div> -->
<div class="justify-items-center">
<img
src="/assets/book-club.jpg"
alt="stack of books"
width="280"
class="border"
/>
<a
href="/projects/bookclub/"
class="underline decoration-solid">Book Club</a
>
<a href="/projects/bookclub/">
<img
src="/assets/book-club.jpg"
alt="stack of books"
width="280"
class="border"
/>
<p class="underline decoration-solid">Book Club</p>
</a>
</div>
<div class="justify-items-center">
<img
<a href="/projects/alternatives/">
<img
src="/assets/computer.png"
alt="computer"
width="250"
class="border"
/>
<a href="/projects/alternatives/" class="underline decoration-solid">Big Tech Alternatives</a>
/>
<p class="underline decoration-solid">Big Tech Alternatives</p>
</a>
</div>
<div class="justify-items-center">
<img
src="/assets/zines-thumbnail.png"
alt="zines"
width="250"
class="border object-cover w-[250px] h-[250px]"
/>
<a href="/projects/zines/" class="underline decoration-solid">Zines</a>
<a href="/projects/zines/">
<img
src="/assets/zines-thumbnail.png"
alt="zines"
width="250"
class="border object-cover w-[250px] h-[250px]"
/>
<p class="underline decoration-solid">Zines</p>
</a>
</div>
<div class="justify-items-center">
<img
src="/assets/pet-calendar-2026-cover.jpg"
alt="photo collage of cats"
width="500"
class="border"
/>
<a
href="/projects/PetCalendar/"
class="underline decoration-solid">Pet Calendar</a
>
<a href="/projects/PetCalendar/">
<img
src="/assets/pet-calendar-2026-cover.jpg"
alt="photo collage of cats and dogs"
width="500"
class="border"
/>
<p class="underline decoration-solid">Pet Calendar</p>
</a>
</div>
<div class="justify-items-center">
<img
src="/assets/pihole.jpeg"
alt="pihole parts"
width="250"
class="border"
/>
<a
href="/projects/pihole/"
class="underline decoration-solid">Pihole Workshop</a
>
<a href="/projects/pihole/">
<img
src="/assets/pihole.jpeg"
alt="pihole parts"
width="250"
class="border"
/>
<p class="underline decoration-solid">Pihole Workshop</p>
</a>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,64 @@
---
import Navbar from "../../../components/Navbar";
import Footer from "../../../components/Footer";
import Layout from "../../../layouts/Layout.astro";
import { ZineViewer } from "../../../components/zines/ZineViewer";
import { zines, type Zine } from "../../../data/zines";
import "../../../styles/globals.css";
export async function getStaticPaths() {
return zines.map((zine) => ({
params: { id: zine.id },
props: { zine },
}));
}
interface Props {
zine: Zine;
}
const { zine } = Astro.props;
---
<Layout>
<main class="flex min-h-screen flex-col justify-between">
<div>
<Navbar client:load activePage="OurProjects" />
<div class="px-4">
<a
href="/projects/zines"
class="inline-block pb-4 pt-4 text-sm underline"
>
← Back to all zines
</a>
<ZineViewer
client:load
pages={zine.pages}
title={zine.title}
zineId={zine.id}
/>
</div>
</div>
<Footer />
</main>
</Layout>
<style>
:global(.flipbook-container) {
display: flex;
justify-content: center;
align-items: center;
min-height: 520px;
}
:global(.flipbook) {
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
:global(.page) {
background-color: white;
display: flex;
align-items: center;
justify-content: center;
}
</style>