Draft
Conversation
Replace the entire Astro+React frontend with Hugo using Content Adapters. Product data converted from JSON to normalized YAML (548 products). Individual product profile pages, taxonomy pages, client-side filtering, Schema.org annotations, OG/Twitter cards with logos, UTM-tracked outbound links, and LLM-friendly pages (llms.txt). Build is now just `hugo --minify` with no preprocessing pipeline. Dependencies reduced from 773 to 38 packages. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move original logo source files to logos/ (outside data/ to avoid Hugo parsing binary files). Add .hugo_build.lock to .gitignore. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add license (SPDX) and source_code_url fields to product schema - Add license and source code data for 11 verified open source products - Fix 6 products incorrectly marked as open source (piSignage, StudioLite, Signet, EasyDisplay, info-beamer OSS, Raspberry Digital Signage) - Fix Yodeck headquarters from USA to Greece - Separate "Free/Open Source" into distinct "Open Source" vs "On request" labels in pricing column - Add OSS badge to product rows for open source products - Show SPDX license linked to spdx.org in product detail sidebar - Add source code link and GitHub stars widget to product detail pages - Update SUBMISSION_GUIDE.md with HQ determination rule and OSS field docs - Redesign site with new color system, layouts, and logo pipeline Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Enterprise, healthcare, and government buyers need to filter products by security certifications. This adds a compliance object to the data schema (defaulting all fields to false), a filterable dropdown in desktop/mobile, URL param persistence, and badge display on product detail pages. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The curated product data (data/products/) represents significant curation effort. ODbL is purpose-built for databases and requires derivative databases to remain open while allowing free use of produced works. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The product list is too large to maintain in the README. Visitors should use the website instead. Also removes the Data section and tech stack line from the footer, and adds ODbL license for the dataset. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Self-host Inter font via @fontsource-variable/inter to eliminate render-blocking Google Fonts requests. Defer PostHog analytics with requestIdleCallback. Add skip-to-content link, aria-expanded on all dropdown toggles, aria-label on search input, and role=search landmark. Fix color contrast on mobile table labels (neutral-400 to neutral-500). Add explicit width/height to processed product logo images for CLS prevention. Update footer tagline to "most open". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fetch and display RSS/Atom feeds on product pages (when rss_feed_url is set) and on a new /news/ page aggregating industry feeds (Invidis, Sixteen:Nine) and product feeds. Feeds are cached for 24h and rebuilt nightly via GitHub Actions cron. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Runs Biome lint, Zod schema validation, and Hugo build on all pull requests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Track whether products offer an API (with developer portal URL), CLI, or MCP support. Display these in the Quick Facts sidebar on product profile pages. Includes schema validation requiring developer_portal_url when has_api is true. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Skip feeds that declare a non-English language via <language> or xml:lang. Add utm_campaign=product_rss and utm_campaign=news_feed to outbound RSS links. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add pagination to the product list (50 per page) and news page (20 per page) using client-side JS, preserving full-DOM filtering/sorting. FilterEngine now uses a two-pass approach: filter matching rows, then paginate visible ones. Page state syncs to URL params. Also nullify TCIT's RSS feed (Chinese-only, no language tag) and add authentication filter, schema updates, and related product data changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add checkbox-based fields for categories, platforms, delivery model, compliance, authentication, and developer tools. Align pricing fields with current schema (payment model, billing basis). Add self-signup field. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add named volume for Hugo's getresource cache so fetched RSS feeds survive container restarts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rename issue template to remove emoji, add suggest-a-change template - Add "Suggest an edit" deeplink on product pages - Add "Suggest a new product" deeplink on homepage - Remove Submit Change button and GitHub icon from header - Move GitHub icon to footer, change footer link to "Submit a Product" - Fix githubRepo param to point to Screenly/signagelist Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rewrite 162 descriptions to remove marketing language (enterprise-grade, at scale, seamless, customer experience, etc.) and replace vague terms (solution, experiences) with plain English. Remaining 268 descriptions were already in good shape from the initial meta tag fetch. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… on smaller screens by adding the 'md:hidden' class.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
hugo --minifydoes everything (HTML generation, TypeScript compilation via esbuild, Tailwind v4 CSS processing).headquartersasstring[],platformsextracted to top-level,statsalways present, pricing as structured objects. Validated at dev time by a Zod schema (scripts/lib/schema.ts)./products/{slug}/with structured data (Schema.org SoftwareApplication), OG images from logos, and full product details.data-*attributes with URL param sync. Includes search, category/platform/compliance dropdowns, open-source and free-trial toggles, and column sorting.llms.txt/llms-full.txtoutput formats, auto-generated sitemap, UTM-tracked outbound links.hugo --minify, and deploys. No more auto-committing generated files or needingcontents: writepermission.data/products/is now explicitly licensed under the Open Data Commons Open Database License, requiring derivative databases to remain open.What changed
_content.gotmpl)data-*attributeshugo --minify/products/{slug}/with Schema.orgTest plan
bun install && bun run buildsucceedsbun run checkvalidates all 548 YAML filesbun run dev— homepage loads with filterable table/products/{slug}//categories/cms/,/platforms/android/)/llms.txtand/llms-full.txtrender correctly