Skip to content
This repository was archived by the owner on May 31, 2026. It is now read-only.

Commit dabd001

Browse files
committed
Merge branch 'rewrite' of https://github.com/Tuhura-Tech/site into rewrite
2 parents 143eac3 + f55b8f2 commit dabd001

39 files changed

Lines changed: 1914 additions & 436 deletions

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
"lint:fix": "biome check --write ."
1515
},
1616
"dependencies": {
17-
"@astrojs/sitemap": "^3.4.2",
17+
"@astrojs/sitemap": "^3.5.0",
1818
"@iconify-json/heroicons": "^1.2.2",
19-
"astro": "^5.12.9",
19+
"astro": "^5.13.2",
2020
"astro-icon": "^1.1.5",
2121
"leaflet": "^2.0.0-alpha",
2222
"tailwindcss": "^4.1.11"

pnpm-lock.yaml

Lines changed: 19 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/DonateModal.astro

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
---
2-
import { Icon } from "astro-icon/components";
32
---
43

54
<dialog

src/components/FAQ.astro

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,60 @@
11
---
2+
import { Icon } from "astro-icon/components";
3+
24
const faqs = [
35
{
4-
question: "What ages can participate in your sessions?",
6+
question: "What ages can participate?",
57
answer:
6-
"Our sessions welcome rangatahi and tamariki from years 5-13 (ages 9-18). We adapt activities and support to suit different age groups and experience levels - from beginners who've never coded to advanced students leading their own projects.",
8+
"Years 5-13 (ages 9-18). We adapt activities for different experience levels - from complete beginners to advanced students leading their own projects.",
9+
icon: "heroicons:users",
710
},
811
{
9-
question: "What do you mean by 'technology education'?",
12+
question: "What is 'technology education'?",
1013
answer:
11-
"We focus on hands-on exploration of coding, robotics, 3D printing, digital creativity, and problem-solving using technology. Led by trained kaiako with industry volunteer support, learning happens naturally through passion-driven projects rather than formal lessons.",
14+
"Hands-on exploration of coding, robotics, 3D printing, and digital creativity. Learning happens through passion-driven projects led by trained kaiako with industry volunteer support.",
15+
icon: "heroicons:code-bracket",
1216
},
1317
{
14-
question: "Do sessions really cost nothing?",
18+
question: "Are sessions really free?",
1519
answer:
16-
"Yes! Sessions, equipment, and materials are completely free. Since our founding in 2022, we've been funded by corporate sponsors, local government partnerships, and community donations. No hidden costs, ever - this commitment helps us remove barriers to technology education.",
20+
"Yes! Sessions, equipment, and materials are completely free. We're funded by corporate sponsors, government partnerships, and community donations.",
21+
icon: "heroicons:heart",
1722
},
1823
{
19-
question: "Do you need prior technology experience?",
24+
question: "Do I need tech experience?",
2025
answer:
21-
"Not at all! We welcome complete beginners alongside experienced young coders. Our trained staff and volunteer mentors adapt to each participant's level, ensuring everyone feels supported and challenged appropriately.",
26+
"Not at all! We welcome complete beginners alongside experienced coders. Our mentors adapt to each participant's level.",
27+
icon: "heroicons:star",
2228
},
2329
{
2430
question: "Who runs the sessions?",
2531
answer:
26-
"Our sessions are led by trained kaiako (professional educators) with support from industry expert volunteers. All staff undergo appropriate safety checks. This combination provides both educational expertise and real-world tech industry experience for rangatahi.",
32+
"Trained kaiako (professional educators) with support from industry volunteers. All staff undergo safety checks.",
33+
icon: "heroicons:academic-cap",
2734
},
2835
{
2936
question: "Where do sessions happen?",
3037
answer:
31-
"We bring technology education directly to communities! Our sessions run in schools, libraries, community centres, and marae across Wellington, Lower Hutt, Upper Hutt, and Porirua. Each location and session is tailored to the community and rangatahi who attend.",
38+
"Schools, libraries, community centres, and marae across Wellington, Lower Hutt, Upper Hutt, and Porirua. Each session is tailored to its community.",
39+
icon: "heroicons:map-pin",
3240
},
3341
{
34-
question: "How can my child join a session?",
42+
question: "How can my child join?",
3543
answer:
36-
"Check our sessions page to find locations near you. If we're not already running sessions in your community, your child can join sessions at nearby locations, or encourage your school, library, or community centre to contact us about bringing sessions to your area.",
44+
"Check our sessions page to find locations near you. If we're not in your area yet, contact us about bringing sessions to your community.",
45+
icon: "heroicons:hand-raised",
3746
},
3847
{
39-
question: "How can I volunteer or support your work?",
48+
question: "How can I volunteer or support you?",
4049
answer:
41-
"We welcome volunteers with technology backgrounds to support sessions, run workshops, or help with resources. You can also support us through donations or partnerships. Contact us to learn about opportunities that match your skills and availability.",
50+
"We welcome volunteers with tech backgrounds and supporters through donations or partnerships. Contact us to learn about opportunities.",
51+
icon: "heroicons:hand-raised",
4252
},
4353
{
4454
question: "How long have you been operating?",
4555
answer:
4656
"Tūhura Tech was founded in 2022 as a registered charitable trust. We've been serving Wellington communities for over 3 years, supported by established corporate sponsors like WellingtonNZ, Bastion Security Group, Hutt City Council, and Spark Foundation.",
57+
icon: "heroicons:clock",
4758
},
4859
];
4960
---
@@ -65,10 +76,15 @@ const faqs = [
6576
<div class="mt-12 max-w-6xl mx-auto">
6677
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
6778
{
68-
faqs.map((faq) => (
69-
<div class="bg-white rounded-xl shadow-sm border border-gray-100 p-8 flex flex-col hover:shadow-md transition-shadow">
70-
<div class="font-semibold text-xl mb-4 text-tuhura-green leading-tight">{faq.question}</div>
71-
<div class="text-gray-600 leading-relaxed text-lg">{faq.answer}</div>
79+
faqs.map((faq, index) => (
80+
<div class="bg-white rounded-xl shadow-sm border border-gray-100 p-8 flex flex-col hover:shadow-md transition-shadow" style={`animation-delay: ${index * 0.1}s`}>
81+
<div class="flex items-start mb-4">
82+
<div class="w-12 h-12 bg-tuhura-green/10 rounded-lg flex items-center justify-center mr-4 flex-shrink-0">
83+
<Icon name={faq.icon} class="w-6 h-6 text-tuhura-green" />
84+
</div>
85+
<div class="font-semibold text-xl text-tuhura-green leading-tight">{faq.question}</div>
86+
</div>
87+
<div class="text-gray-600 leading-relaxed text-lg ml-16">{faq.answer}</div>
7288
</div>
7389
))
7490
}

src/components/Features.astro

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
import { Image } from "astro:assets";
3+
import pldImage from "@assets/pld.jpg";
34
import eventImage from "@assets/robocup-2025.jpg";
45
import sessionImage from "@assets/session.jpg";
5-
import pldImage from "@assets/pld.jpg";
66
import { Icon } from "astro-icon/components";
77
88
// import featureImage3 from "@assets/feature-3.svg";
@@ -11,23 +11,23 @@ const features = [
1111
{
1212
title: "Community-Based Sessions",
1313
description:
14-
"We bring free tech education directly to rangatahi in their own communities - schools, libraries, community centres, and marae. Each session adapts to the specific group and their interests.",
14+
"Free tech education in schools, libraries, community centres, and marae. Each session adapts to the group's interests and needs.",
1515
icon: "heroicons:star-solid",
1616
image: sessionImage,
1717
href: "/mahi/sessions",
1818
},
1919
{
2020
title: "Workshops & Events",
2121
description:
22-
"Intensive experiences delivered in community spaces. From VEX Robotics competitions to 3D printing workshops, each event is customized to the venue and participants.",
22+
"Intensive experiences in community spaces. From robotics competitions to 3D printing workshops, customized to venue and participants.",
2323
icon: "heroicons:globe-asia-australia",
2424
image: eventImage,
2525
href: "/mahi/workshops",
2626
},
2727
{
2828
title: "Kaiako (Teacher) Support",
2929
description:
30-
"Professional development delivered directly to schools and educational communities. We support kaiako with resources, training, and ongoing mentorship in their own teaching environments.",
30+
"Professional development delivered to schools and communities. Resources, training, and ongoing mentorship for educators.",
3131
icon: "heroicons:academic-cap",
3232
image: pldImage,
3333
href: "/mahi/pld",
@@ -47,9 +47,7 @@ const features = [
4747
<div class="text-center max-w-3xl mx-auto">
4848
<h2 class="text-3xl md:text-4xl font-bold">We Come to Your Community</h2>
4949
<p class="mt-4 text-xl text-gray-600">
50-
Rather than expecting rangatahi to come to us, we bring technology education directly to
51-
communities. Our trained kaiako and industry volunteers deliver sessions in schools,
52-
libraries, community centres, and marae - each session adapted to the rangatahi who attend.
50+
We bring technology education directly to communities. Our trained kaiako and industry volunteers deliver sessions adapted to each group of rangatahi.
5351
</p>
5452
<div class="mt-8 bg-white rounded-xl p-6 shadow-sm border border-gray-100">
5553
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 text-center">

src/components/Hero.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import heroImage from "@assets/hero.jpg";
1111
Engaging <span class="gradient-text">rangatahi</span> through technology
1212
</h1>
1313
<p class="mt-6 text-xl text-gray-600 max-w-lg">
14-
We provide accessible tech experiences with and for young people — in schools, libraries, and communities. For Free; We bring the gear, mentors, and kaupapa.
14+
Free tech education in schools, libraries, and communities. We bring the gear, mentors, and kaupapa.
1515
</p>
1616
<div class="mt-8 flex flex-col sm:flex-row gap-4">
1717
<a href="/mahi" class="btn btn-primary">Explore our mahi</a>

src/components/HowItWorks.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const steps = [
3636
<div class="max-w-3xl mx-auto text-center">
3737
<h2 class="text-3xl md:text-4xl font-bold">How to Get Started</h2>
3838
<p class="mt-4 text-xl text-gray-600">
39-
Ready to join our community of young tech explorers? Here's how to get involved with Tūhura Tech.
39+
Here's how to get involved with Tūhura Tech.
4040
</p>
4141
</div>
4242

src/components/Impact.astro

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
---
2+
import { Image } from "astro:assets";
3+
import sessionImage from "@assets/session.jpg";
24
import { Icon } from "astro-icon/components";
35
46
const stats = [
@@ -64,6 +66,22 @@ const pillars = [
6466
</div>
6567
))}
6668
</div>
69+
70+
<!-- Visual element -->
71+
<div class="mt-6 relative overflow-hidden rounded-xl">
72+
<Image
73+
src={sessionImage}
74+
alt="Rangatahi learning together in our community sessions"
75+
class="w-full h-32 object-cover"
76+
width={300}
77+
height={128}
78+
/>
79+
<div class="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent">
80+
<div class="absolute bottom-3 left-3 right-3">
81+
<p class="text-white text-sm font-medium">Community Learning</p>
82+
</div>
83+
</div>
84+
</div>
6785
</div>
6886
<div class="lg:col-span-2 bg-white rounded-2xl p-8 shadow-sm border border-gray-100">
6987
<h3 class="text-xl font-semibold mb-4">Ways we support communities</h3>

src/components/Partners.astro

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const partners = [
77
},
88
{
99
name: "Bastion Security Group",
10-
logo: "/partner-bsg.svg",
10+
logo: "/partner-bsg.svg",
1111
href: "https://www.bastionsecurity.co.nz/",
1212
},
1313
{
@@ -44,7 +44,7 @@ const partners = [
4444
<img
4545
src={partner.logo}
4646
alt={`${partner.name} logo`}
47-
class="h-16 w-auto mx-auto mb-4 object-contain filter grayscale group-hover:grayscale-0 transition-all duration-300"
47+
class="h-16 w-auto mx-auto mb-4 object-contain filter group-hover:grayscale-0 transition-all duration-300"
4848
/>
4949
<h4 class="text-sm font-medium text-gray-900 mb-2">{partner.name}</h4>
5050
</a>

src/components/SessionWidget.astro

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ import "leaflet/dist/leaflet.css";
138138
latlong: [-41.261747, 174.944866],
139139
age: "Years 5-8 (Ages 8-12)",
140140
signupLink: "https://forms.gle/hJiRmvQF6QcjmJjt9",
141-
time: "Monday at 3:30 - 5:30pm",
141+
time: "Thursday at 3:30 - 5:30pm",
142142
},
143143
],
144144
},
@@ -222,14 +222,14 @@ import "leaflet/dist/leaflet.css";
222222
const map = new Map("map");
223223
const markers: Marker[] = [];
224224
const markerOpen: Array<{ title: string; marker: Marker }> = [];
225-
226-
/**const icon = new Icon({ This does nothing and was causing the markers to drift
225+
226+
const icon = new Icon({
227227
iconUrl: "/marker-icon.png",
228228
shadowUrl: "/marker-shadow.png",
229-
});**/
229+
});
230230

231231
allSessions.forEach((session) => {
232-
const marker = new Marker(session.latlong).addTo(map);
232+
const marker = new Marker(session.latlong, {icon}).addTo(map);
233233
let popupContent = `
234234
<div class="session-popup" style="min-width: 250px; padding: 8px;">
235235
<h3 style="margin: 0 0 8px 0; font-size: 16px; font-weight: bold; color: #1f2937;">${session.name}</h3>

0 commit comments

Comments
 (0)