Top
Best
New

Posted by lumpa 6 days ago

Datasette Apps: Host custom HTML applications inside Datasette(simonwillison.net)
156 points | 68 commentspage 2
AIcanbiteme 5 days ago|
How does this work, does some mechanism replace the actual tape drive in the Datasette? Can you just use the tape port with the gadget or does it somehow need the tape drive? How do you access the HTML applications, how is the translation to PETSCII handled?

I have no idea how this could work but as a long time Commodore 64 fan I'm interested. The link won't load for me, sadly. Can somebody give me a quick rundown on how I can host HTML apps inside my Commodore Datasette tape drive?

Trialog 3 days ago|
[dead]
tuo-lei 5 days ago||
nice pattern with the stored queries for writes. but who defines them? if the app author can create their own stored queries, the write restriction is basically honor system.
simonw 5 days ago|
There are actually two types of stored query: regular and "trusted".

Any query you save is a regular query. It operates under the permissions of the viewer, and checks that the viewer has the necessary permissions - read access to the database, or more finely grained write access which checks the individual tables they will be writing to.

The problem with that is that it means you can't build an app which other, signed out or unprivileged users, can use.

So there's a second category: "trusted" queries. These are current only configurable by the site administrator who controls the Datasette deployment, as they go straight in the configuration file: https://docs.datasette.io/en/latest/sql_queries.html#trusted...

I'm planning to add a way for trusted users to create these through the UI via another permission, with a very strong UI warning to only use this feature if you understand the implications.

Here's a demo of an app that runs against trusted stored queries: https://agent.datasette.io/-/apps/01ktw6fpag19dnnga85t2ced3p

Source code here, showing how those queries are called: https://gist.github.com/simonw/6e6a3760fa0528ceda1f65d789069...

It uses these queries: https://agent.datasette.io/content/timeline-filtered and https://agent.datasette.io/content/timeline-count

Terretta 5 days ago||
A compliment and a curiosity:

1. Love the addition. Everything becoming its own self-serve artifact factory is great. Malleable software's been a dream a long time, it's supposed to be soft and this concept helps get it there.

2. Since Claude goes on and on about surface, now everyone is using it. Or was everyone using it already?

FTA: “I quickly realised that the sandboxed pattern is interesting for way more than just adding custom apps to the interface surface and promoted it to its own top-level concept within the Datasette ecosystem.”

For decades that sentence would have parsed without the word surface in it. What does it mean that's suddenly so – um – load-bearing?

simonw 5 days ago|
Huh... not sure how that got in there, I wrote this without LLM assistance (aside from a proof reading run, but I do that in Claude so it doesn't have the ability to edit my own text).

It's quite possible I've been subconsciously influenced into thinking in terms of "surfaces" though!

I just edited that to this, which is a bit cleaner:

> I quickly realised that the sandboxed pattern is interesting for way more than just adding custom apps in a chat interface and promoted it to its own top-level concept within the Datasette ecosystem.

sumitkumar 6 days ago||
I just went through the github project repository.

It has 119 repositories.

Is this how AI slop looks like in code? Made for the agents, by the agents? Is this separation of concerns or context management with agents as a first class residents and humans merely acting as custodians?

simonw 6 days ago||
https://github.com/datasette has 119 - but there are also 232 under my simonw account from before I started the Datasette org: https://github.com/simonw?tab=repositories&q=Datasette-&type...

Most of them predate coding agents. I started the Datasette project in 2017.

In fact we can answer this with Datasette! Here's a query showing the 111 packages with at least one release prior to ChatGPT on Nov 30 2022: https://datasette.simonwillison.net/simonwillisonblog?sql=wi...

And this is that same query for Claude Code (Feb 24 2025) - which returns 172:

https://datasette.simonwillison.net/simonwillisonblog?sql=wi...

I'm at 205 today (some of the repos on GitHub aren't plugins, and some in the datasette org were written and released by Alex Garcia which excludes them from my own releases database).

Most of the plugins I wrote this year have been heavily AI-assisted, but that wasn't the case for the older ones. Here's my post from October 2025 when I first realized Claude Sonnet 4.5 could one-shot a plugin for me: https://simonwillison.net/2025/Oct/8/claude-datasette-plugin...

The reason there are so many repos is that Datasette uses a plugin architecture, which makes it much easier to try out different features without risk of corrupting the core project with things that turn out to be bad ideas.

I gave a talk about plugin architecture at DjangoCon a couple of years ago: https://2024.djangocon.us/talks/how-to-design-and-implement-...

sumitkumar 5 days ago||
Well, thank you for clarifying. The signal is getting lost in the noise. I assumed too soon after looking around just the datasette org github account and seeing so many repos and code being built so fast.
nbevans 6 days ago|||
Datasette pre-dates agentic AI
brcmthrowaway 6 days ago||
[flagged]
sumitkumar 6 days ago||
Our leader is Boris Cherny.

Simon needs to resist the pelicans(and the django mindset) and Garry needs a new loop which can loop on itself without any human trigger so that the agents can "dream" better. Who knew that it was not just the models which could hallucinate.

nryoo 6 days ago||
[dead]
Littice 6 days ago||
[dead]
xgulfie 6 days ago||
Why people feel the need to overload terms like "datasette" I'll never know
tadfisher 6 days ago||
I think the current meaning has quite successfully replaced the original usage. Unless you typed this on a Commodore VIC-20, I suppose.
voidUpdate 6 days ago||
For you maybe, but I've never heard of this site, my only reference for "datasette" is the commodore 1560
alnwlsn 5 days ago||
Me too, and also I've never used one and it was discontinued before I was born
simonw 6 days ago|||
I learned to program on a C64 and one of the first programs I wrote myself was an incredible basic "database" (really just a program that could store and then return simple fielded data.)

I named my database management software Datasette as an homage to the C64. I also figured it would be a unique name that would be easy to search for...

... jokes on me, it turns out the retro computing C64 community is way more active than I expected and there are still plenty of people taking about Datasette tape drives online, 30+ years after they stopped being manufactured and sold.

DANmode 6 days ago||
I can’t even parse what you’re complaining about. Could you elaborate?
jayknight 6 days ago|||
I'm assuming he's talking about the old hardware data cassette vs the software project of the save name?

https://en.wikipedia.org/wiki/Commodore_Datasette vs

https://datasette.io/

vermilingua 6 days ago|||
My favourite Datassette is the electronic artist.

https://datassette.bandcamp.com/

https://musicforprogramming.net/

DANmode 6 days ago|||
I’m assuming they’re just taking about the word dataset.

Either way feels ridiculous, but the human in me wants to know which it is ^_^

da_grift_shift 6 days ago|||

    10 PRINT "HAVE YOU TRIED READING IT AGAIN?"
    20 GOTO "https://news.ycombinator.com/item?id=48594798"
DANmode 5 days ago||
This comment was posted after my comment was…

Just read for the first time.

Thank you for the disambiguation for me - and the other readers.

Please hold the snark, lol

CurryFurry 5 days ago||
Why would / could i host data this large on a tape? Or did someone mis-use and re-label its meaning? Maybe for some tech hipster product?
hankbond 6 days ago|
Wow this is very similar to the direction im taking with my new project https://github.com/hank-bond/uix (warning the code base is certainly not messy but the application is barely usable for anything as of this post).

Here the goal is to be a self-assembling harness (akin to pi) but focusing on duplex human-agent interactivity over rendered HTML "apps". To start, it's focused more on the "please review this PR and then generate a one-page report" with the ability to write comments in the actual report that automatically get sent back to the agent. The end goal is closer to offering a substrate for less technical people to be able to build personal applications like

- an interactive wiki maintainer: chat with the agent about an article, pull out sections, append/create concepts in the wiki with the new info - agent code harness: agent tabs to the left, chat in middle, code diffs on the right (like the superset/commander class of apps)

Anyway, I'm really into the "self assembling" class of software where everything is basically just an SDK + Agent. I think we might actually be ushering in a new era of "personal computing" in that it's less friction than ever to personalize your setup to your whims. Anyway, thats the goal I'm reaching for.

It seems many others are coalescing on this idea at the same time, so it must just be in the aether.

ai_fry_ur_brain 6 days ago|
People that overuse LLMs I notice all build the same things and have the same ideas. Its one of the many reasons I avoid them, it kinda leads people into this average group where creativity is dead and there's a kinda hive mind controlling them.

Ive witnessed it many times now, im positive this phenomenon exists.

pietz 6 days ago|||
Or, your know, people who are exploring the limit of current tools come across the lack of certain solutions and start building them.
hankbond 6 days ago|||
People also build the same things if they have the same needs. That doesn't mean creativity is dead. My life as a software engineer is not that unique of others. This isn't really something to lament. There's nothing wrong with exploring similar ideas.