RSS Feeds

Use Shortcuts' actions to query an RSS and get a list of your favorite sites' news directly on your homescreen.

Step 1: Create the MacStories RSS Widget and its Content

Create your MacStories RSS Content by importing the provided JSON. Learn more about how to do this on our support page.

Then, create a new MacStories RSS Widget and set its default content to your new MacStories RSS Content.

Step 2: Create a shortcut to update your widget

Import the MacStories RSS Update shortcut on your device using this link.

This shortcut uses the Get contents of URL and the Get dictionary from input to get a JSON string of MacStories recent news. In the resulting dictionary, the list of posts is inside the items key.

Then, the shortcut has three blocks using the Get item from list to get the dictionary related to a given post, and the Get value for key in dictionary to get the post's title.

Tap on the play button on the bottom-right corner of your screen to test and see if everything is working! Keep in mind that, because of how iOS controls widget updates, it may take a while (up to 15 minutes) before the widget is actually updated.

Step 3: Setup your daily automation shortcut

To avoid having to create many repeated automations to update your widgets, let's organize all shortcuts that should run daily on a "parent shortcut" that will execute all its children.

Create a new Daily Pushcut Widget Update shortcut, choose the Run Shortcut action and choose the MacStories RSS Update shortcut you just created.

Step 4: Creating the automation

Using the Shortcuts app, create a new Personal Automation that runs on a Time of Day.

Since this automation will run only once per day, you can set it to execute at 00:01 am. Make supported to leave the Daily option checked at the bottom.

Step 5: Setting up the automation

Choose Run Shortcut as the action for your new automation and pick the Daily Pushcut Widget Update shortcut you just created.

If you need to update other widgets once a day, you won't need to setup another automation: just add another Run Shortcut action to the Daily Pushcut Widget Update shortcut.

Step 6: You're all set!

Your automation is done and your widget should now be updated once a day at 00:01 am! Make sure to disable the Ask Before Running before closing this screen. This way you'll avoid cluttering your Notification Center with a new notification everytime your automation is executed.

Widget JSON

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
{
  "type": "column",
  "properties": {
    "horizontalAlignment": "leading",
    "padding": {
      "bottom": 16
    },
    "font": {
      "size": 12,
      "family": "San Francisco"
    },
    "spacing": 4
  },
  "children": [
    {
      "type": "column",
      "properties": {
        "horizontalAlignment": "leading",
        "fillDirection": "width",
        "padding": {
          "top": 10,
          "bottom": 8
        },
        "font": {
          "size": 16
        },
        "foregroundColor": "rgba(100.00%, 100.00%, 100.00%, 1.00)",
        "background": {
          "type": "gradient",
          "value": {
            "type": "linear",
            "colors": [
              "rgba(99.67%, 0.00%, 0.00%, 1.00)",
              "rgba(80.90%, 0.00%, -0.00%, 1.00)"
            ]
          }
        }
      },
      "children": [
        {
          "type": "row",
          "properties": {
            "font": {
              "size": 14,
              "weight": "bold"
            },
            "spacing": 8
          },
          "children": [
            {
              "type": "symbol",
              "value": "bookmark.fill"
            },
            {
              "type": "text",
              "value": "MacStories"
            }
          ]
        }
      ]
    },
    {
      "type": "row",
      "properties": {
        "padding": {
          "leading": 12,
          "trailing": 12
        },
        "spacing": 8,
        "fillDirection": "height"
      },
      "children": [
        {
          "type": "symbol",
          "value": "1.circle"
        },
        {
          "type": "text",
          "value": "[[input0]]"
        }
      ]
    },
    {
      "type": "row",
      "properties": {
        "padding": {
          "leading": 12,
          "trailing": 12
        },
        "spacing": 8,
        "fillDirection": "height"
      },
      "children": [
        {
          "type": "symbol",
          "value": "2.circle"
        },
        {
          "type": "text",
          "value": "[[input1]]"
        }
      ]
    },
    {
      "type": "row",
      "properties": {
        "padding": {
          "leading": 12,
          "trailing": 12
        },
        "spacing": 8,
        "fillDirection": "height"
      },
      "children": [
        {
          "type": "symbol",
          "value": "3.circle"
        },
        {
          "type": "text",
          "value": "[[input2]]"
        }
      ]
    }
  ]
}
Check the Widget documentation for more details.