{"id":13598927,"url":"https://github.com/jacob-8/sveltefirets","last_synced_at":"2025-08-20T14:32:08.933Z","repository":{"id":37240071,"uuid":"399597325","full_name":"jacob-8/sveltefirets","owner":"jacob-8","description":"Firebase ❤️ Svelte: A SvelteKit + Typescript + Firebase library inspired by Fireship.io","archived":false,"fork":false,"pushed_at":"2024-04-24T09:59:17.000Z","size":668,"stargazers_count":83,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-05T14:40:16.848Z","etag":null,"topics":["authentication","firebase","firebase-authentication","firebase-firestore","svelte","sveltekit","typescript"],"latest_commit_sha":null,"homepage":"https://sveltefirets.vercel.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jacob-8.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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},"funding":{"custom":["https://paypal.me/jacobbowdoin"]}},"created_at":"2021-08-24T20:32:19.000Z","updated_at":"2024-06-03T08:47:53.000Z","dependencies_parsed_at":"2024-01-16T23:25:40.557Z","dependency_job_id":"44ff7708-199c-4a82-953a-16e807f9f62a","html_url":"https://github.com/jacob-8/sveltefirets","commit_stats":{"total_commits":169,"total_committers":4,"mean_commits":42.25,"dds":0.0650887573964497,"last_synced_commit":"ce044c814ea533a8890fb19453656c9cf9eee45e"},"previous_names":["jacobbowdoin/sveltefirets"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-8%2Fsveltefirets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-8%2Fsveltefirets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-8%2Fsveltefirets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-8%2Fsveltefirets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jacob-8","download_url":"https://codeload.github.com/jacob-8/sveltefirets/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229946140,"owners_count":18149221,"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":["authentication","firebase","firebase-authentication","firebase-firestore","svelte","sveltekit","typescript"],"created_at":"2024-08-01T17:00:58.154Z","updated_at":"2024-12-19T12:10:48.866Z","avatar_url":"https://github.com/jacob-8.png","language":"TypeScript","funding_links":["https://paypal.me/jacobbowdoin"],"categories":["🏃 SvelteKit Starter Kits and Integrations"],"sub_categories":["The _How To's?_"],"readme":"# SvelteFireTS\n\n**April 2024 Status Update:** I still use this library in production and it's very useful, but I've moved on to using Supabase by and large. Because this library is stable, because the original [SvelteFire](https://github.com/codediodeio/sveltefire) gets a few updates here and there, and because I'm not expanding my use of Firebase, most active development has ceased. But it works great in SvelteKit 2 and Svelte 4. My recommendation is to [read the docs](https://sveltefirets.vercel.app/), [read the code](https://github.com/jacob-8/sveltefirets), [read Jeff's code](https://github.com/codediodeio/sveltefire), then copy what you need and hone it to your use case. You'll be a better developer for it. \n\nAs I've progressed in my understanding of how to use SvelteKit well, I've learned that it will make component design and mocking (I use [Kitbook](https://kitbook.vercel.app/)) much easier if you establish backend connections in the layout/page ts files and pass data and mutation operations to components via the page data prop. So that is why I say write your own. I presently no longer use the `\u003cDoc\u003e` and `\u003cCollection\u003e` components but solely lean on the `getDoc`, `getCollection`, `docStore` and `collectionStore` methods for this reason.\n\n----\n\n[![NPM](https://img.shields.io/npm/v/sveltefirets?color=yellow\u0026label=NPM)](https://www.npmjs.com/package/sveltefirets)\n\nEasily use [Firebase](https://firebase.google.com/docs) in Svelte. Built for **[SvelteKit 2.0+](https://kit.svelte.dev/)** but it could be used with any Svelte framework.\n\n- SvelteKit (tested on 2.5.1)\n- Typescript\n- Firestore convenience helpers\n- Auth store\n- SSR ready (for unauthenticated data fetching)\n- Firebase (tested on 10.9.0)\n- *includes an optional FirebaseAuthUi component that brings in [FirebaseUI web](https://github.com/firebase/firebaseui-web) + Firebase 10 compat via CDN only when component shown - FirebaseUI web allows for easy authentication in dozens of languages and many providers without you needing to manage the authentication forms*\n\n\u003c!-- Kitbook Skip --\u003e\n\n## Usage Instructions\n\n[Read the docs](https://sveltefirets.vercel.app/)\n\n\u003c!-- Kitbook Skip End --\u003e\n\n## Open to Contributions\n\nIf there are any configuration settings or features you'd like to see added please [create an issue](https://github.com/jacob-8/sveltefirets/issues/new) to start a discussion about features you'd like. After discussion, hopefully you can add a pull request to implement such.\n\nNote that the `set` helper method which automatically is either an `update` or a `set` depending on whether a document exists should really be renamed to `upsert` in order to make `set` more closely resemble Firestore's `setDoc`.\n\n## Developing\n- `pnpm install`\n- `pnpm dev`\n\n## Inspiration: [Fireship.io](https://fireship.io/)\n\nJeff Delaney gets credit for much of SvelteFireTS. I started with [SvelteFire](https://github.com/codediodeio/sveltefire) then added Typescript, borrowed some convenient helpers from Jeff's [Firestore Advanced Usage Angularfire](https://fireship.io/lessons/firestore-advanced-usage-angularfire/), and made it work with SvelteKit's SSR + Client situation. If you like what you see here, you should sign up at [Fireship.io](https://fireship.io/) and subscribe to the [Fireship Youtube Channel](https://www.youtube.com/channel/UCsBjURrPoezykLs9EqgamOA) for great tutorials.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacob-8%2Fsveltefirets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacob-8%2Fsveltefirets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacob-8%2Fsveltefirets/lists"}