This morning I created a new project. I provided a postgres database URL to a remote service (with a non-standard connection string, includes a parameter "?sslmode=require"). Then, I said:
* "Write me a fastapi project to connect to a postgres database using a database url."
* "Retrieve the schema from the remote database." It used psql to connect, retrieves the schema. That was unexpected, it figured out not only a coding task, but an external tool to connect to a database and did it without anything more than me providing the DATABASE_URL. Actually, I should say, I told it to look inside the .env file, and it did that. I had that URL wrong initially, so I told it to reload once I corrected it. It never got confused by my disorganization.
* It automatically added sqlalchemy models and uses pydantic once it figured out the schema.
* "Create a webpage that lets me review one table."
* "Rewrite to use tailwindcss." It adds the correct tailwindcss CDN imports.
* It automatically adds a modal dialog when I click on one of the records.
* It categorized fields in the database into groupings inside the modal, groupings that do indeed make sense.
I know the devil is in the details, or in the future. I'm sure there are gaping security holes.
And, the update is that in the last hour claude somehow removed the rendering of the actual items. It is clever in troubleshooting: it created mocks if the data could not be loaded, it added error messages with the number of items retrieved. But, it does not have access to my browser console nor the DOM, and therein lies the problem. It is slow to copy and paste back and forth from the browser into the terminal. But, this feels like a great opportunity for a browser extension.
But, my takeaway is that I could have fixed this exact problem in five minutes if I had written the JS code. But, I have not looked at anything other than glancing at the diffs that fly by in the session.
This morning I created a new project. I provided a postgres database URL to a remote service (with a non-standard connection string, includes a parameter "?sslmode=require"). Then, I said:
I know the devil is in the details, or in the future. I'm sure there are gaping security holes.But, this saved me a lot of time and it works.