In October 2026, I moved the Future Thinkers Club platform off MongoDB and onto Turso. The interesting part is not the move itself. It is that the application code barely noticed: roughly 1,250 database calls stayed exactly as they were.

Why move at all

The platform runs on Vercel, on serverless functions. The native database driver path did not work there, so the fix was a pure-Python client that talks to Turso over HTTP. No native driver, no compiled dependency, just HTTP requests from Python. That one decision shaped the whole migration.

The adapter trick

Instead of rewriting every query in the app, I wrote a MongoDB-compatible adapter on top of Turso. The app keeps calling the same functions it always called, and the adapter translates them into Turso operations underneath. The interface stayed, the engine changed.

File storage moved the same way. Files used to live in GridFS; now they live in a single Turso table called fs_files, with a path, the file data as a BLOB, a content type, and metadata. The storage functions kept their exact signatures: save a file, read a file, delete a file. The rest of the app never knew anything changed.

The result

The migration went live with the health endpoint reporting the database up, and the platform kept working through the switch: logins, clubs, messages, book uploads, all on the new database. No data loss, no rewrite of the application, and no downtime for the students using it.

The lesson I took from it is one I now use on every project: when you need to change infrastructure, change it behind an interface you already own. If your app talks to a database through one adapter, you can swap the database. If it talks to MongoDB in 1,250 different places, you cannot.

The platform is live at https://f-thinkers.vercel.app, and it is one of the 17 projects on my portfolio at https://rayyans-showroom.vercel.app/projects/future-thinkers.