From 1fc75ac6bfe06ab0aabd68e0d707b0bbcf685fbc Mon Sep 17 00:00:00 2001 From: Jad wauthier Date: Sat, 8 Aug 2026 21:29:51 -0500 Subject: [PATCH] Update PRD: unified resources table, converged IA Consolidates the domain-specific resource tables into a single resources table with domain/category/subcategory/type columns plus a tag join table, reflecting the taxonomy growing past three domains. Documents the converged information architecture (flat nav, Projects as a top-level item, Blog as distinct from About Me, Resources as one filtered/paginated page rather than a category tree) from design discussion. --- docs/PRD.md | 103 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 75 insertions(+), 28 deletions(-) diff --git a/docs/PRD.md b/docs/PRD.md index 5dc2c7b..5d11bf0 100644 --- a/docs/PRD.md +++ b/docs/PRD.md @@ -34,46 +34,93 @@ Intuitive Reasoning Exploration, and Framework for Responsible Optimization and Self-Directed Transformation — exploring multi-agent AI system behavior and safeguards for responsible AI integration. -## Content Ideas (not yet finalized into an information architecture) - -* The Origin Story — how Jad went from a tech nerd to the Blind Tech Mage. -* The Great Irony — why blind engineers use an IDE called Visual Studio. -* Blind Insights — what blind coding actually looks like. -* The Sound of Silence — what can be heard when you actually listen. -* Resume/CV. - -These are candidate pieces, not a finalized site map. Final information architecture -is a separate design decision to be made and confirmed before implementation. +## Information Architecture + +Top-level navigation, flat (no nested dropdown/tree menus), agreed in design +discussion: + +* Home +* Resources — single flat page with filter controls over the unified + `resources` table (see Functional Requirements, above), not a category tree. +* Projects — top-level nav item. + * Research Projects — thin pointer pages linking to TechClusiveSolutions.com + (TechClusive holds the IP; substantive content lives there, not here). + * Open-Source Projects. + * Proprietary Projects. +* Blog — a distinct section from About Me, hosted on BlindTechMage itself + (Astro content collections), not a third-party platform, for accessibility + control, ownership/durability, and consistency with the site's purpose. RSS + feed considered for distribution without ceding ownership of the primary + content. + * The Great Irony — why blind engineers use an IDE called Visual Studio. + * Blind Insights — what blind coding actually looks like. + * The Sound of Silence — what can be heard when you actually listen. +* About Me — distinct from Blog; a fixed, load-bearing section rather than a + chronological post stream. + * The Origin Story — not an essay; a persona-rationale page explaining why + the Blind Tech Mage persona exists, aimed at a reader who might otherwise + find the branding whimsical. Likely warrants prominent placement (e.g. + linked from the homepage) rather than being buried in a list. + * Personal Interests + * Technology + * AI + * Psychology + * Developmental Psychology + * Personality Typing + * Resume/CV. +* About the Site — possible home for an accessibility/process page + demonstrating the site's own tooling and standard (still an open decision, + see below). +* Contact Me. + +This is still subject to change and confirmation before implementation begins, +per the Plan → Design → Track → Implement → Test process, but represents the +converged state of design discussion so far. ## Functional Requirements (established so far) * A contact form, backed by a TypeScript Cloudflare Worker route. -* Domain-specific, searchable/filterable resource tables, stored in Cloudflare D1, - each in its own table (not a single shared table across domains): - * Ham radio resources. - * Blindness-related resources. - * Project-specific details. -* Public tables are queryable via a public API route and browsable/searchable on - corresponding site pages, filterable by fields appropriate to each domain (e.g. - category, tags via a join table rather than a delimited string column). -* Any private/personal data (notes, drafts, non-public detail) is structurally - separate from public tables — not merely filtered by a status flag — and is never - reachable by the public-facing API routes. +* A single, unified `resources` table in Cloudflare D1 (not one table per domain — + this was the original design, revised once the resource taxonomy grew past + three domains to include Community, Engineering (Software Engineering; AI and + Agentic Workflows), Psychology, Ham Radio, and Blindness). Domain/category/ + subcategory/type (e.g. Organizations vs. Websites) are columns on this one + table, with tags handled via a join table rather than a delimited string + column, so filtering is a real SQL query rather than string matching. +* The Resources page is a single, flat page with filter controls (real + `