Here's the post, ready to paste. I haven't read the challenge page, so I picked the "ghost" reading myself. Change it if the page points elsewhere. I left [brackets] wherever I don't know the facts: the AI model, any demo video, and the prize categories.
What I Built
SethuCMS is an open-source, security-first CMS that works on top of whatever database you already have. It is MIT licensed.
Most CMSs make you move your data into their database. SethuCMS goes the other way. You connect Firestore, Postgres, MySQL or another database, and the CMS sits over it like a ghost in the machine. It reads the structure of your data, lets you choose which collections to expose, and gives editors a clean place to work. Your data stays where it is, and you can turn the ghost off without losing anything.
I read the theme as a layer you can't see that does the work: nobody asks the database to change, and the editors never see the database.
What it includes today:
- A gateway that serves a REST API over any connected database.
- An admin panel for connections, roles, an audit log and moving data between databases.
- Adapters for each database. They talk to the gateway over gRPC, and there are starter templates in Go and Python so anyone can add a new database.
-
SDKs for TypeScript, Python and Dart/Flutter. The Dart one is on pub.dev as
sethucms. - Projects: each person gets isolated projects of their own, so one person's data and credentials can never reach another's.
- Read-only by default. A connection can't change your data until you switch writes on.
Demo
- Website: https://sethucms-site.vercel.app
- Hosted admin: https://sethucms-admin.vercel.app
Code
Everything is under the SethuCMS GitHub organisation: https://github.com/SethuCMS
-
SethuCMS: the gateway and core -
admin: the admin panel -
adapters,adapter-sdk,adapter-template-go,adapter-template-python -
sdk-ts,sdk-python,sdk-dart -
sethucms-site: this website
How I Built It
- Gateway: TypeScript on Node with strict compiler settings. It uses a small custom router and no web framework, to keep the attack surface small. Tests run on Node's built-in test runner.
- Adapters: one process per database, speaking gRPC with a shared protocol file. The Go and Python templates run a contract test, so a new adapter can prove it works.
- Admin: a React and Vite app with a strict Content Security Policy.
- Security: sign-in with Google or GitHub through Firebase, one signed workspace per project, an audit log, idempotency keys on writes, and only reads are retried.
- Tooling: every repo has issue templates and Dependabot, and one organisation-wide GitHub Project tracks bugs from P0 to P4.
- AI: [Which open-weight model or agent tool did you use, and for what? For example code review, generating adapter templates, or schema mapping. Replace this line with the truth, and delete it if AI isn't part of the product.]
Why Does Open Innovation Matter?
A CMS holds the keys to people's databases, so people should be able to read the code that holds them. Closed hosted services ask you to trust them. With SethuCMS you can check how credentials are stored, run it yourself, or write an adapter for a database nobody has supported yet. The adapter template is the main example: someone who needs a niche database can add it in an afternoon and share it, without waiting for a vendor.
The Spirit of It
The idea came from a small, familiar problem: a client already has a database and just wants someone to be able to edit a page without touching it. The best version of the tool is one you barely notice.
Top comments (0)