Datasette Desktop - a macOS application version of Datasette

Datasette on your laptop without installing Python

The big news this month is Datasette Desktop, a brand new Mac application I've been building to help people run Datasette - and Datasette plugins - on their own computers.

An ongoing goal I have for Datasette is to make it available for as many people to use as possible.

I've tried a bunch of different strategies for this in the past:

  • Datasette is built using Python, so if you have a working Python environment you can install it using pip install datasette

  • I packaged it for Homebrew, so brew install datasette on macOS should work too

  • I have documentation for running it online using Glitch, where it can be installed using just your web browser

  • The datasette publish set of commands are designed to help deploy Datasette to Cloud Run, Heroku, Vercel or fly.io as easily as possible

Unfortunately, each of these options require some degree of deep technical knowledge before you can use them - familiarity with the command-line, or knowledge of how to deploy websites. These things are a significant barrier to entry!

My goal with Datasette Desktop is to make installing Datasette as easy as downloading and installing any other Mac application.

You can try that out here: click the Download link, open the zip file and drag the Datasette application to your /Applications folder.

The application comes with its own copy of Python 3.9 tucked away inside it, which means that even if you don’t have Python installed it will still be able to run just fine. It also pulls off some tricks to ensure that existing Datasett plugins can be installed using the “Plugins → Install and Manage Plugins…” menu option.

Once installed, the application can be used to open existing CSV or SQLite files on your computer. It can also open CSV files by URL, and uses that capability to offer examples that you can open to try it out (currently using data from the Central Park Squirrel Census and the London Fire Brigade’s list of animal rescue incidents).

How I built it

Like Datasette itself, Datasette Desktop is open source. I’ve been building it entirely in the open in the simonw/datasette-app GitHub repository.

I’ve been writing up details of how it works as I’ve gone along:

  • Building a desktop application for Datasette describes the initial research into the project, and talks about how I’m building it using Electron.

  • Datasette Desktop—a macOS desktop application for Datasette was the initial launch announcement for the first installable version. It describes how the application works in some detail, including how I bundled Python inside the application and how I figured out signing and distribution of macOS apps using Electron.

  • Datasette Desktop 0.2.0: The annotated release notes describes the second release, which introduced some significant new features including a plugin management interface for installing, upgrading and uninstalling plugins and the ability to open SQLite and CSV files directly using the application.

I’ve also been collecting numerous TILs (Today I Learned) about Electron.

Feedback welcome

The application so far is just a starting point: I’m very keen to hear from people who have tried it out. Please leave questions, suggestions and feedback on the GitHub Discussions forum for the project.