A calm, local-first news reader for Pittsburgh.
Built to make local news feel finite, readable, and worth returning to.
Changelog | IPA + TestFlight Guide | Release Guide | Docs Index
Abridged is an iOS-first reading app that rethinks how local news should feel. Instead of endless feeds, aggressive alerts, and cluttered layouts, it focuses on a quieter experience: trusted local coverage, clear reading surfaces, intentional navigation, and a product that respects the reader's attention.
The project starts with Pittsburgh. The goal is simple: make it easier to catch up on what matters locally without the mental tax of modern news apps.
- Pittsburgh-focused coverage from multiple local news sources
- A clean home feed, section views, and digest-style reading flows
- Classic reading plus a faster Abridged reader mode for quick catch-ups
- Saved articles, continue-reading state, and profile-aware preferences
- Light and dark themes, reader controls, haptics, and accessibility-minded UI
- Better resilience around feed errors, cached content, and refresh behavior
- Expo SDK 54
- React Native 0.81
- React 19
- TypeScript
- React Navigation 7
- AsyncStorage for local persistence
- Jest + React Native Testing Library
- Node
20.19.4(see.nvmrc) - npm
- Xcode for local iOS development
- Android Studio for local Android development
git clone https://github.com/McCal-Codes/abridgd.git
cd abridgd
npm install
npm startFrom the Expo prompt:
iornpm run iosfor iOSaornpm run androidfor Androidwornpm run webfor web
npm start- start the Expo dev servernpm test- run the Jest test suitenpm run test:coverage- generate coverage outputnpm run repo:health- run the repository health auditnpm run build:ipa- start a production EAS iOS buildnpm run build:ipa:quick- start a preview EAS iOS buildnpm run build:ipa:submit- start a production EAS iOS build and auto-submit it to TestFlight
This is the recommended path for testers and stakeholders.
- Install Apple's TestFlight app on your iPhone or iPad.
- Accept the latest Abridged invite or public testing link from the team.
- Open the TestFlight listing for Abridged and tap
Install. - Update in place as new builds are published.
This is the default release path for the repo. EAS builds the IPA in the cloud and can submit it to App Store Connect without a checked-in ios/ directory.
Requirements:
- Expo account access with permission to this project
- An
EXPO_TOKENor localnpx eas loginsession - Apple signing configured in EAS for the app's bundle identifier
Build commands:
npm run build:ipaor
npm run build:ipa:submitUse npm run build:ipa:quick when you want a faster preview/internal build instead of the production profile.
If you need a manual local Xcode archive path instead, generate or maintain a native ios/ project first and then follow the advanced guide below.
For the full build, submit, and fallback archive workflow, see docs/deployment/ios-ipa-testflight.md.
The project uses Semantic Versioning for public releases and EAS auto-increments the iOS build number for the production profile.
-
Update
CHANGELOG.mdunder[Unreleased]with the user-facing notes for the release. -
Confirm the release version in
package.jsonand keep any iOS release metadata aligned. -
Run the release checks:
npm test npx tsc --noEmit npm run repo:health -
Trigger the preferred GitHub Actions workflow from
Actions -> Release iOS Build, or run the CLI fallback:npx eas build --platform ios --profile production --auto-submit
The workflow expects an
EXPO_TOKENrepository secret, can optionally auto-submit the build to TestFlight, and can attach the finished IPA to an existing GitHub release tag. -
In App Store Connect, verify processing, add release notes, and assign the correct tester groups.
-
Tag the release as
vMAJOR.MINOR.PATCH. -
Publish the GitHub Release using the notes from
CHANGELOG.md.
If you need a manual native archive instead of EAS submission, use the fallback guide in docs/deployment/ios-ipa-testflight.md.
CHANGELOG.md is the source of truth for release notes in this repository.
Keep the README high-level. Put version-by-version details in the changelog, then reuse that same copy for:
- GitHub Releases
- TestFlight release notes
- internal release summaries
Start here: CHANGELOG.md
- Docs index
- Deployment guide
- IPA and TestFlight guide
- Engineering standards
- Product vision
- Feature summary
This repository is proprietary. See the beta legal documents in docs/NDA/.