bloomword live on stores; add Zero-Day Defender + edutainment to education pillar

Bloomword is out on iOS + Android: added it to /apps (featured first) with store links,
put StoreButtons on /products/bloomword, and flipped all 'coming/launching' copy to 'free
on iOS and Android' (product page, products index, services games blurb, FAQ).

Education pillar: added Zero-Day Defender (cybersecurity edutainment, Coming soon) and
cross-listed Bloomword + Vegan IQ from Games & Apps — they're genuinely both a game we ship
and a game that teaches. Broadened the pillar lead + card to frame the edutainment shelf
(science, math, vocabulary, nutrition, cyber-safety) alongside the PhD radiation-science work.
This commit is contained in:
jwinterm
2026-07-13 12:03:24 -04:00
parent 87586eddd7
commit 1fc2cce0e0
4 changed files with 37 additions and 11 deletions
+14 -2
View File
@@ -8,17 +8,29 @@ import type { Metadata } from "next";
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Apps: Games & Tools for iOS, Android & Web | Such Software", title: "Apps: Games & Tools for iOS, Android & Web | Such Software",
description: "Download Such Software's apps and games: Bauhaus Echo, Suchoice, Vegan IQ, Such Moon Launch, and more. Free on the App Store, Google Play, and the web.", description: "Download Such Software's apps and games: Bloomword, Bauhaus Echo, Suchoice, Vegan IQ, Such Moon Launch, and more. Free on the App Store, Google Play, and the web.",
alternates: { canonical: "/apps" }, alternates: { canonical: "/apps" },
openGraph: { openGraph: {
title: "Apps: Games & Tools for iOS, Android & Web | Such Software", title: "Apps: Games & Tools for iOS, Android & Web | Such Software",
description: "Download Such Software's apps and games: Bauhaus Echo, Suchoice, Vegan IQ, Such Moon Launch, and more. Free on the App Store, Google Play, and the web.", description: "Download Such Software's apps and games: Bloomword, Bauhaus Echo, Suchoice, Vegan IQ, Such Moon Launch, and more. Free on the App Store, Google Play, and the web.",
type: "website", type: "website",
images: [{ url: "/images/branding/OG_banner_v2_light.png", width: 1200, height: 630, alt: "Such Software" }], images: [{ url: "/images/branding/OG_banner_v2_light.png", width: 1200, height: 630, alt: "Such Software" }],
}, },
}; };
const apps = [ const apps = [
{
name: "Bloomword",
tagline: "Grow your vocab: a daily word game with a living 3D tree",
icon: "/images/products/bloomword.svg",
color: "text-green-600 dark:text-green-400",
borderColor: "border-green-500/20",
href: "/products/bloomword",
links: [
{ platform: "apple" as const, href: "https://apps.apple.com/us/app/bloomword-grow-your-vocab/id6781658542" },
{ platform: "google" as const, href: "https://play.google.com/store/apps/details?id=com.suchsoftware.bloomword" },
],
},
{ {
name: "Vegan IQ", name: "Vegan IQ",
tagline: "Plant-based trivia backed by real data", tagline: "Plant-based trivia backed by real data",
+12 -4
View File
@@ -4,12 +4,13 @@ import { Card } from "@repo/ui/components/card";
import Link from "next/link"; import Link from "next/link";
import Image from "next/image"; import Image from "next/image";
import { JsonLd, breadcrumbLd, faqLd } from "@/components/seo/json-ld"; import { JsonLd, breadcrumbLd, faqLd } from "@/components/seo/json-ld";
import { StoreButtons } from "@/components/store-buttons";
import type { Metadata } from "next"; import type { Metadata } from "next";
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Bloomword: Daily Word Game with a Living Tree | Such Software", title: "Bloomword: Daily Word Game with a Living Tree | Such Software",
description: description:
"Bloomword is a daily word game where everyone gets the same letters and every word you find grows a living 3D typographic tree. Five biomes, streaks, and a bloom to share. Coming to iOS and Android.", "Bloomword is a daily word game where everyone gets the same letters and every word you find grows a living 3D typographic tree. Five biomes, streaks, and a bloom to share. Free on iOS and Android.",
alternates: { canonical: "/products/bloomword" }, alternates: { canonical: "/products/bloomword" },
keywords: [ keywords: [
"daily word game", "daily word game",
@@ -23,7 +24,7 @@ export const metadata: Metadata = {
openGraph: { openGraph: {
title: "Bloomword: Find the Day's Words, Grow a Living Tree", title: "Bloomword: Find the Day's Words, Grow a Living Tree",
description: description:
"A daily word game where every word you find grows a biome-specific, living 3D typographic tree. Coming to iOS and Android from Such Software.", "A daily word game where every word you find grows a biome-specific, living 3D typographic tree. Free on iOS and Android from Such Software.",
type: "website", type: "website",
url: "/products/bloomword", url: "/products/bloomword",
}, },
@@ -34,7 +35,7 @@ const faqs = [
{ q: "How does the tree work?", a: "Each word you find sprouts new growth on a 3D typographic tree rendered by our in-house typograph-engine. The tree's look changes with the day's biome, so your finished board is both a score and a little piece of generative art you can share." }, { q: "How does the tree work?", a: "Each word you find sprouts new growth on a 3D typographic tree rendered by our in-house typograph-engine. The tree's look changes with the day's biome, so your finished board is both a score and a little piece of generative art you can share." },
{ q: "Is it the same puzzle for everyone?", a: "Yes. Like the best daily games, the letters are shared worldwide each day, so leaderboards and streaks are apples-to-apples. Results are server-replayed for fairness." }, { q: "Is it the same puzzle for everyone?", a: "Yes. Like the best daily games, the letters are shared worldwide each day, so leaderboards and streaks are apples-to-apples. Results are server-replayed for fairness." },
{ q: "Is it free?", a: "Yes, free to play, supported by light ads and optional in-app purchases. A privacy-conscious build is a priority." }, { q: "Is it free?", a: "Yes, free to play, supported by light ads and optional in-app purchases. A privacy-conscious build is a priority." },
{ q: "What platforms will it be on?", a: "Built in Godot for iOS and Android. It is in final pre-launch polish (store review); follow Such Software for the release date." }, { q: "What platforms is it on?", a: "Built in Godot for iOS and Android, and playable free in the browser at bloomword.earth. Download it on the App Store or Google Play." },
]; ];
const jsonLd = { const jsonLd = {
@@ -96,10 +97,17 @@ export default function BloomwordPage() {
growth on a living 3D typographic tree. Keep your streak, collect the biomes, and share the growth on a living 3D typographic tree. Keep your streak, collect the biomes, and share the
bloom you grew today. It is live at{" "} bloom you grew today. It is live at{" "}
<a href="https://bloomword.earth" target="_blank" rel="noopener noreferrer" className="text-green-600 dark:text-green-400 hover:underline">bloomword.earth</a>{" "} <a href="https://bloomword.earth" target="_blank" rel="noopener noreferrer" className="text-green-600 dark:text-green-400 hover:underline">bloomword.earth</a>{" "}
and coming to iOS and Android. and free on iOS and Android.
</p> </p>
</div> </div>
<div className="mb-12">
<StoreButtons links={[
{ platform: "apple", href: "https://apps.apple.com/us/app/bloomword-grow-your-vocab/id6781658542" },
{ platform: "google", href: "https://play.google.com/store/apps/details?id=com.suchsoftware.bloomword" },
]} />
</div>
<h2 className="text-2xl font-bold mb-6">What makes it different</h2> <h2 className="text-2xl font-bold mb-6">What makes it different</h2>
<div className="grid md:grid-cols-2 gap-6 mb-12"> <div className="grid md:grid-cols-2 gap-6 mb-12">
{features.map((f) => ( {features.map((f) => (
+1 -1
View File
@@ -117,7 +117,7 @@ const products: Product[] = [
{ {
slug: "bloomword", slug: "bloomword",
title: "Bloomword", title: "Bloomword",
description: "A daily word game where everyone gets the same letters and races the sunset; every word you find grows a biome-specific, living 3D typographic tree. Build streaks, collect biomes, and share your bloom. Play free at bloomword.earth; launching on iOS and Android.", description: "A daily word game where everyone gets the same letters and races the sunset; every word you find grows a biome-specific, living 3D typographic tree. Build streaks, collect biomes, and share your bloom. Play free at bloomword.earth, or download free on iOS and Android.",
color: "green", color: "green",
icon: "/images/products/bloomword.svg", icon: "/images/products/bloomword.svg",
releaseDate: "2026-07-06", releaseDate: "2026-07-06",
+10 -4
View File
@@ -54,11 +54,11 @@ export const pillars: Pillar[] = [
label: "Education & Science", label: "Education & Science",
accent: "amber", accent: "amber",
title: "Education & science", title: "Education & science",
lead: "PhD-led radiation-science teaching, training, and speaking from years at a national lab, plus learning-through-play games that teach real science and math. We publish our methods open-source.", lead: "PhD-led radiation-science teaching, training, and speaking from years at a national lab, plus a growing shelf of edutainment: learning-through-play games that make real subjects stick, from nuclear physics and math to vocabulary, nutrition, and cyber-safety. We publish our methods open-source.",
card: "PhD-led radiation-science teaching and games that teach real science.", card: "PhD-led radiation-science teaching and edutainment games that teach through play.",
metaTitle: "Nuclear & Radiation-Science Education, GEANT4 Training | Such Software", metaTitle: "Nuclear & Radiation-Science Education, GEANT4 Training | Such Software",
metaDescription: metaDescription:
"PhD-led radiation-science education: Monte Carlo methods with GEANT4, shielding and detector physics, open-source labs, plus learning-through-play science and math games. Lawrence Livermore background.", "PhD-led radiation-science education: Monte Carlo methods with GEANT4, shielding and detector physics, open-source labs, plus edutainment games that teach science, math, vocabulary, and cyber-safety through play. Lawrence Livermore background.",
}, },
]; ];
@@ -86,7 +86,7 @@ const commerceProof: Proof[] = [
const gamesProof: Proof[] = [ const gamesProof: Proof[] = [
{ title: "Suchoice", blurb: "Stop overthinking decisions: snap a photo, let AI read the options, spin the wheel. iOS and Android.", img: "/images/products/suchoice.png", href: "/products/suchoice", tag: "Live" }, { title: "Suchoice", blurb: "Stop overthinking decisions: snap a photo, let AI read the options, spin the wheel. iOS and Android.", img: "/images/products/suchoice.png", href: "/products/suchoice", tag: "Live" },
{ title: "Vegan IQ", blurb: "1,000+ plant-based trivia questions across 8 categories, with a daily challenge and weekly quiz. iOS and Android.", img: "/images/products/vegan-iq.png", href: "/products/vegan-iq", tag: "Live" }, { title: "Vegan IQ", blurb: "1,000+ plant-based trivia questions across 8 categories, with a daily challenge and weekly quiz. iOS and Android.", img: "/images/products/vegan-iq.png", href: "/products/vegan-iq", tag: "Live" },
{ title: "Bloomword", blurb: "A daily word game where every word you find grows a living 3D typographic tree. Free at bloomword.earth, launching on mobile.", img: "/images/products/bloomword.svg", href: "/products/bloomword", tag: "Live" }, { title: "Bloomword", blurb: "A daily word game where every word you find grows a living 3D typographic tree. Free at bloomword.earth and on iOS and Android.", img: "/images/products/bloomword.svg", href: "/products/bloomword", tag: "Live" },
{ title: "Bauhaus Echo", blurb: "A visual memory puzzle game inspired by Bauhaus design. Android, iOS, and web.", img: "/images/products/bauhaus-echo.png", href: "/products/bauhaus-echo", tag: "Live" }, { title: "Bauhaus Echo", blurb: "A visual memory puzzle game inspired by Bauhaus design. Android, iOS, and web.", img: "/images/products/bauhaus-echo.png", href: "/products/bauhaus-echo", tag: "Live" },
{ title: "Such Moon Launch", blurb: "Vry rocket, much landing, wow: a Wownero-themed pixel rocket arcade with 11 levels and tilt-to-steer. Everywhere.", img: "/images/products/such-moon-launch.png", href: "/products/such-moon-launch", tag: "Live" }, { title: "Such Moon Launch", blurb: "Vry rocket, much landing, wow: a Wownero-themed pixel rocket arcade with 11 levels and tilt-to-steer. Everywhere.", img: "/images/products/such-moon-launch.png", href: "/products/such-moon-launch", tag: "Live" },
]; ];
@@ -98,10 +98,16 @@ const cryptoProof: Proof[] = [
{ title: "Evaluetron", blurb: "Pay-for-compute done right: an append-only credit ledger, a job queue, and an evaluator that lets on-demand work preempt opportunistic work. Customers can never self-credit.", tag: "Building" }, { title: "Evaluetron", blurb: "Pay-for-compute done right: an append-only credit ledger, a job queue, and an evaluator that lets on-demand work preempt opportunistic work. Customers can never self-credit.", tag: "Building" },
]; ];
// Barns/nuclear/Numchangers are the science + math anchors; Zero-Day Defender, Bloomword, and
// Vegan IQ are the edutainment titles (Bloomword + Vegan IQ are cross-listed from Games & Apps —
// they are genuinely both a game we ship AND a game that teaches).
const educationProof: Proof[] = [ const educationProof: Proof[] = [
{ title: "Barns & Neutrons", blurb: "A cozy exploration-puzzle game across the real Chart of Nuclides: capture neutrons, coax decays, and learn honest nuclear physics. Our premiere visual work.", img: "/images/products/barns-and-neutrons.svg", href: "/products/barns-and-neutrons", tag: "Coming soon" }, { title: "Barns & Neutrons", blurb: "A cozy exploration-puzzle game across the real Chart of Nuclides: capture neutrons, coax decays, and learn honest nuclear physics. Our premiere visual work.", img: "/images/products/barns-and-neutrons.svg", href: "/products/barns-and-neutrons", tag: "Coming soon" },
{ title: "Nuclear consulting & training", blurb: "PhD-led radiation-science teaching: Monte Carlo methods with GEANT4, shielding and dose fundamentals, detector physics, and open-source labs.", href: "https://jwinterm.github.io/geant4-radiation-labs/", tag: "Service" }, { title: "Nuclear consulting & training", blurb: "PhD-led radiation-science teaching: Monte Carlo methods with GEANT4, shielding and dose fundamentals, detector physics, and open-source labs.", href: "https://jwinterm.github.io/geant4-radiation-labs/", tag: "Service" },
{ title: "Numchangers", blurb: "A kids math game (ages 5-8) where numbers morph into dots, shapes, and 3D characters, so arithmetic becomes a visible action instead of a quiz. Godot, mobile-first.", tag: "Early" }, { title: "Numchangers", blurb: "A kids math game (ages 5-8) where numbers morph into dots, shapes, and 3D characters, so arithmetic becomes a visible action instead of a quiz. Godot, mobile-first.", tag: "Early" },
{ title: "Zero-Day Defender", blurb: "A cybersecurity edutainment game: learn how real attacks and defenses work by playing through them, from phishing and passwords to zero-days.", tag: "Coming soon" },
{ title: "Bloomword", blurb: "Vocabulary as play: a daily word game where every word you find grows a living 3D typographic tree. Free on iOS and Android and at bloomword.earth.", img: "/images/products/bloomword.svg", href: "/products/bloomword", tag: "Live" },
{ title: "Vegan IQ", blurb: "Nutrition and food knowledge as a daily habit: 1,000+ plant-based trivia questions across 8 categories, with a daily challenge and weekly quiz. iOS and Android.", img: "/images/products/vegan-iq.png", href: "/products/vegan-iq", tag: "Live" },
]; ];
export function proofFor(slug: string): Proof[] { export function proofFor(slug: string): Proof[] {