{"id":13406960,"url":"https://github.com/zernonia/madewithsupabase","last_synced_at":"2025-04-07T08:25:02.384Z","repository":{"id":39662305,"uuid":"432782178","full_name":"zernonia/madewithsupabase","owner":"zernonia","description":"A collection of projects made with Supabase – Websites, Mobile Apps, SaaS, Plugins and more!","archived":false,"fork":false,"pushed_at":"2024-07-06T15:50:22.000Z","size":7708,"stargazers_count":250,"open_issues_count":4,"forks_count":23,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-31T06:06:54.872Z","etag":null,"topics":["nuxt","nuxt3","supabase","vue","vuejs3"],"latest_commit_sha":null,"homepage":"https://www.madewithsupabase.com/","language":"Vue","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/zernonia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","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://www.buymeacoffee.com/zernonia"]}},"created_at":"2021-11-28T17:42:33.000Z","updated_at":"2025-03-28T13:51:02.000Z","dependencies_parsed_at":"2023-11-30T02:32:38.125Z","dependency_job_id":"cf1de6c6-ab1a-4e9f-9951-9ab9d0669145","html_url":"https://github.com/zernonia/madewithsupabase","commit_stats":{"total_commits":322,"total_committers":6,"mean_commits":"53.666666666666664","dds":0.09627329192546585,"last_synced_commit":"1d1e38d82a897adfd3b5d87c29ddbd5bebf5eda5"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zernonia%2Fmadewithsupabase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zernonia%2Fmadewithsupabase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zernonia%2Fmadewithsupabase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zernonia%2Fmadewithsupabase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zernonia","download_url":"https://codeload.github.com/zernonia/madewithsupabase/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247616549,"owners_count":20967409,"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":["nuxt","nuxt3","supabase","vue","vuejs3"],"created_at":"2024-07-30T19:02:44.177Z","updated_at":"2025-04-07T08:25:02.358Z","avatar_url":"https://github.com/zernonia.png","language":"Vue","funding_links":["https://www.buymeacoffee.com/zernonia"],"categories":["Vue"],"sub_categories":[],"readme":"\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/zernonia/madewithsupabase\"\u003e\n    \u003cimg src=\"assets/logo.svg\" alt=\"Logo\" width=\"80\" height=\"80\" /\u003e\n  \u003c/a\u003e\n\n  \u003ch2 align=\"center\"\u003e\u003cstrong\u003eMade with Supabase ⚡\u003c/strong\u003e\u003c/h2\u003e\n\n  \u003cp align=\"center\"\u003e\n  A collection of projects made with \u003ca href=\"https://supabase.io/\"\u003eSupabase\u003c/a\u003e\n    \u003cbr /\u003e\n    Websites, Mobile Apps, SaaS, Plugins and more!\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://madewithsupabase.com/\"\u003eView Demo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/zernonia/madewithsupabase/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/zernonia/madewithsupabase/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n![Made with Supabase](public/og.png)\n\n# 🚀 Features\n\n- ✨ Curated list of projects\n- 🎉 Show the world your creation using Supabase\n- 🔎 Search by tags, for Supabase service\n- 💚 Hackathon submission (during event period)\n\n# 📇 About The Project\n\nAs the name suggest, this project is a collection of projects that made with Supabase! It was heavily inspired by other \"Made with xxx\" website, and I wanted to curate all the submission for the first ever [Supabase Hackathon](https://supabase.com/blog/2021/07/30/1-the-supabase-hackathon) initially.\n\nAlso, I thought that this would be a great opportunity to use **Supabase Database and Storage** to showcase Supabase!\nTherefore, [Made with Supabase](https://madewithsupabase.com) is also, made with Supabase ⚡!\n\nIt turns out that this project gained a lot of attention from Supabase users, as well as not-yet Supabase user 😂. It grew from 10+ projects to 100+ now! Supa awesome!!! 🔥 I believe it has potential to grow, thus I've decided to Open Source it, and welcome your contributions!\n\n-- From: `zernonia`\n\n## 🔨 Built With\n\n- [Supabase](https://supabase.io/)\n- [Nuxt 3](https://v3.nuxtjs.org/)\n- [Vite](https://vitejs.dev/)\n- [WindiCSS](https://windicss.org/)\n- [Vercel](https://vercel.com)\n\n# 🔥 Contributors\n\n\u003ca href=\"https://github.com/zernonia/madewithsupabase/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=zernonia/madewithsupabase\" /\u003e\n\u003c/a\u003e\n\n# 💻 Supabase Schema/Script\n\n[![Schema generated using Supabase Schema](public/schema.png)](https://supabase-schema.vercel.app/)\n\n## Set up your Supabase tables, views, and storage buckets\n\nRun the below SQL queries in your Supabase SQL editor on https://app.supabase.io/project/sql .\n\n### Tables\n\n`products`\n\n```sql\ncreate table products (\n  id uuid default uuid_generate_v4() primary key,\n  title text,\n  email text,\n  description text,\n  categories text ARRAY,\n  url text,\n  github_url text,\n  twitter text,\n  instagram text,\n  images text ARRAY,\n  slug text,\n  supabase_features text ARRAY,\n  approved boolean,\n  created_at timestamp default now()\n);\n\n-- enable RLS\nalter table products enable row level security;\n```\n\n`views`\n\n```sql\ncreate table views (\n  id uuid default uuid_generate_v4() primary key,\n  created_at timestamp default now(),\n  ip_address text,\n  product_id uuid references products (id) on delete cascade\n);\n\n-- enable RLS\nalter table views enable row level security;\n```\n\n### Views\n\n`products_view`\n\n```sql\ncreate view products_view as\n  select\n    products.id,\n    products.title,\n    products.description,\n    products.categories,\n    products.url,\n    products.github_url,\n    products.twitter,\n    products.instagram,\n    products.images,\n    products.slug,\n    products.supabase_features,\n    products.approved,\n    products.created_at,\n    count(views.id) as views\n  from products\n    left join views on products.id = views.product_id\n  where products.approved = true\n  group by products.id;\n```\n\n`tags_view`\n\n```sql\ncreate view tags_view as\n  select\n    s.tags,\n    count(*) as count\n  from (\n    select\n      unnest(products.categories) as tags\n    from products\n    where products.approved = true\n  ) s\n  group by s.tags;\n```\n\n### Functions\n\n`get_related_products`\n\n```sql\ncreate or replace function public.get_related_products(parent_id uuid)\n  returns setof products_view\n  language plpgsql\nas $$\nbegin\n  return query\n    select * from products_view where id \u003c\u003e parent_id order by random();\nend; $$\n```\n\n`get_tags`\n\n```sql\ncreate or replace function public.get_tags(tag text)\n  returns setof products_view\n  language plpgsql\nas $$\nbegin\n  return query\n    select * from products_view where tag % any(categories);\nend; $$\n```\n\n`get_supabase_tags`\n\n```sql\ncreate or replace function public.get_supabase_tags(tag text)\n  returns setof products_view\n  language plpgsql\nas $$\nbegin\n  return query\n    select * from products_view where tag like any(supabase_features);\nend; $$\n```\n\n### Storage\n\n- Create a new **public** bucket called `products` on https://app.supabase.io/project/storage/buckets .\n- Navigate to the storage policy settings (https://app.supabase.io/project/storage/policies)\n- Create the following policies:\n  - Give anon users READ access:\n    - Allowed operations: `SELECT`\n    - Policy definition: `(bucket_id = 'products'::text)`\n  - Give anon users INSERT access:\n    - Allowed operations: `INSERT`\n    - Policy definition: `((bucket_id = 'products'::text) AND (role() = 'anon'::text))`\n  - Deny DELETE:\n    - Allowed operations: `DELETE`\n    - Policy definition: `((bucket_id = 'products'::text) AND (role() = 'authenticated'::text))`\n\n# 🌎 Local Development\n\n## Prerequisites\n\nYarn\n\n- ```sh\n  npm install --global yarn\n  ```\n\n## Development\n\n1. Clone the repo\n   ```sh\n   git clone https://github.com/zernonia/madewithsupabase.git\n   ```\n2. Install NPM packages\n   ```sh\n   yarn install\n   ```\n3. Setup your Supabase environment `.env`\n   ```sh\n   SUPABASE_URL=\u003cSUPABASE_URL\u003e\n   SUPABASE_KEY=\u003cSUPABASE_KEY\u003e\n   SUPABASE_SERVICE_KEY=\u003cSUPABASE_SERVICE_KEY\u003e\n   ```\n4. Run Development instance\n   ```sh\n   yarn dev\n   ```\n\n# ➕ Contributing\n\nThis project is just for fun, but if you have any crazy idea for Realtime function, feel free to contribute, or create request for the features. Any contributions you make are **greatly appreciated**.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n# 📜 License\n\nNot Associated with Supabase.\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n# 📧 Contact\n\nZernonia - [@zernonia](https://twitter.com/zernonia)\n\n# ☕ Support\n\nIf you like my work, please buy me a coffee 😳\n\n[![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/yellow_img.png)](https://www.buymeacoffee.com/zernonia)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzernonia%2Fmadewithsupabase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzernonia%2Fmadewithsupabase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzernonia%2Fmadewithsupabase/lists"}