A SwiftUI iOS App and Vapor Server to send push notifications fueled by Siri Shortcuts
Puffery
An iOS App written in SwiftUI to send push notifications fueled by Siri Shortcuts.
You can follow other’s channels and directly receive updates. There is no algorithm deciding wether you should receive notifications or not.
Join the public beta on TestFlight.
Do you want to stay up to date with Puffery-dev-builds? There is a channel for that!
Server-Configuration
env | Description | Default |
---|---|---|
DATABASE_URL |
Connection string for SQL Database. | postgres://vapor_username:[email protected]:5432/vapor_database |
REDIS_URL |
Connection string for Queues. | redis://localhost:6379 |
PUFFERY_IN_PROCESS_JOBS |
Runs jobs inside the server. | false |
APNS_KEY_ID |
Key ID for Auth Key. | Only required for push notifications |
APNS_TEAM_ID |
Team ID for Auth Key. | Only required for push notifications |
APNS_KEY_PATH |
Path to private auth key for APNS. | private/AuthKey_$APNS_KEY_ID.p8 |
APNS_ENVIRONMENT |
Path to private auth key for APNS. | production |
SENDGRID_API_KEY |
API Key for sending emails. | Only required for emails |
PUFFERY_STATISTICS_CHANNELS |
Comma separated list of notify keys to receive stats. | [] |
Run Server
$ cd PufferyServer
$ swift run puffery serve --hostname 0.0.0.0 --auto-migrate
To access your server from the mobile app add 127.0.0.1 local.puffery.app
to /etc/hosts
and select the Puffery (Local)
scheme.
API-Routes
$ cd PufferyServer && swift run puffery routes
+--------+----------------------------------------------+
| GET | / |
+--------+----------------------------------------------+
| GET | /hello |
+--------+----------------------------------------------+
| POST | /api/v1/register |
+--------+----------------------------------------------+
| POST | /api/v1/login |
+--------+----------------------------------------------+
| POST | /api/v1/confirmations/login/:confirmation_id |
+--------+----------------------------------------------+
| POST | /api/v1/confirmations/email/:confirmation_id |
+--------+----------------------------------------------+
| GET | /api/v1/profile |
+--------+----------------------------------------------+
| PUT | /api/v1/profile |
+--------+----------------------------------------------+
| POST | /api/v1/devices |
+--------+----------------------------------------------+
| PUT | /api/v1/devices/:device_token |
+--------+----------------------------------------------+
| POST | /api/v1/channels |
+--------+----------------------------------------------+
| GET | /api/v1/channels/:subscription_id |
+--------+----------------------------------------------+
| POST | /api/v1/channels/:subscription_id |
+--------+----------------------------------------------+
| DELETE | /api/v1/channels/:subscription_id |
+--------+----------------------------------------------+
| GET | /api/v1/channels |
+--------+----------------------------------------------+
| GET | /api/v1/channels/shared |
+--------+----------------------------------------------+
| GET | /api/v1/channels/own |
+--------+----------------------------------------------+
| POST | /api/v1/notify-inbound-email |
+--------+----------------------------------------------+
| POST | /api/v1/notify/:notify_key |
+--------+----------------------------------------------+
| POST | /notify/:notify_key |
+--------+----------------------------------------------+
| GET | /api/v1/channels/messages |
+--------+----------------------------------------------+
| GET | /api/v1/channels/:subscription_id/messages |
+--------+----------------------------------------------+
| POST | /api/v1/channels/:subscription_id/messages |
+--------+----------------------------------------------+
| POST | /api/v1/channels/subscribe |
+--------+----------------------------------------------+
License
Puffery is available under the MIT license.