{"id":19034434,"url":"https://github.com/lzear/free-databases","last_synced_at":"2025-04-23T17:45:54.968Z","repository":{"id":170760816,"uuid":"640143784","full_name":"lzear/free-databases","owner":"lzear","description":"Some data storage costing nothing","archived":false,"fork":false,"pushed_at":"2024-08-03T11:47:07.000Z","size":3723,"stargazers_count":30,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-18T04:12:15.515Z","etag":null,"topics":["aiven","cockroachdb","database","databases","deta","faunadb","fly-io","free","mongodb","neon","planetscale","postgresql","railway","supabase","tembo","turso","upstash","vercel","xata","yugabyte"],"latest_commit_sha":null,"homepage":"http://free-databases.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lzear.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-13T06:03:58.000Z","updated_at":"2025-03-28T07:55:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"bb287dce-15c9-458b-9ccd-b88482511a50","html_url":"https://github.com/lzear/free-databases","commit_stats":null,"previous_names":["lzear/free-databases"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lzear%2Ffree-databases","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lzear%2Ffree-databases/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lzear%2Ffree-databases/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lzear%2Ffree-databases/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lzear","download_url":"https://codeload.github.com/lzear/free-databases/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250484495,"owners_count":21438245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aiven","cockroachdb","database","databases","deta","faunadb","fly-io","free","mongodb","neon","planetscale","postgresql","railway","supabase","tembo","turso","upstash","vercel","xata","yugabyte"],"created_at":"2024-11-08T21:45:22.796Z","updated_at":"2025-04-23T17:45:54.933Z","avatar_url":"https://github.com/lzear.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Free Serverless Databases 🙌\n\nTesting different free serverless database providers with a small todo-list implementation: [free-databases.vercel.app](https://free-databases.vercel.app/)\n\n[![issues welcome](https://badgers.space/badge/issues/welcome/green?corner_radius=s)](#)\n[![PRs welcome](https://badgers.space/badge/PRs/welcome/green?corner_radius=s)](#)\n[![MIT](https://badgers.space/badge/license/MIT/blue?corner_radius=s)](#)\n\n\n## Featured providers\n- [Aiven](https://aiven.io/)\n- ~~[Bit.io](https://bit.io/)~~\n- [CockroachDB](https://www.cockroachlabs.com/)\n- [Convex](https://www.convex.dev/)\n- _[CosmosDB](https://learn.microsoft.com/en-us/azure/cosmos-db/)_\n- [Deta](https://deta.space/)\n- _[ElephantSQL](https://www.elephantsql.com/)_\n- [FaunaDB](https://fauna.com/)\n- [Firebase](https://firebase.google.com/)\n- [Fly.io](https://fly.io/)\n- [Koyeb](https://www.koyeb.com/)\n- [MongoDB Atlas](https://www.mongodb.com/atlas/database)\n- [Neon](https://neon.tech/)\n- ~~[PlanetScale](https://planetscale.com/)~~\n- [PocketHost](https://pockethost.io/)\n- ~~[Railway](https://railway.app/)~~\n- [Supabase](https://supabase.com/)\n- [Tembo](https://tembo.io/)\n- [TiDB Cloud](https://tidbcloud.com/)\n- [Turso](https://turso.tech/)\n- [Upstash](https://upstash.com/)\n- [Vercel Postgres](https://vercel.com/docs/storage/vercel-postgres)\n- [Xata](https://xata.io/)\n- [Yugabyte](https://www.yugabyte.com/)\n- Cookies as a data store (no third party)\n- Please open a PR or an issue to suggest more!\n\n### Dead providers or broken demos\n\n* Bit.io is discontinued\n* CosmosDB stopped working after 2 weeks\n* ElephantSQL will be discontinued in 2025\n* Railway required an update from me (which I might do later)\n\n## Getting started locally\n\nRun `yarn install`, then `yarn dev`.\n\nTo make the different databases work locally, you will need to create accounts\nwith the third parties and add your credentials in your `.env`.\n\nYou will also need to create the todos table:\n\n```sql\n-- PostgreSQL table for most providers\nCREATE TABLE IF NOT EXISTS \"todos\" (\n\t\"id\" text PRIMARY KEY NOT NULL,\n\t\"created_at\" timestamp DEFAULT now() NOT NULL,\n\t\"updated_at\" timestamp DEFAULT now() NOT NULL,\n\t\"name\" text NOT NULL,\n\t\"done\" boolean NOT NULL\n);\n\n-- MySQL table for PlanetScale\nCREATE TABLE `Todo` (\n\t`id` varchar(191) NOT NULL,\n\t`createdAt` datetime(3) NOT NULL DEFAULT current_timestamp(3),\n\t`updatedAt` datetime(3) NOT NULL,\n\t`name` text NOT NULL,\n\t`done` tinyint(1) NOT NULL,\n\tPRIMARY KEY (`id`),\n\tUNIQUE KEY `Todo_id_key` (`id`)\n) ENGINE InnoDB,\n  CHARSET utf8mb4,\n  COLLATE utf8mb4_unicode_ci;\n```\n\n## Test\n\n* Unit tests: `yarn test`\n* Cypress tests: `yarn e2e`\n\n## Thanks\n\n* All the providers for providing free tiers\n* Vercel too, also for the generous free tier\n\n## Known issues / be aware / miscellaneous\n\n* Took a shortcut and set `NODE_TLS_REJECT_UNAUTHORIZED=0`, which is probably not something that you should do in\n  production.\n* ~~For Fly.io, I am allocating to database to an IPv4 address, which costs $2/month. I could not find a way to use the\n  free IPv6 address with NextJS+Vercel.~~ Fly.io never charged me, so I guess it's free.\n* Using Next.js app directory, I couldn't find a way to nicely define special `export const dynamic = '...'`\n  or `export const fetchCache = '...'`. It forced me to copy some folders (`convex`, `cookie`, `deta`), it would be nice\n  if this could be avoided.\n* Databases descriptions are taken from any place I could find them or AI-generated, they might not be very accurate. \n\n## Todos\n\n- [ ] Add this into [🕶️ Awesome](https://github.com/sindresorhus/awesome) or somewhere\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flzear%2Ffree-databases","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flzear%2Ffree-databases","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flzear%2Ffree-databases/lists"}