Add bikeshare-station-status extension
Description
Check bike availability at bikeshare stations run by Lyft. You will be prompted to select a region on first run. Regions:
- Citi Bike (NYC)
- Bay Wheels (SF Bay Area)
- Capital Bikeshare (DC)
- Biketown (Portland)
- Divvy (Chicago)
[!NOTE] I'm aware that check-citi-bike-availability exists, but given it's relatively stale, and that this extension is rewritten to support multiple regions (not just Citi Bike), station info, and menu bar, I think it's reasonable to create a new extension here, following directives from developer docs.
Screencast
https://github.com/user-attachments/assets/934b3370-e33a-4bef-a8c1-1fc33128daee
Checklist
- [x] I read the extension guidelines
- [x] I read the documentation about publishing
- [x] I ran
npm run buildand tested this distribution build in Raycast - [x] I checked that files in the
assetsfolder are used by the extension itself - [x] I checked that assets used by the
READMEare placed outside of themetadatafolder
Congratulations on your new Raycast extension! :rocket:
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.
Greptile Overview
Greptile Summary
Adds a new multi-region bikeshare station status extension supporting Lyft-operated systems (Citi Bike, Bay Wheels, Capital Bikeshare, Biketown, and Divvy). The extension includes a list view for checking station availability and a menu bar command for quick access to favorite stations.
Key Features:
- Region selection via preferences
- Station search and detail views with classic/eBike availability
- Favorites management with pinning to menu bar
- Google Maps integration
- Proper caching and loading states
Issues Found:
- Error handling in
useStationshook catches errors but never displays them to users - CHANGELOG.md and README.md headers don't match the package.json
title(say "Lyft Bike Station Status" instead of "Bikeshare Station Status") - Metadata folder with screenshots properly included ✓
- Standard Prettier and ESLint configs correctly applied ✓
Confidence Score: 4/5
- This PR is safe to merge with minor issues that should be addressed
- The extension is well-structured with proper TypeScript types, caching, and API integration. However, there's a critical error handling gap where errors are caught but never displayed to users, which could lead to silent failures. Additionally, there are minor documentation inconsistencies with headers not matching package.json. The PR is also marked as [WIP] and has the draft status requirement per custom rules.
- Pay close attention to
src/utils/hooks.tsfor the error handling issue
Important Files Changed
File Analysis
| Filename | Score | Overview |
|---|---|---|
| extensions/bikeshare-station-status/package.json | 5/5 | New extension metadata with proper commands, preferences, and dependencies configured correctly |
| extensions/bikeshare-station-status/CHANGELOG.md | 4/5 | Initial changelog entry with proper {PR_MERGE_DATE} template, but title inconsistent with package.json |
| extensions/bikeshare-station-status/README.md | 4/5 | Basic documentation with supported regions, but title inconsistent with package.json |
| extensions/bikeshare-station-status/src/station-status.tsx | 5/5 | Main command with proper List view, detail panel, favorites management, and loading states |
| extensions/bikeshare-station-status/src/utils/hooks.ts | 3/5 | Custom hooks for station data and favorites; error handling catches but doesn't display errors to users |
Bumping this PR @pernielsentikaer 👀
This pull request has been automatically marked as stale because it did not have any recent activity.
It will be closed if no further activity occurs in the next 7 days to keep our backlog clean 😊
@pernielsentikaer bumping again to keep active
This pull request has been automatically marked as stale because it did not have any recent activity.
It will be closed if no further activity occurs in the next 7 days to keep our backlog clean 😊
Bump
Published to the Raycast Store: https://raycast.com/itsmingjie/bikeshare-station-status
:tada: :tada: :tada:
We've rewarded your Raycast account with some credits. You will soon be able to exchange them for some swag.