PageSourceSearch

https://datasette.io/news

html datasette.io collected 2026-10-02 07:05:19 UTC 69,187 bytes, 1,095 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
6  <title>Datasette News and Blog</title>
7  <link rel="stylesheet" type="text/css" href="/static/site.css">
8<script defer data-domain="datasette.io" src="https://plausible.io/js/plausible.js"></script>
8
9
10</head>
11<body class="page ">
12  <header>
13    <nav>
14      <a href="/"><img class="datasette-logo-small" src="/static/datasette-logo.svg" alt="Datasette"></a>
15      <ul>
16    <li><a href="/for">Uses</a></li>
17    <li><a href="https://docs.datasette.io/en/stable/"><span class="hide-on-narrow">Documentation</span> <span class="show-on-narrow">Docs</span></a></li>
18    <li class="hide-on-narrow"><a href="/tutorials">Tutorials</a></li>
19    <li><a href="/examples">Examples</a></li>
20    <li><a href="/plugins">Plugins</a></li>
21    <li><a href="/tools">Tools</a></li>
22    <li><a href="/news">News</a></li>
23</ul>
24    </nav>
25  </header>
26  <main>
27    <div class="content">
28      
29<h1>Datasette News and Blog <a style="text-decoration: none; padding: 0 0.3em" href="/content/feed.atom" title="Atom feed"><svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 256 256">
30    <defs>
31    <linearGradient id="a" x1=".1" x2=".9" y1=".1" y2=".9">
32        <stop offset="0" stop-color="#E3702D" />
33        <stop offset=".1" stop-color="#EA7D31" />
34        <stop offset=".4" stop-color="#F69537" />
35        <stop offset=".5" stop-color="#FB9E3A" />
36        <stop offset=".7" stop-color="#EA7C31" />
37        <stop offset=".9" stop-color="#DE642B" />
38        <stop offset="1" stop-color="#D95B29" />
39    </linearGradient>
40</defs>
41<rect width="256" height="256" fill="#CC5D15" rx="55" ry="55" />
42<rect width="246" height="246" x="5" y="5" fill="#F49C52" rx="50" ry="50" />
43<rect width="236" height="236" x="10" y="10" fill="url(#a)" rx="47" ry="47" />
44<circle cx="68" cy="189" r="24" fill="#FFF" />
45<path fill="#FFF" d="M160 213h-34a82 82 0 0 0-82-82V97a116 116 0 0 1 116 116z" />
46<path fill="#FFF" d="M184 213A140 140 0 0 0 44 73V38a175 175 0 0 1 175 175z" />
47    </svg></a></h1>
48
49<div class="substack">
50<iframe
51  src="https://datasette.substack.com/embed"
52  width="480" height="320"
53  frameborder="0" scrolling="no"></iframe>
54</div>
55
56
57    
58        <h3>16th September 2026 <a href="/news/2026-09-16" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
59        
60    
61    
62        <div style="white-space: normal"><p>Datasette <a href="https://docs.datasette.io/en/stable/changelog.html#v0-65-5" rel="nofollow">0.65.5</a> and <a href="https://docs.datasette.io/en/latest/changelog.html#a40-2026-09-16" rel="nofollow">1.0a40</a> are out, with a security fix for <a href="https://github.com/simonw/datasette/security/advisories/GHSA-h547-rmjf-5m2m" rel="nofollow">a table permisisons bypass</a>. Datasette 1.0a40 also adds a mechanism for plugins to <a href="https://docs.datasette.io/en/latest/internals.html#datasette-add-background-task" rel="nofollow">run background tasks</a>.</p></div>
63    
64
65    
66        <h3>11th September 2026</h3>
67        
68    
69    
70        <div class="blog-post-teaser">
71            <h4><a href="/blog/2026/september-security-releases/">Datasette 1.0a39 and 0.65.4 security releases</a></h4>
72            <p>We have two big security updates for Datasette today - one for the 1.0 alpha series and another for the 0.65.x stable release: <a href="/blog/2026/september-security-releases/">[...]</a></p>
73        </div>
74    
75
76    
77        <h3>18th June 2026</h3>
78        
79    
80    
81        <div class="blog-post-teaser">
82            <h4><a href="/blog/2026/datasette-apps/">Host applications inside Datasette with Datasette Apps</a></h4>
83            <p>Today we&#39;re launching Datasette Apps, a way to create and host custom HTML applications inside your Datasette instance. <a href="/blog/2026/datasette-apps/">[...]</a></p>
84        </div>
85    
86
87    
88        <h3>11th June 2026</h3>
89        
90    
91    
92        <div class="blog-post-teaser">
93            <h4><a href="/blog/2026/api-extras/">Datasette 1.0a33 with JSON extras in the API</a></h4>
94            <p>The stable release of Datasette 1.0 has been in the pipeline for a long time. Today&#39;s release of 1.0a33 incorporates significant progress on one of the key blockers for that release: providing a stable, fully documented JSON API for accessing data hosted in Datasette. <a href="/blog/2026/api-extras/">[...]</a></p>
95        </div>
96    
97
98    
99        <h3>29th May 2026</h3>
100        
101    
102    
103        <div class="blog-post-teaser">
104            <h4><a href="/blog/2026/sql-write-queries/">SQL write queries and stored queries in Datasette 1.0a31</a></h4>
105            <p>With Datasette 1.0a31, Datasette now offers users with the necessary permissions the ability to both execute write queries against their database and save stored queries (renamed from &#34;canned queries&#34;), either privately and shared with other members of their Datasette instance. <a href="/blog/2026/sql-write-queries/">[...]</a></p>
106        </div>
107    
108
109    
110        <h3>24th May 2026</h3>
111        
112    
113    
114        <div class="blog-post-teaser">
115            <h4><a href="/blog/2026/jump-menu/">The extensible &#34;Jump to&#34; menu in Datasette 1.0a30</a></h4>
116            <p>Datasette 1.0a30, released today, provides a new &#34;Jump menu&#34; for quickly navigating your Datasette instance, plus mechanisms for plugins to extend and customize that menu to incorporate their own custom features. <a href="/blog/2026/jump-menu/">[...]</a></p>
117        </div>
118    
119
120    
121        <h3>21st May 2026</h3>
122        
123    
124    
125        <div class="blog-post-teaser">
126            <h4><a href="/blog/2026/datasette-agent/">Datasette Agent, an extensible AI assistant for Datasette</a></h4>
127            <p>Today we are releasing Datasette Agent, an open source plugin for Datasette that provides an extensible AI assistant for interacting with your SQLite databases. <a href="/blog/2026/datasette-agent/">[...]</a></p>
128        </div>
129    
130
131    
132        <h3>13th May 2026</h3>
133        
134    
135    
136        <div class="blog-post-teaser">
137            <h4><a href="/blog/2026/new-blog/">Welcome to the Datasette blog</a></h4>
138            <p>It&#39;s about time the Datasette project had its own blog. <a href="/blog/2026/new-blog/">[...]</a></p>
139        </div>
140    
141
142    
143        <h3>19th April 2026 <a href="/news/2026-04-19" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
144        
145    
146    
147        <div style="white-space: normal"><p>Here's a new TIL on <a href="https://til.simonwillison.net/google-sheets/datasette-sql" rel="nofollow">using SQL functions in Google Sheets to fetch data from Datasette</a>.</p></div>
148    
149
150    
151        <h3>15th April 2026 <a href="/news/2026-04-15" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
152        
153    
154    
155        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/latest/changelog.html#a27-2026-04-15" rel="nofollow">Datasette 1.0a27</a> changes how CSRF protection works in a way that simplifies form and API integration, and introduces a new <code>RenameTableEvent</code> for when a table is renamed by a SQL query.</p></div>
156    
157
158    
159        <h3>18th March 2026 <a href="/news/2026-03-18" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
160        
161    
162    
163        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/latest/changelog.html#a26-2026-03-18" rel="nofollow">Datasette 1.0a26</a> adds a <code>column_types</code> system allowing columns to carry additional type information such as <code>email</code> or <code>url</code>, or extra types defined by plugins. This alpha also adds a UI for selecting and sorting visible columns on a table page.</p></div>
164    
165
166    
167        <h3>25th February 2026 <a href="/news/2026-02-25" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
168        
169    
170    
171        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/latest/changelog.html#a25-2026-02-25" rel="nofollow">Datasette 1.0a25</a> adds <a href="https://docs.datasette.io/en/latest/plugin_hooks.html#plugin-hook-write-wrapper" rel="nofollow">write_wrapper()</a> and <a href="https://docs.datasette.io/en/latest/plugin_hooks.html#plugin-hook-register-token-handler" rel="nofollow">register_token_handler()</a> plugin hooks.</p></div>
172    
173
174    
175        <h3>29th January 2026 <a href="/news/2026-01-29" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
176        
177    
178    
179        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/latest/changelog.html#a24-2026-01-29" rel="nofollow">Datasette 1.0a24</a> introduces a new <code>await request.form(files=True)</code> method for accepting file uploads, plus various other changes.</p></div>
180    
181
182    
183        <h3>5th November 2025 <a href="/news/2025-11-05" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
184        
185    
186    
187        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-65-2" rel="nofollow">Datasette 0.65.2</a> and <a href="https://docs.datasette.io/en/latest/changelog.html#a21-2025-11-05" rel="nofollow">Datasette 1.0a21</a> have been released with a <strong>security fix</strong> for an open redirect error, see <a href="https://github.com/simonw/datasette/security/advisories/GHSA-w832-gg5g-x44m" rel="nofollow">this advisory</a>. The latest Datasette alphas also include a breaking change to Datasette's permission system, described 
187in detail in <a href="https://simonwillison.net/2025/Nov/4/datasette-10a20/" rel="nofollow">A new SQL-powered permissions system in Datasette 1.0a20</a>.</p></div>
188    
189
190    
191        <h3>6th February 2025 <a href="/news/2025-02-06" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
192        
193    
194    
195        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/latest/changelog.html#a17-2025-02-06" rel="nofollow">Datasette 1.0a17</a> is the latest Datasette 1.0 alpha release, with bug fixes and small feature improvements from the last few months.</p></div>
196    
197
198    
199        <h3>7th October 2024 <a href="/news/2024-10-07" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
200        
201    
202    
203        <div style="white-space: normal"><p><a href="https://docs.python.org/3.13/whatsnew/3.13.html" rel="nofollow">Python 3.13</a> was released today. <a href="https://docs.datasette.io/en/latest/changelog.html#a16-2024-09-05" rel="nofollow">Datasette 1.0a16</a> is compatible with Python 3.13, but Datasette 0.64.8 was not. The new <a href="https://docs.datasette.io/en/stable/changelog.html#v0-65" rel="nofollow">Datasette 0.65</a> release fixes compatibility with the new version of Python.</p></div>
204    
205
206    
207        <h3>5th August 2024 <a href="/news/2024-08-05" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
208        
209    
210    
211        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/latest/changelog.html#a14-2024-08-05" rel="nofollow">Datasette 1.0a14</a> includes some breaking changes to how metadata works for plugins, described in detail in the new <a href="https://docs.datasette.io/en/latest/upgrade_guide.html" rel="nofollow">upgrade guide</a>. See also the <a href="https://simonwillison.net/2024/Aug/5/datasette-1a14/" rel="nofollow">annotated release notes</a> that accompany this release.</p></div>
212    
213
214    
215        <h3>18th February 2024 <a href="/news/2024-02-18" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
216        
217    
218    
219        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/latest/changelog.html#a10-2024-02-17" rel="nofollow">Datasette 1.0a10</a> is a focused alpha that changes some internal details about how Datasette handles transactions. The <code>datasette.execute_write_fn()</code> internal method now wraps the function in a database transaction unless you pass <code>transaction=False</code>.</p></div>
220    
221
222    
223        <h3>16th February 2024 <a href="/news/2024-02-16" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
224        
225    
226    
227        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/latest/changelog.html#a9-2024-02-16" rel="nofollow">Datasette 1.0a9</a> adds basic alter table support to the JSON API, tweaks how permissions works and introduces some new plugin debugging utilities.</p></div>
228    
229
230    
231        <h3>7th February 2024 <a href="/news/2024-02-07" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
232        
233    
234    
235        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/1.0a8/changelog.html#a8-2024-02-07" rel="nofollow">Datasette 1.0a8</a> introduces several new plugin hooks, a JavaScript plugin system and moves plugin configuration from <code>metadata.yaml</code> to <code>datasette.yaml</code>. Read more about the release in <a href="https://simonwillison.net/2024/Feb/7/datasette-1a8/" rel="nofollow">the annotated release notes for 1.0a8</a>.</p></div>
236    
237
238    
239        <h3>1st December 2023 <a href="/news/2023-12-01" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
240        
241    
242    
243        <div style="white-space: normal"><p><a href="https://enrichments.datasette.io/" rel="nofollow">Datasette Enrichments</a> is a new feature for Datasette that supports enriching data by running custom code against every selected row in a table. Read <a href="https://simonwillison.net/2023/Dec/1/datasette-enrichments/" rel="nofollow">Datasette Enrichments: a new plugin framework for augmenting your data</a> for more details, plus a video demo of enrichments for geocoding addresses and processing text and images using GPT-4.</p></div>
244    
245
246    
247        <h3>30th November 2023 <a href="/news/2023-11-30" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
248        
249    
250    
251        <div style="white-space: normal"><p><a href="https://datasette.io/plugins/datasette-comments" rel="nofollow">datasette-comments</a> is a new plugin by Alex Garcia which adds collaborative commenting to Datasette. Alex built the plugin for Datasette Cloud, but it's also available as an open source package for people who are hosting their own Datasette instances. See <a href="https://www.datasette.cloud/blog/2023/datasette-comments/" rel="nofollow">Annotate and explore your data with datasette-comments</a> on the Datasette Cloud blog for more details.</p></div>
252    
253
254    
255        <h3>22nd August 2023 <a href="/news/2023-08-22" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
256        
257    
258    
259        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/1.0a4/changelog.html#a4-2023-08-21" rel="nofollow">Datasette 1.0a4</a> has a fix for a security vulnerability in the Datasette 1.0 alpha series: the API explorer interface exposed the names of private databases and tables in public instances that were protected by a plugin such as <a href="https://datasette.io/plugins/datasette-auth-passwords" rel="nofollow">datasette-auth-passwords</a>, though not the actual content of those tables. See the <a href="https://github.com/simonw/datasette/security/advisories/GHSA-7ch3-7pp7-7cpq" rel="nofollow">security advisory</a> for more details and workarounds for if you can't upgrade immediately. The <a href="https://datasette.
259substack.com/p/datasette-cloud-and-the-datasette" rel="nofollow">latest edition of the Datasette Newsletter</a> also talks about this issue.</p></div>
260    
261
262    
263        <h3>15th August 2023 <a href="/news/2023-08-15" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
264        
265    
266    
267        <div style="white-space: normal"><p><a href="https://www.datasette.cloud/blog/2023/datasette-write-ui/" rel="nofollow">datasette-write-ui: a Datasette plugin for editing, inserting, and deleting rows</a> introduces a new plugin adding add/edit/delete functionality to Datasette, developed by Alex Garcia. Alex built this for <a href="https://www.datasette.cloud/" rel="nofollow">Datasette Cloud</a>, and this post is the first announcement made on the new Datasette Cloud blog - see also <a href="https://www.datasette.cloud/blog/2023/welcome/" rel="nofollow">Welcome to Datasette Cloud</a>.</p></div>
268    
269
270    
271        <h3>9th August 2023 <a href="/news/2023-08-09" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
272        
273    
274    
275        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/latest/changelog.html#a3-2023-08-09" rel="nofollow">Datasette 1.0a3</a> is an alpha release of Datasette that previews the new default JSON API design that’s coming in version 1.0 - the single most significant change planned for that 1.0 release.</p></div>
276    
277
278    
279        <h3>1st July 2023 <a href="/news/2023-07-01" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
280        
281    
282    
283        <div style="white-space: normal"><p>New tutorial: <a href="https://datasette.io/tutorials/data-analysis" rel="nofollow">Data analysis with SQLite and Python</a>. This tutorial, originally presented at PyCon 2023, includes a 2h45m video and an extensive handout that should be useful with or without the video. Topics covered include Python's <code>sqlite3</code> module, <code>sqlite-utils</code>, Datasette, Datasette Lite, advanced SQL patterns and more.</p></div>
284    
285
286    
287        <h3>24th March 2023 <a href="/news/2023-03-24" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
288        
289    
290    
291        <div style="white-space: normal"><p><a href="https://simonwillison.net/2023/Mar/24/datasette-chatgpt-plugin/" rel="nofollow">I built a ChatGPT plugin to answer questions about data hosted in Datasette</a> describes a new experimental Datasette plugin to enable people to query data hosted in a Datasette interface via ChatGPT, asking human language questions that are automatically converted to SQL and used to generate a readable response.</p></div>
292    
293
294    
295        <h3>23rd February 2023 <a href="/news/2023-02-23" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
296        
297    
298    
299        <div style="white-space: normal"><p><a href="https://datasette.io/tutorials/codespaces" rel="nofollow">Using Datasette in GitHub Codespaces</a> is a new tutorial showing how Datasette can be run in GitHub's free Codespaces browser-based development environments, using the new <a href="https://datasette.io/plugins/datasette-codespaces" rel="nofollow">datasette-codespaces plugin</a>.</p></div>
300    
301
302    
303        <h3>28th January 2023 <a href="/news/2023-01-28" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
304        
305    
306    
307        <div style="white-space: normal"><p><a href="https://datasette.io/examples" rel="nofollow">Examples of sites built using Datasette</a> now includes screenshots of Datasette deployments that illustrate a variety of problems that can be addressed using Datasette and its plugins.</p></div>
308    
309
310    
311        <h3>13th January 2023 <a href="/news/2023-01-13" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
312        
313    
314    
315        <div style="white-space: normal"><p><a href="https://simonwillison.net/2023/Jan/13/semantic-search-answers/" rel="nofollow">Semantic search answers: Q&amp;A against documentation with GPT3 + OpenAI embeddings</a> shows how Datasette can be used to implement semantic search and build a system for answering questions against an existing corpus of text, using two new plugins: <a href="https://datasette.io/plugins/datasette-openai" rel="nofollow">datasette-openai</a> and <a href="https://datasette.io/plugins/datasette-faiss" rel="nofollow">datasette-faiss</a>, and a new tool: <a href="https://datasette.io/tools/openai-to-sqlite" rel="nofollow">openai-to-sqlite</a>.</p></div>
316    
317
318    
319        <h3>9th January 2023 <a href="/news/2023-01-09" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
320        
321    
322    
323        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-64" rel="nofollow">Datasette 0.64</a> is out, and includes <a href="https://docs.datasette.io/en/stable/spatialite.html#warning" rel="nofollow">a strong warning</a> against running SpatiaLite in production without disabling arbitrary SQL queries, plus a new <a href="https://docs.datasette.io/en/stable/settings.html#setting-default-allow-sql" rel="nofollow">--setting default_allow_sql off</a> setting to make it easier to do that. See <a href="https://simonwillison.net/2023/Jan/9/datasette-064/" rel="nofollow">Datasette 0.64, with a warning about SpatiaLite</a> for more about this release. A new tutorial, <a href="https://datasette.io/tutorials/spatialite" rel="nofollow">Building a location to time zone API with SpatiaLite</a>, describes how to safely use SpatiaLite and Datasette to build and deploy an API for looking up time zones for a latitude/longitude location.</p></div>
324    
325
326    
327        <h3>15th December 2022 <a href="/news/2022-12-15" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
328        
329    
330    
331        <div style="white-space: normal"><p><a href="https://simonwillison.net/2022/Dec/15/datasette-1a2/" rel="nofollow">Datasette 1.0a2: Upserts and finely grained permissions</a> describes the new upsert API and much improved permissions capabilities introduced in the latest <a href="https://docs.datasette.io/en/latest/changelog.html#a2-2022-12-14" rel="nofollow">Datasette 1.0a2 alpha</a> release.</p></div>
332    
333
334    
335        <h3>2nd December 2022 <a href="/news/2022-12-02" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
336        
337    
338    
339        <div style="white-space: normal"><p><a href="https://simonwillison.net/2022/Dec/2/datasette-write-api/" rel="nofollow">Datasette’s new JSON write API: The first alpha of Datasette 1.0</a> introduces the new write API shipped in the first of the Datasette 1.0 alpha series of releases, including detailed descriptions of two demos that show how the API can be used.<
339/p></div>
340    
341
342    
343        <h3>27th October 2022 <a href="/news/2022-10-27" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
344        
345    
346    
347        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-63" rel="nofollow">Datasette 0.63</a> is out. Here are the <a href="https://simonwillison.net/2022/Oct/27/datasette-0-63/" rel="nofollow">annotated release notes</a>.</p></div>
348    
349
350    
351        <h3>8th September 2022 <a href="/news/2022-09-08" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
352        
353    
354    
355        <div style="white-space: normal"><p><a href="https://simonwillison.net/2022/Sep/5/laion-aesthetics-weeknotes/" rel="nofollow">Exploring the training data behind Stable Diffusion</a> describes the process of building and deploying a 4GB searchable SQLite database using Datasette, starting with Parquet data that was used to train the Stable Diffusion image generation model. See also <a href="https://waxy.org/2022/08/exploring-12-million-of-the-images-used-to-train-stable-diffusions-image-generator/" rel="nofollow">Exploring 12 Million of the 2.3 Billion Images Used to Train Stable Diffusion’s Image Generator</a>.</p></div>
356    
357
358    
359        <h3>21st August 2022 <a href="/news/2022-08-21" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
360        
361    
362    
363        <div style="white-space: normal"><p><a href="https://simonwillison.net/2022/Aug/21/scotrail/" rel="nofollow">Analyzing ScotRail audio announcements with Datasette—from prototype to production</a> provides a detailed walk-through of the process of constructing an initial rapid prototype using Datasette Lite, extending it with a custom plugin and then deploying it as a full Datasette instance using GitHub Actions and Vercel.</p></div>
364    
365
366    
367        <h3>14th August 2022 <a href="/news/2022-08-14" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
368        
369    
370    
371        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-62" rel="nofollow">Datasette 0.62</a> introduces compatibility with Pyodide for <a href="https://lite.datasette.io/" rel="nofollow">Datasette Lite</a>, and incorporates a number of bug fixes, plugin hook upgrades and other improvements.</p></div>
372    
373
374    
375        <h3>31st July 2022 <a href="/news/2022-07-31" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
376        
377    
378    
379        <div style="white-space: normal"><p>New tutorial and accompanying ten minute video: <a href="https://datasette.io/tutorials/clean-data" rel="nofollow">Cleaning data with sqlite-utils and Datasette</a>.</p></div>
380    
381
382    
383        <h3>30th June 2022 <a href="/news/2022-06-30" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
384        
385    
386    
387        <div style="white-space: normal"><p><a href="https://datasette.io/tools/s3-ocr" rel="nofollow">s3-ocr</a> is a new tool which can run OCR (via Amazon Textract) against every PDF file in an S3 bucket and write the results to a searchable SQLite database, ready to use with Datasette. Read more about it in <a href="https://simonwillison.net/2022/Jun/30/s3-ocr/" rel="nofollow">s3-ocr: Extract text from PDF files stored in an S3 bucket</a>.</p></div>
388    
389
390    
391        <h3>5th May 2022 <a href="/news/2022-05-05" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
392        
393    
394    
395        <div style="white-space: normal"><p><a href="https://lite.datasette.io/" rel="nofollow">Datasette Lite</a> is a new way to run Datasette: entirely in your browser, thanks to the <a href="https://pyodide.org/" rel="nofollow">Pyodide</a> project which provides a full Python environment compiled to WebAssembly. You can use it to explore any SQLite database file hosted on a CORS-enabled static hosting provider, which includes GitHub and GitHub Pages. Read more about this project in <a href="https://simonwillison.net/2022/May/4/datasette-lite/" rel="nofollow">Datasette Lite: a server-side Python web application running in a browser</a>.</p></div>
396    
397
398    
399        <h3>12th April 2022 <a href="/news/2022-04-12" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
400        
401    
402    
403        <div style="white-space: normal"><p><a href="https://datasette.io/for/geospatial" rel="nofollow">Datasette for geospatial analysis</a> describes how Datasette can be used in conjunction with SpatiaLite to work with geospatial data, including details of several geospatial plugins and tools from the Datasette ecosystem.</p></div>
404    
405
406    
407        <h3>23rd March 2022 <a href="/news/2022-03-23" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
408        
409    
410    
411        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-61" rel="nofollow">Datasette 0.61</a> introduces two potentially backwards-incompatible changes in preparation for the forthcoming 1.0 release: hashed URL mode has been moved to <a href="https://datasette.io/plugins/datasette-hashed-urls" rel="nofollow">a new plugin</a>, and the way URLs are generated to tables or databases containing special characters such as <code>.</code> or <code>/</code> has changed. <a href="https://docs.datasette.io/en/stable/changelog.html#v0-61-1" rel="nofollow">Datasette 0.61.1</a> fixes a small bug in that release. See also <a href="https://simonwillison.net/2022/Mar/24/datasette-061/" rel="nofollow">the annotated release notes</a> for these two versions.</p></div>
412    
413
414    
415        <h3>27th February 2022 <a href="/news/2022-02-27" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
416        
417    
418    
419        <div style="white-space: normal"><p>The first two of an ongoing series of official Datasette tutorials are now available: <a href="/tutorials/explore" rel="nofollow">Exploring a database with Datasette</a> introduces the Datasette web interface and shows how it can be used to explore a new database, and <a href="/tutorials/learn-sql" rel="nofollow">Learn SQL with Datasette</a> provides an introduction to SQL using Datasette as a learning environment.</p></div>
420    
421
422    
423        <h3>13th January 2022 <a href="/news/2022-01-13" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
424        
425    
426    
427        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-60" rel="nofollow">Datasette 0.60</a> adds a new <code>filters_from_request</code> plugin hook, new internal methods for writing to the database, better performance and various faceting improvements. See also <a href="https://simonwillison.net/2022/Jan/14/datasette-060/" rel="nofollow">the annotated release notes</a>.</p></div>
428    
429
430    
431        <h3>5th December 2021 <a href="/news/2021-12-05" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
432        
433    
434    
435        <div style="white-space: normal"><p><a href="https://observablehq.com/" rel="nofollow">Observable</a> notebooks recently added a SQL cell type, allowing SQL queries to be executed as part of an interactive notebook workflow. Alex Garcia built a <a href="https://observablehq.com/@ambassadors/datasette-client" rel="nofollow">Datasette Client</a> for these which allows you to excute queries against any Datasette instance and explore and visualize the results using JavaScript code running in a notebook.</p></div>
436    
437
438    
439        <h3>14th October 2021 <a href="/news/2021-10-14" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
440        
441    
442    
443        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-59" rel="nofollow">Datasette 0.59</a> adds column descriptions in metadata, a new <code>register_command</code> plugin hook, enhanced <code>--cors</code> support and a bunch of other fixes and documentation improvements. See also <a href="https://simonwillison.net/2021/Oct/19/datasette-059/" rel="nofollow">the annotated release notes</a>.</p></div>
444    
445
446    
447        <h3>8th September 2021 <a href="/news/2021-09-08" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
448        
449    
450    
451        <div style="white-space: normal"><p><a href="https://datasette.io/desktop" rel="nofollow">Datasette Desktop</a> is a new macOS desktop application version of Datasette, which supports opening SQLite files on your computer, importing CSV files and installing plugins. I wrote more about how 
451it works in <a href="https://simonwillison.net/2021/Sep/8/datasette-desktop/" rel="nofollow">Datasette Desktop—a macOS desktop application for Datasette</a>.</p></div>
452    
453
454    
455        <h3>28th July 2021 <a href="/news/2021-07-28" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
456        
457    
458    
459        <div style="white-space: normal"><p><a href="https://simonwillison.net/2021/Jul/28/baked-data/" rel="nofollow">The Baked Data architectural pattern</a> describes a pattern commonly used with Datasette where the content for a site is bundled inside a SQLite database file and included alongside templates and application code in a deployment to a serverless hosting provider.</p></div>
460    
461
462    
463        <h3>15th July 2021 <a href="/news/2021-07-15" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
464        
465    
466    
467        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-58" rel="nofollow">Datasette 0.58</a> has new plugin hooks, a huge performance improvement for faceting, support for Unix domain sockets and several other improvements. Read <a href="https://simonwillison.net/2021/Jul/16/datasette-058/" rel="nofollow">the annotated release notes</a> for extra background and context on the release.</p></div>
468    
469
470    
471        <h3>5th June 2021 <a href="/news/2021-06-05" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
472        
473    
474    
475        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-57" rel="nofollow">Datasette 0.57</a> is out with an important <a href="https://github.com/simonw/datasette/security/advisories/GHSA-xw7c-jx9m-xh5g" rel="nofollow">security patch</a> plus a number of new features and bug fixes. Datasette 0.56.1, also out today, provides the security patch for users who are not yet ready to upgrade to the latest version.</p></div>
476    
477
478    
479        <h3>10th May 2021 <a href="/news/2021-05-10" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
480        
481    
482    
483        <div style="white-space: normal"><p><a href="https://simonwillison.net/2021/May/10/django-sql-dashboard/" rel="nofollow">Django SQL Dashboard</a> is a new tool that brings a useful authenticated subset of Datasette to Django projects that are built on top of PostgreSQL.</p></div>
484    
485
486    
487        <h3>28th March 2021 <a href="/news/2021-03-28" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
488        
489    
490    
491        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-56" rel="nofollow">Datasette 0.56</a> has bug fixes and documentation improvements, plus some new documented internal APIs for plugin authors and SpatiaLite 5 bundled with the official <a href="https://docs.datasette.io/en/stable/installation.html#using-docker" rel="nofollow">Datasette Docker container</a>.</p></div>
492    
493
494    
495        <h3>18th February 2021 <a href="/news/2021-02-18" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
496        
497    
498    
499        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-55" rel="nofollow">Datasette 0.55</a> adds support for cross-database SQL queries. You can now run <code>datasette --crossdb one.db two.db</code> and then run queries that join data from tables in both of those database files - see <a href="https://docs.datasette.io/en/stable/sql_queries.html#cross-database-queries" rel="nofollow">cross-database queries</a> in the documentation for more details.</p>
500<p><a href="https://sqlite-utils.datasette.io/en/stable/changelog.html#v3-6" rel="nofollow">sqlite-utils 3.6</a> adds similar features: a <code>db.attach(alias, filepath)</code> Python API method and <code>--attach alias filepath.db</code> command-line option, both for attaching additional databases in order to execute cross-database queries.</p></div>
501    
502
503    
504        <h3>7th February 2021 <a href="/news/2021-02-07" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
505        
506    
507    
508        <div style="white-space: normal"><p>This new <a href="https://simonwillison.net/2021/Feb/7/video/" rel="nofollow">Video introduction to Datasette and sqlite-utils</a> provides a full introduction to both Datasette and <a href="https://sqlite-utils.datasette.io/" rel="nofollow">sqlite-utils</a> in 17 minutes, including a live demo of creating a database from a CSV file and publishing it to Google Cloud Run.</p></div>
509    
510
511    
512        <h3>3rd February 2021 <a href="/news/2021-02-03" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
513        
514    
515    
516        <div style="white-space: normal"><p><a href="https://simonwillison.net/2021/Feb/4/datasette-tiles/" rel="nofollow">Serving map tiles from SQLite with MBTiles and datasette-tiles</a>. <a href="https://datasette.io/plugins/datasette-tiles" rel="nofollow">datasette-tiles</a> is a new plugin that adds a tile server to Datasette, serving map tiles from databases that conform to <a href="https://github.com/mapbox/mbtiles-spec" rel="nofollow">the MBTiles specification</a>. <a href="https://datasette.io/tools/download-tiles" rel="nofollow">download-tiles</a> is a tool for building these databases, and <a href="https://datasette.io/plugins/datasette-basemap" rel="nofollow">datasette-basemap</a> is a plugin that bundles a 22MB SQLite database with OpenStreetMap tiles covering zoom levels 0-6 for the entire world.</p></div>
517    
518
519    
520        <h3>25th January 2021 <a href="/news/2021-01-25" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
521        
522    
523    
524        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-54" rel="nofollow">Datasette 0.54</a> is out today. Highlights include the new <code>_internal</code> in-memory database exposing details of connected tables, plus support for JavaScript modules in plugins and add-on scripts. More commentary on this release is available in the <a href="https://simonwillison.net/2021/Jan/25/datasette/" rel="nofollow">annotated release notes</a>.</p></div>
525    
526
527    
528        <h3>24th January 2021 <a href="/news/2021-01-24" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
529        
530    
531    
532        <div style="white-space: normal"><p><a href="https://simonwillison.net/2021/Jan/24/drawing-shapes-spatialite/" rel="nofollow">Drawing shapes on a map to query a SpatiaLite database</a> introduces the new <a href="https://datasette.io/plugins/datasette-leaflet-freedraw" rel="nofollow">datasette-leaflet-freedraw</a> plugin, which adds support for drawing shapes on a map to specify a GeoJSON MultiPolygon that can be used to query SpatiaLite databases.</p></div>
533    
534
535    
536        <h3>7th January 2021 <a href="/news/2021-01-07" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
537        
538    
539    
540        <div style="white-space: normal"><p><a href="https://simonwillison.net/2021/Jan/7/css-apis-no-javascript/" rel="nofollow">APIs from CSS without JavaScript: the datasette-css-properties plugin</a> introduces <a href="https://datasette.io/plugins/datasette-css-properties" rel="nofollow">datasette-css-properties</a>, a highly experimental plugin that can output table rows and SQL query results as CSS stylesheets defining custom properties that can then be used to customize a static HTML page.</p></div>
541    
542
543    
544        <h3>19th December 2020 <a href="/news/2020-12-19" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
545        
546    
547    
548        <div style="white-space: normal"><p>New on this site: a <a href="https://datasette.io/tools" rel="nofollow">Datasette Tools</a> directory and a <a href="https://datasette.io/-/beta" rel="nofollow">search engine</a> that covers documentation, tools, plugins, releases and more. The search engine uses <a href="https://github.com/dogsheep/d
548ogsheep-beta" rel="nofollow">Dogsheep Beta</a> - I wrote about how that works in <a href="https://simonwillison.net/2020/Dec/19/dogsheep-beta/" rel="nofollow">Building a search engine for datasette.io</a>.</p></div>
549    
550
551    
552        <h3>13th December 2020 <a href="/news/2020-12-13" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
553        
554    
555    
556        <div style="white-space: normal"><p>I wrote more about how this site works in <a href="https://simonwillison.net/2020/Dec/13/datasette-io/" rel="nofollow">Weeknotes: datasette.io, an official project website for Datasette</a>.</p></div>
557    
558
559    
560        <h3>10th December 2020 <a href="/news/2020-12-10" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
561        
562    
563    
564        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-53" rel="nofollow">Datasette 0.53</a> - <code>datasette serve --create</code> option, <code>?column__arraynotcontains=</code> table filter, <code>?_header=off</code> CSV option and updated links to reflect the new project website.</p></div>
565    
566
567    
568    
569        <div style="white-space: normal"><p><a href="https://datasette.io/" rel="nofollow">New Datasette project website</a> - three years after the first release Datasette finally has its own website! The site includes project <a href="https://datasette.io/news" rel="nofollow">news</a>, a <a href="https://datasette.io/plugins" rel="nofollow">plugin directory</a>, <a href="https://datasette.io/for" rel="nofollow">use-cases</a> and <a href="https://datasette.io/examples" rel="nofollow">examples</a>. The site is implemented using Datasette custom templates, and the source code is available <a href="https://github.com/simonw/datasette.io" rel="nofollow">on GitHub</a>.</p></div>
570    
571
572    
573        <h3>28th November 2020 <a href="/news/2020-11-28" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
574        
575    
576    
577        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-52" rel="nofollow">Datasette 0.52</a> - <code>--config</code> is now <code>--setting</code>, new <code>database_actions</code> plugin hook, <code>datasette publish cloudrun --apt-get-install</code> option and several bug fixes.</p></div>
578    
579
580    
581        <h3>31st October 2020 <a href="/news/2020-10-31" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
582        
583    
584    
585        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-51" rel="nofollow">Datasette 0.51</a> - A new visual design, plugin hooks for adding navigation options, better handling of binary data, URL building utility methods and better support for running Datasette behind a proxy. <a href="https://simonwillison.net/2020/Nov/1/datasette-0-51/" rel="nofollow">Annotated release notes</a>.</p></div>
586    
587
588    
589        <h3>9th October 2020 <a href="/news/2020-10-09" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
590        
591    
592    
593        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-50" rel="nofollow">Datasette 0.50</a> - New column actions menu. <code>datasette.client</code> object for plugins to make internal API requests. Improved documentation on deploying Datasette. <a href="https://simonwillison.net/2020/Oct/9/datasette-0-50/" rel="nofollow">Annotated release notes</a>.</p></div>
594    
595
596    
597        <h3>14th September 2020 <a href="/news/2020-09-14" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
598        
599    
600    
601        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-49" rel="nofollow">Datasette 0.49</a> - JSON API for writable canned queries, path parameters for custom pages. See also <a href="https://simonwillison.net/2020/Sep/15/datasette-0-49/" rel="nofollow">Datasette 0.49: The annotated release notes</a>.</p></div>
602    
603
604    
605        <h3>16th August 2020 <a href="/news/2020-08-16" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
606        
607    
608    
609        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-48" rel="nofollow">Datasette 0.48</a> - Documentation now lives at <a href="https://docs.datasette.io/" rel="nofollow">docs.datasette.io</a>, improvements to the <code>extra_template_vars</code>, <code>extra_css_urls</code>, <code>extra_js_urls</code> and <code>extra_body_script</code> plugin hooks.</p></div>
610    
611
612    
613        <h3>11th August 2020 <a href="/news/2020-08-11" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
614        
615    
616    
617        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-47" rel="nofollow">Datasette 0.47</a> - Datasette can now be installed using Homebrew! <code>brew install simonw/datasette/datasette</code>. Also new: <code>datasette install name-of-plugin</code> and <code>datasette uninstall name-of-plugin</code> commands, and <code>datasette --get '/-/versions.json'</code> to output the result of Datasette HTTP calls on the command-line.</p></div>
618    
619
620    
621        <h3>9th August 2020 <a href="/news/2020-08-09" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
622        
623    
624    
625        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-46" rel="nofollow">Datasette 0.46</a> - security fix relating to CSRF protection for writable canned queries, a new logo, new debugging tools, improved file downloads and more.</p></div>
626    
627
628    
629        <h3>6th August 2020 <a href="/news/2020-08-06" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
630        
631    
632    
633        <div style="white-space: normal"><p><a href="https://simonwillison.net/2020/Aug/7/datasette-graphql/" rel="nofollow">GraphQL in Datasette with the new datasette-graphql plugin</a></p></div>
634    
635
636    
637        <h3>24th July 2020 <a href="/news/2020-07-24" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
638        
639    
640    
641        <div style="white-space: normal"><p>Two new plugins: <a href="https://simonwillison.net/2020/Jul/23/datasette-copyable-datasette-insert-api/" rel="nofollow">datasette-copyable and datasette-insert-api</a>. <code>datasette-copyable</code> adds copy-and-paste export options, and <code>datasette-insert-api</code> lets you create tables and insert or update data by POSTing JSON directly to Datasette.</p></div>
642    
643
644    
645        <h3>1st July 2020 <a href="/news/2020-07-01" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
646        
647    
648    
649        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-45" rel="nofollow">Datasette 0.45</a> - <a href="https://docs.datasette.io/en/stable/sql_queries.html#canned-queries-magic-parameters" rel="nofollow">Magic parameters for canned queries</a>, a log out feature, improved plugin documentation and four new plugin hooks. See also <a href="https://simonwillison.net/2020/Jul/1/datasette-045/" rel="nofollow">Datasette 0.45: The annotated release notes</a>.</p></div>
650    
651
652    
653        <h3>20th June 2020 <a href="/news/2020-06-20" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
654        
655    
656    
657        <div style="white-space: normal"><p><a href="https://simonwillison.net/2020/Jun/20/cookiecutter-plugins/" rel="nofollow">A cookiecutter template for writing Datasette plugins</a></p></div>
658    
659
660    
661        <h3>11th June 2020 <a href="/news/2020-06-11" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
662        
663    
664    
665        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-44" rel="nofollow">Datasette 0.44</a> - <a href="https://docs.datasette.io/en/stable/authentication.html" rel="nofollow">Authentication and permissions</a>, <a href="https://docs.datasette.io/en/stable/sql_queries.html#writable-canned-queries" rel="nofollow">writable canned queries</a>, flash messages, new plugin hooks and much, much more.</p></div>
666    
667
668    
669        <h3>28th May 2020 <a href="/news/2020-05-28" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
670        
671    
672    
673        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-43" rel="nofollow">Datasette 0.43</a>
673 - Redesigned <a href="https://docs.datasette.io/en/stable/plugins.html#plugin-register-output-renderer" rel="nofollow">register_output_renderer</a> plugin hook and various small improvements and fixes.</p></div>
674    
675
676    
677        <h3>8th May 2020 <a href="/news/2020-05-08" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
678        
679    
680    
681        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-42" rel="nofollow">Datasette 0.42</a> - Documented internal methods for plugins to execute read queries against a database.</p></div>
682    
683
684    
685        <h3>6th May 2020 <a href="/news/2020-05-06" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
686        
687    
688    
689        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-41" rel="nofollow">Datasette 0.41</a> - New mechanism for <a href="https://docs.datasette.io/en/0.41/custom_templates.html#custom-pages" rel="nofollow">creating custom pages</a>, new <a href="https://docs.datasette.io/en/0.41/config.html#configuration-directory-mode" rel="nofollow">configuration directory mode</a>, new <code>?column__notlike=</code> table filter and various other smaller improvements.</p></div>
690    
691
692    
693        <h3>21st April 2020 <a href="/news/2020-04-21" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
694        
695    
696    
697        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-40" rel="nofollow">Datasette 0.40</a> - Metadata can now be provided as YAML instead of JSON. Publishing to Zeit Now v1 is no longer supported, but Now v2 support is provided by the new <a href="https://github.com/simonw/datasette-publish-now" rel="nofollow">datasette-publish-now</a> plugin. Various bug fixes.</p></div>
698    
699
700    
701        <h3>24th March 2020 <a href="/news/2020-03-24" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
702        
703    
704    
705        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-39" rel="nofollow">Datasette 0.39</a> - New <code>base_url</code> configuration option for running Datasette under a different URL prefix, <code>"sort"</code> and <code>"sort_desc"</code> metadata options for setting a default sort order for a table.</p></div>
706    
707
708    
709        <h3>8th March 2020 <a href="/news/2020-03-08" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
710        
711    
712    
713        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-38" rel="nofollow">Datasette 0.38</a> - New <code>--memory</code> option for <code>datasete publish cloudrun</code>, <a href="https://hub.docker.com/r/datasetteproject/datasette" rel="nofollow">Docker image</a> upgraded to SQLite 3.31.1.</p></div>
714    
715
716    
717        <h3>25th February 2020 <a href="/news/2020-02-25" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
718        
719    
720    
721        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-37" rel="nofollow">Datasette 0.37</a> - new internal APIs enabling plugins to safely write to databases. Read more here: <a href="https://simonwillison.net/2020/Feb/26/weeknotes-datasette-writes/" rel="nofollow">Datasette Writes</a>.</p></div>
722    
723
724    
725        <h3>21st February 2020 <a href="/news/2020-02-21" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
726        
727    
728    
729        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-36" rel="nofollow">Datasette 0.36</a> - new internals documentation for plugins, <code>prepare_connection()</code> now accepts optional <code>database</code> and <code>datasette</code> arguments.</p></div>
730    
731
732    
733        <h3>4th February 2020 <a href="/news/2020-02-04" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
734        
735    
736    
737        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-35" rel="nofollow">Datasette 0.35</a> - new <code>.render_template()</code> method for plugins.</p></div>
738    
739
740    
741        <h3>29th January 2020 <a href="/news/2020-01-29" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
742        
743    
744    
745        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-34" rel="nofollow">Datasette 0.34</a> - improvements to search, <code>datasette publish cloudrun</code> and <code>datasette package</code>.</p></div>
746    
747
748    
749        <h3>21st January 2020 <a href="/news/2020-01-21" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
750        
751    
752    
753        <div style="white-space: normal"><p><a href="https://simonwillison.net/2020/Jan/21/github-actions-cloud-run/" rel="nofollow">Deploying a data API using GitHub Actions and Cloud Run</a> - how to use GitHub Actions and Google Cloud Run to automatically scrape data and deploy the result as an API with Datasette.</p></div>
754    
755
756    
757        <h3>22nd December 2019 <a href="/news/2019-12-22" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
758        
759    
760    
761        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-33" rel="nofollow">Datasette 0.33</a> - various small improvements.</p></div>
762    
763
764    
765        <h3>19th December 2019 <a href="/news/2019-12-19" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
766        
767    
768    
769        <div style="white-space: normal"><p>
769<a href="https://medium.com/jsk-class-of-2020/building-tools-to-bring-data-driven-reporting-to-more-newsrooms-4520a0c9b3f2" rel="nofollow">Building tools to bring data-driven reporting to more newsrooms</a> - some notes on my JSK fellowship so far.</p></div>
770    
771
772    
773        <h3>2nd December 2019 <a href="/news/2019-12-02" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
774        
775    
776    
777        <div style="white-space: normal"><p><a href="https://www.niche-museums.com/" rel="nofollow">Niche Museums</a> is a new site entirely powered by Datasette, using custom templates and plugins. <a href="https://simonwillison.net/2019/Nov/25/niche-museums/" rel="nofollow">niche-museums.com, powered by Datasette</a> describes how the site works, and <a href="https://simonwillison.net/2019/Dec/3/datasette-atom/" rel="nofollow">datasette-atom: Define an Atom feed using a custom SQL query</a> describes how the new <a href="https://github.com/simonw/datasette-atom" rel="nofollow">datasette-atom plugin</a> was used to add an Atom syndication feed to the site.</p></div>
778    
779
780    
781        <h3>14th November 2019 <a href="/news/2019-11-14" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
782        
783    
784    
785        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-32" rel="nofollow">Datasette 0.32</a> now uses asynchronous rendering in Jinja templates, which means template functions can perform asynchronous operations such as executing SQL queries. <a href="https://github.com/simonw/datasette-template-sql" rel="nofollow">datasette-template-sql</a> is a new plugin uses this capability to add a new custom <code>sql(sql_query)</code> template function.</p></div>
786    
787
788    
789        <h3>11th November 2019 <a href="/news/2019-11-11" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
790        
791    
792    
793        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-31" rel="nofollow">Datasette 0.31</a> - the first version of Datasette to support Python 3.8, which means dropping support for Python 3.5.</p></div>
794    
795
796    
797        <h3>18th October 2019 <a href="/news/2019-10-18" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
798        
799    
800    
801        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-30" rel="nofollow">Datasette 0.30</a></p></div>
802    
803
804    
805        <h3>13th July 2019 <a href="/news/2019-07-13" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
806        
807    
808    
809        <div style="white-space: normal"><p><a href="https://simonwillison.net/2019/Jul/14/sso-asgi/" rel="nofollow">Single sign-on against GitHub using ASGI middleware</a> talks about the implementation of <a href="https://github.com/simonw/datasette-auth-github" rel="nofollow">datasette-auth-github</a> in more detail.</p></div>
810    
811
812    
813        <h3>7th July 2019 <a href="/news/2019-07-07" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
814        
815    
816    
817        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-29" rel="nofollow">Datasette 0.29</a> - ASGI, new plugin hooks,
818facet by date and much, much more...</p>
819<ul>
820<li><a href="https://github.com/simonw/datasette-auth-github" rel="nofollow">datasette-auth-github</a> - a new plugin for Datasette
8210.29 that lets you require users to authenticate against GitHub before accessing your Datasette instance.
822You can whitelist specific users, or you can restrict access to members of specific GitHub organizations
823or teams.</li>
824<li><a href="https://github.com/simonw/datasette-cors" rel="nofollow">datasette-cors</a> - a plugin that lets you configure
825CORS access from a list of domains (or a set of domain wildcards) so you can make JavaScript calls
826to a Datasette instance from a specific set of other hosts.</li>
827</ul></div>
828    
829
830    
831        <h3>23rd June 2019 <a href="/news/2019-06-23" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
832        
833    
834    
835        <div style="white-space: normal"><p><a href="https://simonwillison.net/2019/Jun/23/datasette-asgi/" rel="nofollow">Porting Datasette to ASGI, and Turtles all the way down</a></p></div>
836    
837
838    
839        <h3>21st May 2019 <a href="/news/2019-05-21" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
840        
841    
842    
843        <div style="white-space: normal"><p>The anonymized raw data from <a href="https://stackoverflow.blog/2019/05
843/21/public-data-release-of-stack-overflows-2019-developer-survey/" rel="nofollow">the Stack Overflow Developer Survey 2019</a> has been <a href="https://glitch.com/culture/discover-insights-explore-developer-survey-results-2019/" rel="nofollow">published in partnership with Glitch</a>, powered by Datasette.</p></div>
844    
845
846    
847        <h3>19th May 2019 <a href="/news/2019-05-19" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
848        
849    
850    
851        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-28" rel="nofollow">Datasette 0.28</a> - a salmagundi of new features!</p>
852<ul>
853<li>No longer immutable! Datasette now supports <a href="https://docs.datasette.io/en/stable/changelog.html#supporting-databases-that-change" rel="nofollow">databases that change</a>.</li>
854<li><a href="https://docs.datasette.io/en/stable/changelog.html#faceting-improvements-and-faceting-plugins" rel="nofollow">Faceting improvements</a>
855including facet-by-JSON-array and the ability to define custom faceting using plugins.</li>
856<li><a href="https://docs.datasette.io/en/stable/changelog.html#datasette-publish-cloudrun" rel="nofollow">datasette publish cloudrun</a>
857lets you publish databases to Google's new Cloud Run hosting service.</li>
858<li>New <a href="https://docs.datasette.io/en/stable/changelog.html#register-output-renderer-plugins" rel="nofollow">register_output_renderer</a>
859plugin hook for adding custom output extensions to Datasette in addition to the default <code>.json</code> and <code>.csv</code>.</li>
860<li>Dozens of other smaller features and tweaks - see <a href="https://docs.datasette.io/en/stable/changelog.html#v0-28" rel="nofollow">the release notes</a> for full details.</li>
861<li>Read more about this release here: <a href="https://simonwillison.net/2019/May/19/datasette-0-28/" rel="nofollow">Datasette 0.28 - and why master should always be releasable</a></li>
862</ul></div>
863    
864
865    
866        <h3>24th February 2019 <a href="/news/2019-02-24" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
867        
868    
869    
870        <div style="white-space: normal"><p><a href="https://simonwillison.net/2019/Feb/25/sqlite-utils/" rel="nofollow">sqlite-utils: a Python library and CLI tool for building SQLite databases</a> - a partner tool for easily creating SQLite databases for use with Datasette.</p></div>
871    
872
873    
874        <h3>31st January 2019 <a href="/news/2019-01-31" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
875        
876    
877    
878        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-27" rel="nofollow">Datasette 0.27</a> - <code>datasette plugins</code> command, newline-delimited JSON export option, new documentation on <a href="https://docs.datasette.io/en/stable/ecosystem.html" rel="nofollow">The Datasette Ecosystem</a>.</p></div>
879    
880
881    
882        <h3>10th January 2019 <a href="/news/2019-01-10" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
883        
884    
885    
886        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-26-1" rel="nofollow">Datasette 0.26.1</a> - SQLite upgrade in Docker image, <code>/-/versions</code> now shows SQLite compile options.</p></div>
887    
888
889    
890        <h3>2nd January 2019 <a href="/news/2019-01-02" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
891        
892    
893    
894        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-26" rel="nofollow">Datasette 0.26</a> - minor bug fixes, <code>datasette publish now --alias</code> argument.</p></div>
895    
896
897    
898        <h3>18th December 2018 <a href="/news/2018-12-18" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
899        
900    
901    
902        <div style="white-space: normal"><p><a href="https://simonwillison.net/2018/Dec/19/fast-autocomplete-search/" rel="nofollow">Fast Autocomplete Search for Your Website</a> - a new tutorial on using Datasette to build a JavaScript autocomplete search engine.</p></div>
903    
904
905    
906        <h3>3rd October 2018 <a href="/news/2018-10-03" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
907        
908    
909    
910        <div style="white-space: normal"><p><a href="https://simonwillison.net/2018/Oct/4/datasette-ideas/" rel="nofollow">The interesting ideas in Datasette</a> - a write-up of some of the less obvious interesting ideas embedded in the Datasette project.</p></div>
911    
912
913    
914        <h3>19th September 2018 <a href="/news/2018-09-19" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
915        
916    
917    
918        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-25" rel="nofollow">Datasette 0.25</a> - New plugin hooks, improved database view support and an easier way to use more recent versions of SQLite.</p></div>
919    
920
921    
922        <h3>23rd July 2018 <a href="/news/2018-07-23" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
923        
924    
925    
926        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-24" rel="nofollow">Datasette 0.24</a> - a number of small new features</p></div>
927    
928
929    
930        <h3>29th June 2018 <a href="/news/2018-06-29" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
931        
932    
933    
934        <div style="white-space: normal"><p><a href="https://github.com/simonw/datasette-vega" rel="nofollow">datasette-vega</a>, a new plugin for visualizing data as bar, line or scatter charts</p></div>
935    
936
937    
938        <h3>21st June 2018 <a href="/news/2018-06-21" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
939        
940    
941    
942        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-23-1" rel="nofollow">Datasette 0.23.1</a> - minor bug fixes</p></div>
943    
944
945    
946        <h3>18th June 2018 <a href="/news/2018-06-18" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
947        
948    
949    
950        <div style="white-space: normal"><p><a href="https://docs.datasette.io/en/stable/changelog.html#v0-23" rel="nofollow">Datasette 0.23: CSV, SpatiaLite and more</a> - CSV export, foreign key expansion in JSON and CSV, new config options, improved support for SpatiaLite and a bunch of other improvements</p></div>
951    
952
953    
954        <h3>23rd May 2018 <a href="/news/2018-05-23" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
955        
956    
957    
958        <div style="white-space: normal"><p><a href="https://github.com/simonw/datasette/releases/tag/0.22.1" rel="nofollow">Datasette 0.22.1 bugfix</a> plus we now use <a href="https://github.com/warner/python-versioneer" rel="nofollow">versioneer</a></p></div>
959    
960
961    
962        <h3>20th May 2018 <a href="/news/2018-05-20" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
963        
964    
965    
966        <div style="white-space: normal"><p><a href="https://simonwillison.net/2018/May/20/datasette-facets" rel="nofollow">Datasette 0.22: Datasette Facets</a></p></div>
967    
968
969    
970        <h3>5th May 2018 <a href="/news/2018-05-05" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
971        
972    
973    
974        <div style="white-space: normal"><p><a href="https://github.com/simonw/datasette/releases/tag/0.21" rel="nofollow">Datasette 0.21: New _shape=, new _size=, search within columns</a></p></div>
975    
976
977    
978        <h3>25th April 2018 <a href="/news/2018-04-25" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
979        
980    
981    
982        <div style="white-space: normal"><p><a href="https://simonwillison.net/2018/Apr/25/register-members-interests/" rel="nofollow">Exploring the UK Register of Members Interests with SQL and Datasette</a> - a tutorial describing how <a href="https://register-of-members-interests.datasettes.com/" rel="nofollow">register-of-members-interests.datasettes.com</a>
982 was built (<a href="https://github.com/simonw/register-of-members-interests" rel="nofollow">source code here</a>)</p></div>
983    
984
985    
986        <h3>20th April 2018 <a href="/news/2018-04-20" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
987        
988    
989    
990        <div style="white-space: normal"><p><a href="https://simonwillison.net/2018/Apr/20/datasette-plugins/" rel="nofollow">Datasette plugins, and building a clustered map visualization</a> - introducing Datasette's new plugin system and <a href="https://pypi.org/project/datasette-cluster-map/" rel="nofollow">datasette-cluster-map</a>, a plugin for visualizing data on a map</p></div>
991    
992
993    
994    
995        <div style="white-space: normal"><p><a href="https://github.com/simonw/datasette/releases/tag/0.20" rel="nofollow">Datasette 0.20: static assets and templates for plugins</a></p></div>
996    
997
998    
999        <h3>16th April 2018 <a href="/news/2018-04-16" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
1000        
1001    
1002    
1003        <div style="white-space: normal"><p><a href="https://github.com/simonw/datasette/releases/tag/0.19" rel="nofollow">Datasette 0.19: plugins preview</a></p></div>
1004    
1005
1006    
1007        <h3>14th April 2018 <a href="/news/2018-04-14" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
1008        
1009    
1010    
1011        <div style="white-space: normal"><p><a href="https://github.com/simonw/datasette/releases/tag/0.18" rel="nofollow">Datasette 0.18: units</a></p></div>
1012    
1013
1014    
1015        <h3>9th April 2018 <a href="/news/2018-04-09" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
1016        
1017    
1018    
1019        <div style="white-space: normal"><p><a href="https://github.com/simonw/datasette/releases/tag/0.15" rel="nofollow">Datasette 0.15: sort by column</a></p></div>
1020    
1021
1022    
1023        <h3>28th March 2018 <a href="/news/2018-03-28" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
1024        
1025    
1026    
1027        <div style="white-space: normal"><p><a href="https://simonwillison.net/2018/Mar/28/datasette-in-the-wild/" rel="nofollow">Baltimore Sun Public Salary Records</a> - a data journalism project from the Baltimore Sun powered by Datasette - source code <a href="https://github.com/baltimore-sun-data/salaries-datasette" rel="nofollow">is available here</a></p></div>
1028    
1029
1030    
1031        <h3>27th March 2018 <a href="/news/2018-03-27" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
1032        
1033    
1034    
1035        <div style="white-space: normal"><p><a href="https://wwwf.imperial.ac.uk/blog/research-software-engineering/2018/03/27/cloud-first-rapid-webapp-deployment-using-containers/" rel="nofollow">Cloud-first: Rapid webapp deployment using containers</a> - a tutorial covering deploying Datasette using Microsoft Azure by the Research Software Engineering team at Imperial College London</p></div>
1036    
1037
1038    
1039        <h3>28th January 2018 <a href="/news/2018-01-28" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
1040        
1041    
1042    
1043        <div style="white-space: normal"><p><a href="https://simonwillison.net/2018/Jan/28/analyzing-my-twitter-followers/" rel="nofollow">Analyzing my Twitter followers with Datasette</a> - a tutorial on using Datasette to analyze follower data pulled from the Twitter API</p></div>
1044    
1045
1046    
1047        <h3>17th January 2018 <a href="/news/2018-01-17" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
1048        
1049    
1050    
1051        <div style="white-space: normal"><p><a href="https://simonwillison.net/2018/Jan/17/datasette-publish/" rel="nofollow">Datasette Publish: a web app for publishing CSV files as an online database</a></p></div>
1052    
1053
1054    
1055        <h3>12th December 2017 <a href="/news/2017-12-12" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
1056        
1057    
1058    
1059        <div style="white-space: normal"><p><a href="https://simonwillison.net/2017/Dec/12/building-a-location-time-zone-api/" rel="nofollow">Building a location to time zone API with SpatiaLite, OpenStreetMap and Datasette</a></p></div>
1060    
1061
1062    
1063        <h3>9th December 2017 <a href="/news/2017-12-09" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
1064        
1065    
1066    
1067        <div style="white-space: normal"><p><a href="https://github.com/simonw/datasette/releases/tag/0.14" rel="nofollow">Datasette 0.14: customization edition</a></p></div>
1068    
1069
1070    
1071        <h3>25th November 2017 <a href="/news/2017-11-25" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
1072        
1073    
1074    
1075        <div style="white-space: normal"><p><a href="https://simonwillison.net/2017/Nov/25/new-in-datasette/" rel="nofollow">New in Datasette: filters, foreign keys and search</a></p></div>
1076    
1077
1078    
1079        <h3>13th November 2017 <a href="/news/2017-11-13" style="font-size: 0.8em; opacity: 0.4">#</a></h3>
1080        
1081    
1082    
1083        <div style="white-space: normal"><p><a href="https://simonwillison.net/2017/Nov/13/datasette/" rel="nofollow">Datasette: instantly create and publish an API for your SQLite databases</a></p></div>
1084    
1085
1086
1087
1088    </div>
1089  </main>
1090  <footer>Powered by <a href="https://datasette.io/" title="Datasette v1.0a40">Datasette</a>
1091  &middot; <a href="https://github.com/simonw/datasette.io">How this site works</a>
1092  &middot; <a href="https://github.com/simonw/datasette/blob/main/CODE_OF_CONDUCT.md">Code of conduct</a>
1093</footer>
1094</body>
1095</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.