Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


The official mobile app for The Daily Pennsylvanian, 34th Street, and Under The Button!

Table of Contents
  1. Features
  2. Installation
  3. Contributing
  4. Operation... Canada Goose?

Features 📱

  • Top Stories: View what’s trending in The Daily Pennsylvanian, 34th Street Magazine, and Under The Button.
  • Discover: Search the articles of each publication and view the most recent articles in certain categories.
  • Bookmarked Articles: Save articles to read at a later time.
  • Manage Feed: Change the order in which categories on your home feed change.
  • Notifications: Keep up to date on breaking news and stories chosen by editors.

Installation 🚀

  1. Clone the repo.
    git clone
  2. Install NPM packages.
    npm install

🔔 Note: For most purposes, you should use the development branch. If you are using the master branch, you must set up the iOS app credentials locally:

  1. (master branch only!) Update credentials.json with local iOS credentials
    1. Get distribution certificate from Apple Developer Portal and update path and password.
    "distributionCertificate": {
     "path": "ios/certs/<DISTRIBUTION_CERTIFICATE>.p12",
    1. Download provisioning profiles from Apple Developer Portal and update paths. The main app target and the OneSignalNotificationServiceExtension require separate provisioning profiles. For local and development EAS builds, the provisioning profiles should be of type Ad hoc. For production EAS builds, the provisioning profiles should be of type App Store.
    "provisioningProfilePath": "ios/certs/.../<PROVISIONING_PROFILE>.mobileprovision"
  2. If you want to run the app directly on your device, you must first register the device with Expo. Otherwise, feel free to skip this step.
    eas device:create
  3. Build the app. This may take a while, but you don't have to repeat this process unless you change the underlying native code powering the app!
    eas build --profile <profile-name> --platform <platform>
    1. <platform> should be ios, android, or all
    2. <profile-name> should be either development (to run the app on your device), local (to run the app on an iOS simulator), or production (to create a production build for submission).
      1. For a local build:
        • Download the build once it is completed from the link provided. This will be a .tar.gz file.
        • Extract the file by opening it. You will now have a file like
        • Open up your simulator.
        • Drag the file into the simulator.
        • The app will be installed in a few seconds.
  4. Start the app.
    expo start --dev-client
    If you are developing against a physical device, scan the resulting QR code. Otherwise, press the "a" or "i" key to open the app in an Android emulator or iPhone simulator respectively.

Contributing ⭐

In order to contribute, please apply to join our team! Applications open at the beginning of fall and spring semesters here!

Operation Canada Goose ❓

Tasked with migrating content from the harsh winter envrionment of print publication to the temperate oasis of mobile communication, DP Developers faced a challenge like no other: what do we name our objective? It wasn't until we passed the hundredth person with an overpriced winter jacket that we found an animal which so accurately captured the migratory nature of our mission and Penn culture as a whole. And so, equipped with a fitting name, we hatched our plan.

Operation Canada Goose is here to bring you the best of The Daily Pennyslvanian, straight to your down jacket pockets.


DP+, the official mobile app for The Daily Pennsylvanian, 34th Street, and Under The Button







No releases published


No packages published