SaaS prepper part two: backing up Evernote with a Raspberry Pi

  • Journalling coding and other technical projects, including screenshots, URLs, snippets of code
  • Noting big purchases, including serial numbers, and a photo of the invoice and/or receipt
  • Evaluating big purchases, making notes comparing different products and services, contact details, quotes
  • Storing PDFs of important documents, e.g. contracts and amendments
  • Noting how I’ve configured devices and appliances
  • Storing recipes (sometimes with photos of printed pages with annotations)
  • Keeping long-running to-do lists
  • Planning travel (including capturing screenshots of confirmations, addresses, PDF e-receipts)
  • It’s cross-platform with timely synchronisation — it stays in sync across Web, native Mac, and Android
  • It works well offline
  • It accepts all kinds of attachments inline, including PDF, with embedded viewing
  • It supports all kinds of useful formatting: plain text for code and config, headers, tables, bullet lists

The requirements

  • Back up not just of the body of the notes, but also any attachments: e.g. images, PDFs, MS docs, CSVs
  • Run unattended and automatically back up any new notes or changes to notes
  • Recover from a failure or restart without repeating a whole lot of backing up unnecessarily
  • It shouldn’t cost me anything on an ongoing basis

The solution

The solution

The hardware and OS

Consuming the Evernote API

Crawling the notes

Output

Side note on Lodash and modern JavaScript

const keyBy = (array, key) => (array || []).reduce((r, x) => ({ ...r, [key ? x[key] : x]: x }), {});

Deployment

Next steps

--

--

--

Technology leader for Xero in Auckland, New Zealand, former start-up founder, father of two, maker of t-shirts and small software products

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

SOUTHWORKS secures it place on the Digital Services Framework IV for the BBC

iOS Biometric Authentication with Xamarin Forms

Automation for Customer Excellence: An Internship Journey in Tokopedia Customer Operations

Basic blocks of serverless cloud-native architecture available in AWS, GCP, and Azure

Spring Reactive Stream Basic concepts (Mono or Flux) (part 1)

The Day23#100DaysOfCode: Flutter Widget

What’s Trending in the Dev Community?

Launching OmniSci Enterprise on Google Cloud Platform

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Gareth Cronin

Gareth Cronin

Technology leader for Xero in Auckland, New Zealand, former start-up founder, father of two, maker of t-shirts and small software products

More from Medium

Hosting your Apps with M3O Cloud

MacOS architecture

Tales from Fleet security: securing Google Workspace

Rethinking the perimeter firewall approach