Major site overhaul: resources hub, content migration, new blog posts, forms

- Redesign /resources as sectioned hub with category pages
- Migrate 645 Squarespace CDN images to local /images/content/
- Create 9 new news/blog posts with event photos
- Fix blog post slugs (rename gibberish filenames)
- Rename Design Blog to Design Blogs across site
- Remove education page, replace with Platform in nav
- Redesign rover repair request form with dynamic rover entries
- Add school search combobox to contact, store, and repair forms
- Extract shared KNOWN_SCHOOLS data
- Make /rover-expansion-3d-printing dynamically pull from MDX
- Add related resources sections to product pages
- Fix homepage broken /quote links to /store
- Store page: sample kit cards, inline quote builder, mailing list opt-in
This commit is contained in:
Tim Hadwen
2026-03-01 17:14:05 +10:00
parent 707c49dd3f
commit ae3ae18585
1212 changed files with 2477 additions and 6948 deletions

View File

@@ -4,6 +4,8 @@ import { Container } from "@/components/layout/Container";
import { Button } from "@/components/ui/Button";
import { SectionHeading } from "@/components/ui/SectionHeading";
import { Card } from "@/components/ui/Card";
import { RelatedResources } from "@/components/ui/RelatedResources";
import { getAllResources } from "@/lib/resources";
export const metadata: Metadata = {
title: "The Micromelon Rover",
@@ -93,6 +95,14 @@ const techSpecs = [
];
export default function RoverPage() {
const resources = getAllResources();
const relatedResources = resources
.filter((r) =>
r.categories.includes("Getting Started") ||
r.categories.includes("Activities")
)
.slice(0, 4);
return (
<>
{/* Hero */}
@@ -266,6 +276,13 @@ export default function RoverPage() {
</Container>
</section>
{/* Related Resources */}
<RelatedResources
resources={relatedResources}
seeAllHref="/resources"
seeAllLabel="See all resources"
/>
{/* Code Editor CTA */}
<section className="bg-brand py-16">
<Container>