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'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'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 "canned queries"), 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 "Jump to" menu in Datasette 1.0a30</a></h4> 116 <p>Datasette 1.0a30, released today, provides a new "Jump menu" 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'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&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 · <a href="https://github.com/simonw/datasette.io">How this site works</a> 1092 · <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.