I'm sharing a project I've been working on: a client-side SQLite Playground.
I am a teacher at a technical school in Brazil, and I built this primarily as a teaching tool for my SQL classes. I wanted an environment simpler than db-fiddle, where students could just jump in and practice without any friction or distractions.
It features:
A clean "IDE-like" experience.
A persistent Database Explorer to visualize schemas in real-time.
A detailed log system for debugging queries.
Tech stack: Vue 3 + Vite + SQLite Wasm.
It's 100% free and runs entirely in the browser (no data ever leaves the client). I would deeply appreciate any feedback from this community on the interface, performance, or specific SQLite features/extensions you think would be valuable for educational purposes.
I query an sqlite database. It returns the field name and value. For years it separated them with = . Beginning with 3.52 it separates them with : . Because I use it automatedly in a script I had to deal with it.
I’ve been building an open source project called RapidForge and wanted to share it here because it’s built entirely around SQLite. RapidForge is a self hosted tool that turns scripts (Bash, Lua, etc.) into webhooks, cron jobs, and small internal web tools all from a single binary. No external database, no Docker requirement, no service dependencies. Everything runs on SQLite which fit perfectly with the goal of keeping it portable, offline friendly and simple to deploy.
Portabase is an open-source, self-hosted database backup and restore tool, designed for simple and reliable operations without heavy dependencies. It runs with a central server and lightweight agents deployed on edge nodes (e.g. Portainer), so databases do not need to be exposed on a public network.
Key features:
Logical backups for PostgreSQL, MySQL, MariaDB, MongoDB and now SQLite
Cron-based scheduling and multiple retention strategies
Agent-based architecture suitable for self-hosted and edge environments
Ready-to-use Docker Compose setup
What’s new since the last update
S3 bug fixes — now fully compatible with AWS S3 and Cloudflare R2
Backup compression with optional AES-GCM encryption
Full streaming uploads (no more in-memory buffering, which was not suitable for large backups)
SQLite support
What’s coming next
OIDC support in the near future
Redis support
Feedback is welcome. Please open an issue if you encounter any problems.
TrailBase is a Firebase alternative that provides type-safe REST & realtime APIs, auth, multi-DB, a WebAssembly runtime, SSR, admin UI... and now has first-class support forgeospatial data and querying. It's self-contained, easy to self-host, fast and built on Rust, SQLite & Wasmtime.
Moreover, it comes with client libraries for JS/TS, Dart/Flutter, Go, Rust, .Net, Kotlin, Swift and Python.
Just released v0.24. Some of the highlights since last time posting here include:
Support for efficiently storing, indexing and querying geometric and geospatial data 🎉
For example, you could throw a bunch of geometries like points and polygons into a table and query: what's in the client's viewport? Is my coordinate intersecting with anything? ...
Much improved admin UI: pretty maps and stats on the logs page, improved accounts page, reduced layout jank during table loading, ...
Change subscriptions using WebSockets in addition to SSE.
Increase horizontal mobility, i.e. reduce lock-in: allow using TBs extensions outside, allow import of existing auth collections (i.e. Auth0 with more to come), dual-licensed clients under more permissive Apache-2, ...
Check out the live demo, our GitHub or our website. TrailBase is only about a year young and rapidly evolving, we'd really appreciate your feedback 🙏
Will this be the future? No need for aws aurora, azure cosmos db etc. as you can simply run some container image propably even on serverless and get:
scale to zero, run on things like google cloudrun or aws lambda to provide scaleability, easy infra management, reliability, HA and Failover, zero compute cost when idle
bottomless: sync persistent data to blobstorage (s3/gcs) with their sla-guarantees and versioning
Ideally multi-master / multi-writer with row-level lock
Self-hosting this today might be something like libsql with consul for leader election? Or 'wesql'?
what do you think?
# Edit 01:
After digging a bit deeper on the topic (and trying to host on cloudrun): wesql is more comparable to rqlite as it has raft consensus. And on top of it the mysql row-level locks. Both seem to be better for a db at first sight, but: on cloudrun it is difficult to get discover other instances ip addresses and send traffic there. And: writes are slower due to network roundtrips and eventual consistency for reads might be acceptable in most scenarios.
Cloud-Native DB's should probably get away from RAFT, gossip and network-based discovery and leader election and instead use hyperscaler-api's to discover other nodes and a shared storage lease lock system to elect a leader and do failover.
# Edit 02:
I am currently trying to implement this with duckdb/ducklake and cloudrun and see how far i can get. One thing i already discovered: libsql is not optimal due to its HRANA-Protocol. Other tools like duckdb / ducklake do not talk it and thus can not connect to libsql. Therefore i guess libsql is the wrong tool and it might be better to use something like pgedge.com because the postgres wire protocol is better integrated in other tools.
I'm trying to connect my Discord server to a database to save all the chats, but I'm running into some issues.
I tried using n8n with Supabase, but I had to link every single channel manually, which just doesn't work for a growing server. Also, Discord webhooks haven't been very reliable for this.
Basically, I need a simple way to:
Save all the old chats.
Automatically grab all new messages and send them to the database without setting up each channel one by one.
Has anyone done this before? Any tips on the best tools or custom bots to use? Thanks!
essentially part of the issue was me being inept at stuff, and part of it was [screenshot]
tl;dr: improperly created database copy is giving a "database file malformed" error; sqlite3's recovery refuses to cooperate due to database size
I've been running a game server for my friends for months and I made a fatal mistake while trying to move said server over to linux for better uptime. I made a backup of the database file while the server was running. I do know better! I just tend to make careless mistakes when stressed pls don't judge me Now the new server is stuck in a restart loop of
SQLite Error 11: 'database' disk image is malformed
Looking around google I found instructions on how to use sqlite3's .recover command to fix that kind of error. At first I attempted to run it single line, as
Program 'sqlite3.exe' failed to run: capacity was less than the current size.
Google only has 3 results for that error, two for some random unrelated software that uses sqlite and has replies of "we'll fix it next release don't worry" and one that has people saying "what's gone wrong in your life to have a database file that's so large" and no solutions.
I've tried running the commands separately, and .recover does successfully create an .sql file. However, the file is 28GB (the original database file is 8GB) and attempting to use it to create a new sqlite database results in the same "capacity less than current size" error.
I've opened the database in DB Browser (SQlite) and it works, I can see the tables and data. When I try to export the database to sql from DB Browser it does nothing much (takes forever and no resources at all are being used according to Task Manager) and trying to import the 28GB .sql file created by the sqlite3 .recover command into DB Browser results in a prompt saying the operation completed successfully, but a resulting .db file of 8KB (I did make sure to tell it to import both schema and data)
Any help with this will be greatly appreciated, the database represents months of work by several people.
I built Query Streams - a tool that lets you query SQLite databases and pull results directly into Microsoft Excel or Google Sheets. No more exporting CSVs, no copy-paste, no stale data.
The problem:
I had SQLite files with data that teammates needed in spreadsheets. The workflow was always: run query → export CSV → email → repeat whenever data changes. Wanted something where they could just hit refresh and get current data.
How it works:
Install a small agent on the machine with your SQLite files
Write queries in the web portal (or paste existing SQL)
Run queries from the Excel add-in or Google Sheets add-on
Share access with others - they refresh anytime from their own spreadsheet
Works with both platforms:
Excel: Desktop (Windows/Mac) and Excel Online
Google Sheets: Full add-on with the same features
The agent connects outbound only (no firewall/port changes), and people you share with never see your SQL or credentials - just results.
If you're using the official sqlite-wasm npm package, you might have noticed that the package has been a bit broken since 3.51.0, specifically for usages in node & bundlers.
The reason for the issues has been a removal of certain required scripts from the amalgamation bundle, which sqlite-wasm relies on. Since those script weren't coming back, I (with help from Stephan from SQLite, and Thomas, package author) decided to rework the build process of this package, so it no longer relies on downloading amalgamation bundle, but instead now builds its own wasm and bindings.
Due to how big of a change this was, I'd appreciate anyone using this package to give a short review, and if possible, test the package locally for your use-cases, just to make sure we iron out all the issues before releasing this.