{
  "$type": "site.standard.document",
  "content": {
    "$type": "site.standard.content.markdown",
    "text": "[I](https://joeinn.es/) built a little something on my day off after the UK government decided not to extend free school meals to children during the October half-term.\n\nAlthough children do not normally receive free school meals outside of term time, the unprecedented economic situation caused by COVID-19 and mass layoffs means that many parents face the very real threat of being unable to feed their children properly over the coming week.\n\n[@MarcusRashford](https://twitter.com/MarcusRashford) started an initiative to encourage local businesses to step in to fill the gap left when the government failed.\n\nThe site allows parents to quickly identify businesses near them who will feed their children for free over the coming week.\n\nYou can check it out at [https://free-meals.glitch.me](https://free-meals.glitch.me)\n\nThe data is from various sources, consolidated here [bit.ly/kidsmealsmap](https://www.google.com/maps/d/u/0/viewer?hl=en&hl=en&mid=1FY2YP3o-Yl6XfmquSB8ONAdEOfT-37su&ll=53.52267271392029%2C-3.6800511181780977&z=7) by the folks at [https://allofustogether.uk/](https://allofustogether.uk/)\n\n## Technical Details\n\nThis is a relatively simple [Express](https://expressjs.com/) app. There is a master data repository on [Airtable](https://airtable.com/), where it can be updated prior to syncing to the site.\n\nFor performance reasons, and to minimise the API calls out to Airtable, locations are synced into a local [SQLite](https://sqlite.org/index.html) database, which is cached in memory for thirty seconds (theoretically if the server was persistent, it would be enough to cache in memory until the next sync with Airtable, but Glitch may spin this site down for inactivity, so we can't rely on in-memory stores).\n\nOn the front-end, the site uses [Leaflet.js](https://leafletjs.com/) and the Geolocation API, but no user data is sent back to the server.\n\n### Requirements\n\n- [Node.js](https://nodejs.org/en/) (with NPM)\n\n### Installation\n\n1. Clone the project (or [remix on Glitch](http://glitch.com/edit/#!/remix/free-meals))\n2. Run `npm install`\n3. Run `npm run start`",
    "version": "1.0"
  },
  "path": "/blog/endchildfoodpoverty",
  "publishedAt": "2020-10-25T11:29:24.000Z",
  "site": "https://joeinn.es",
  "textContent": "I built a little something on my day off after the UK government decided not to extend free school meals to children during the October half-term.\n\nAlthough children do not normally receive free school meals outside of term time, the unprecedented economic situation caused by COVID-19 and mass layoffs means that many parents face the very real threat of being unable to feed their children properly over the coming week.\n\n@MarcusRashford started an initiative to encourage local businesses to step in to fill the gap left when the government failed.\n\nThe site allows parents to quickly identify businesses near them who will feed their children for free over the coming week.\n\nYou can check it out at https://free-meals.glitch.me\n\nThe data is from various sources, consolidated here bit.ly/kidsmealsmap by the folks at https://allofustogether.uk/\n\nTechnical Details\n\nThis is a relatively simple Express app. There is a master data repository on Airtable, where it can be updated prior to syncing to the site.\n\nFor performance reasons, and to minimise the API calls out to Airtable, locations are synced into a local SQLite database, which is cached in memory for thirty seconds (theoretically if the server was persistent, it would be enough to cache in memory until the next sync with Airtable, but Glitch may spin this site down for inactivity, so we can't rely on in-memory stores).\n\nOn the front-end, the site uses Leaflet.js and the Geolocation API, but no user data is sent back to the server.\n\nRequirements\nNode.js (with NPM)\n\nInstallation\nClone the project (or remix on Glitch)\nRun \nRun",
  "title": "#endchildfoodpoverty",
  "updatedAt": "2020-10-25T13:10:54.000Z"
}