Skip to content

Conversation

@quacksire
Copy link

@quacksire quacksire commented Nov 25, 2025

Description

Adds a Raycast extension that integrates with the Catenary Maps API to surface real-time transit departures for nearby stops or user-searched stops. It includes support for location-based discovery, mode filters, and displaying route metadata (name, headsign, bay, etc.) in the Raycast UI.

Screencast

https://youtu.be/2BLuYItcI78

Checklist

@raycastbot
Copy link
Collaborator

raycastbot commented Nov 25, 2025

Congratulations on your new Raycast extension! 🚀

You can expect an initial review within five business days.

Once the PR is approved and merged, the extension will be available on our Store.

@quacksire quacksire marked this pull request as ready for review November 25, 2025 09:22
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Nov 25, 2025

Greptile Overview

Greptile Summary

This PR adds a new Raycast extension for Catenary Maps that integrates real-time transit departures. The implementation is well-structured with proper TypeScript types, error handling, and React best practices.

Key Features:

  • Location-based discovery using IP geolocation via Cloudflare Worker
  • Text search for stops using Catenary's Birch API
  • Real-time departure information with filtering by transit mode (bus, rail, metro)
  • Recent stops history with LocalStorage
  • Proper loading states and empty view handling

Issues Found:

  • CHANGELOG.md uses an actual date (2025-11-24) instead of the template string {PR_MERGE_DATE}
  • ESLint configuration uses .eslintrc.json format instead of the recommended eslint.config.js format

Positive Aspects:

  • Proper metadata folder with screenshots included for this new extension
  • Good use of @raycast/utils hooks (useFetch)
  • Comprehensive error handling with try-catch blocks
  • Loading states properly implemented to avoid empty state flicker
  • Command includes subtitle as recommended for single-command extensions
  • Strong TypeScript typing throughout
  • Clean code structure with well-organized helper functions

Confidence Score: 4/5

  • This PR is safe to merge after addressing the CHANGELOG date format issue
  • Score reflects well-implemented functionality with proper error handling and React best practices. The two issues found are minor: one is a required fix (CHANGELOG date format) and one is a style recommendation (ESLint config format). The extension demonstrates good code quality with comprehensive TypeScript types, proper use of Raycast APIs, and thoughtful UX considerations.
  • CHANGELOG.md requires correction to use {PR_MERGE_DATE} template string. Consider updating .eslintrc.json to eslint.config.js format for consistency with newer extensions.

Important Files Changed

File Analysis

Filename Score Overview
extensions/catenary-raycast/CHANGELOG.md 3/5 Changelog entry uses actual date instead of template string {PR_MERGE_DATE}
extensions/catenary-raycast/.eslintrc.json 3/5 Uses .eslintrc.json format instead of recommended eslint.config.js format
extensions/catenary-raycast/src/check-departures.tsx 5/5 Well-structured main component with proper error handling, loading states, and React best practices

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

9 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

Copy link
Contributor

@0xdhrv 0xdhrv left a comment

Choose a reason for hiding this comment

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

note

Thanks for your contribution. Minor suggestions and feedback added.

- changelog and prettier update
- Pull contributions
@quacksire quacksire requested a review from 0xdhrv November 26, 2025 00:17
@0xdhrv
Copy link
Contributor

0xdhrv commented Nov 26, 2025

fix needed

@quacksire The build is failing, can you please check it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants