Skip to content

[codex] Add open source projects page#97

Open
michaelmwu wants to merge 2 commits into
mainfrom
michaelmwu/open-source-projects-page
Open

[codex] Add open source projects page#97
michaelmwu wants to merge 2 commits into
mainfrom
michaelmwu/open-source-projects-page

Conversation

@michaelmwu

@michaelmwu michaelmwu commented Jul 4, 2026

Copy link
Copy Markdown
Member

Summary

  • Add a new /open-source page that highlights 508-dev open source projects.
  • Add screenshot illustrations for interview-as-a-service, favorite-places, and house-calendar.
  • Add an Open Source link to the site header navigation.
  • Remove the blog from the open source project catalog.

Validation

  • bun run build
  • Local render check of /open-source with the dev server at 127.0.0.1:4802

Notes

  • package-lock.json had pre-existing unstaged changes and is intentionally not included in this PR.

Note

Low Risk
Static content and navigation only; no auth, APIs, or data handling changes.

Overview
Adds a new /open-source marketing page that catalogs 508-dev public repos in featured and more projects sections, with tags, GitHub Source links, optional Live site URLs, notes, and lazy-loaded screenshots on select featured cards.

The page uses the shared Layout with SEO metadata and schema.org CollectionPage / ItemList structured data. Site discovery is updated via an Open Source item in Header.astro navigation and a https://508.dev/open-source entry in sitemap.xml.

Reviewed by Cursor Bugbot for commit d179db5. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • New Features
    • Added an “Open Source” page showcasing public projects, including Featured and More Projects sections with card-based browsing.
    • Added a new “Open Source” entry to the main navigation, available on both desktop and mobile.
    • Added support for richer project cards with tags, source links, and optional screenshots/notes/live links.
  • Other
    • Updated the sitemap to include the new Open Source page.

@coderabbitai

coderabbitai Bot commented Jul 4, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds an "Open Source" header link to /open-source, and adds a new Astro page that lists 508.dev open source projects with structured data, project metadata, and featured/more-projects sections.

Changes

Open Source Page Addition

Layer / File(s) Summary
Navigation entry for Open Source page
src/components/Header.astro
Adds a new top-level header route for “Open Source” pointing to /open-source.
Open source page content
src/pages/open-source.astro, public/sitemap.xml
Defines the project dataset and derived lists, adds JSON-LD CollectionPage structured data, renders the page layout and project sections, and adds the page URL to the sitemap.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • 508-dev/508-dynamic#69: Also updates src/components/Header.astro navigation routes and active-state rendering behavior.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding an open source projects page.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch michaelmwu/open-source-projects-page

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 4, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
508-dynamic d179db5 Commit Preview URL

Branch Preview URL
Jul 05 2026, 02:31 AM

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
src/pages/open-source.astro (2)

131-148: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Structured-data URL is hardcoded instead of derived from the site config.

url: "https://508.dev/open-source" is hardcoded, while Layout.astro already derives a canonical URL dynamically from Astro.site/Astro.url.pathname for the same purpose. Deriving this value the same way would keep the JSON-LD consistent with the rest of the site if the domain or path ever changes (e.g., staging/preview builds).

♻️ Suggested consistency fix
+const siteUrl = Astro.site ?? new URL("https://508.dev");
 const openSourceStructuredData = {
   "`@context`": "https://schema.org",
   "`@type`": "CollectionPage",
   name: "508.dev Open Source",
-  url: "https://508.dev/open-source",
+  url: new URL("/open-source", siteUrl).toString(),
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/pages/open-source.astro` around lines 131 - 148, The structured-data URL
in openSourceStructuredData is hardcoded and should be derived dynamically to
match the site’s canonical URL logic. Update the CollectionPage JSON-LD in
open-source.astro to compute url from Astro.site/Astro.url.pathname the same way
Layout.astro does, so the schema stays correct across domain or path changes.
Use the existing openSourceStructuredData object as the place to make this
change and keep it consistent with the rest of the site.

15-125: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider extracting the projects dataset out of the page component.

Hardcoding all project entries inline in the .astro frontmatter works, but as the catalog grows, moving Project/projects into a dedicated data file (or content collection) would separate content from presentation and ease future updates.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/pages/open-source.astro` around lines 15 - 125, The `projects` dataset is
still hardcoded inside the `open-source.astro` page frontmatter, which mixes
content with presentation. Move the `Project` type and `projects` array into a
dedicated data module (or content collection) and import them into the page
component. Keep the existing page rendering logic in `open-source.astro`
unchanged except for consuming the imported `projects` data.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@src/pages/open-source.astro`:
- Around line 131-148: The structured-data URL in openSourceStructuredData is
hardcoded and should be derived dynamically to match the site’s canonical URL
logic. Update the CollectionPage JSON-LD in open-source.astro to compute url
from Astro.site/Astro.url.pathname the same way Layout.astro does, so the schema
stays correct across domain or path changes. Use the existing
openSourceStructuredData object as the place to make this change and keep it
consistent with the rest of the site.
- Around line 15-125: The `projects` dataset is still hardcoded inside the
`open-source.astro` page frontmatter, which mixes content with presentation.
Move the `Project` type and `projects` array into a dedicated data module (or
content collection) and import them into the page component. Keep the existing
page rendering logic in `open-source.astro` unchanged except for consuming the
imported `projects` data.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6c833217-0d7c-4917-b03c-35e934a7de7d

📥 Commits

Reviewing files that changed from the base of the PR and between b9dceb4 and 4d14330.

⛔ Files ignored due to path filters (3)
  • public/open-source/favorite-places.png is excluded by !**/*.png
  • public/open-source/house-calendar.png is excluded by !**/*.png
  • public/open-source/interview-as-a-service.png is excluded by !**/*.png
📒 Files selected for processing (2)
  • src/components/Header.astro
  • src/pages/open-source.astro

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4d14330d33

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/pages/open-source.astro
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant