{"id":13810567,"url":"https://github.com/zernonia/simple-log","last_synced_at":"2025-07-24T09:38:20.405Z","repository":{"id":63643506,"uuid":"524975831","full_name":"zernonia/simple-log","owner":"zernonia","description":"SimpleLog - Event tracking all in 1 place! Free \u0026 Open Source","archived":false,"fork":false,"pushed_at":"2023-11-07T20:45:55.000Z","size":2129,"stargazers_count":88,"open_issues_count":5,"forks_count":9,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-27T09:30:49.301Z","etag":null,"topics":["log-event","logging","nuxt3","push-notifications","redis","supabase","unocss"],"latest_commit_sha":null,"homepage":"https://simple-log.vercel.app","language":"Vue","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/zernonia.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":"2022-08-15T12:20:22.000Z","updated_at":"2025-02-14T01:54:56.000Z","dependencies_parsed_at":"2024-08-04T02:05:21.275Z","dependency_job_id":"b5140526-d651-48ae-8bf5-9250ffd8f000","html_url":"https://github.com/zernonia/simple-log","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zernonia%2Fsimple-log","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zernonia%2Fsimple-log/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zernonia%2Fsimple-log/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zernonia%2Fsimple-log/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zernonia","download_url":"https://codeload.github.com/zernonia/simple-log/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243815564,"owners_count":20352189,"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":["log-event","logging","nuxt3","push-notifications","redis","supabase","unocss"],"created_at":"2024-08-04T02:01:00.660Z","updated_at":"2025-03-16T13:30:53.450Z","avatar_url":"https://github.com/zernonia.png","language":"Vue","funding_links":["https://www.buymeacoffee.com/zernonia"],"categories":["Vue"],"sub_categories":[],"readme":"# Notice. Full stop.\n\nThis was originally a fun \u0026 simple hackathon submission, and a demo for dev to learn about Nuxt3, Supabase, Unocss and other plugin. Especially sharing my own custom push notification provider. But it has since become a series of accusing \u0026 upsetting events. Please stop.\n\nI have no intention at all to make profit out of this, nor I want to compete with other \"project\". If you want, you can read more about the project inspiration here on Readme.\n\nThe platform will continue operating, but I have decided I will no longer work on/maintain this project. **So use it at your own risk.** If you want a stable, and more feature platform, you can try out [LogSnag](https://logsnag.com/).\n\nSincerely,\u003cbr\u003e\nZernonia, 2:34am\n\n---\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/zernonia/simple-log\"\u003e\n    \u003cimg src=\"public/images/icons/icon-96x96.png\" alt=\"Logo\" width=\"80\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eSimpleLog\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Event tracking all in 1 place\n    \u003cbr /\u003e\n    Free • Open Source • API ready\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://simple-log.vercel.app/\"\u003eView Demo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/zernonia/simple-log/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/zernonia/simple-log/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n![simple-log.vercel.app](public/og.png)\n\n## 🚀 Features\n\n- 📋 Organize events neatly\n- 🔗 Integration with other platform (Supabase etc)\n- 🤩 Free \u0026 Open-Source\n- 🚀 API ready\n\n## 📇 About The Project\n\nThis project is inspired by one of Supabase's [tweet](https://twitter.com/supabase/status/1557919302426284032), where use listen to realtime changes and `sendSlackAlert` to save the events.\n\nActually, I'm doing the same for submission on [MadeWithSupabase](https://madewithsupabase.com) \u0026 [Aurora](http://aurora.courses/) too! But I save them in my own Discord Server.\n\n![My discord server](/public/images/readme/my-discord.png)\n\nBut that quickly got out of hands, as all the events clumps in 1 channel, which makes organizing, tracking and eventually analyzing SUPER difficult.\n\nHence I built **SimpleLog**! It aims to be Open Source, so that anyone can contribute in creating SDK, or Integration they needed easily, while using SimpleLog.\n\nFuthermore, this project allows me to spend some time looking into [Push Messaging](https://developer.mozilla.org/en-US/docs/Web/API/PushMessageData), which is curently missing in Supabase (as compare to [FCM](https://firebase.google.com/docs/cloud-messaging)). Thus, I've also created a custom push notification provider in this project!\n\nThis project is indeed a difficult one, but I had fun making it!\n\n### 🔨 Built With\n\n- [Supabase](https://supabase.com) - For Auth, DB, Realtime\n- [Redis](https://redis.com/) - Caching API token\n- [Nuxt 3](https://v3.nuxtjs.org/) - App \u0026 Server\n- [Nuxt Content](https://content.nuxtjs.org/) - Docs\n- [FormKit](https://formkit.com/) - Form Submission, Auto-animate\n- [UnoCSS](https://github.com/unocss/unocss) - Tailwind styling, Icon\n\n### ⚡ Supabase Service\n\n- Supabase Database\n- Supabase Auth (GitHub)\n- Supabase Realtime\n- Postgres Function\n\n### Postgres SQL\n\n1. Log event quickly!\n\n   ```sql\n   create or replace function\n     log_event(input_owner_id uuid, input_project text, input_channel text, input_name text, input_description text, input_icon text, input_notify boolean, input_integration text) returns record\n     language plpgsql\n     as $$\n       declare\n         var_project_id uuid;\n         var_channel_id uuid;\n         return_record record;\n       begin\n         -- get project id and owner_id from projects table based on name\n         select projects.id into var_project_id from projects where name = input_project and owner_id = input_owner_id;\n\n         -- get channel id from channels table\n         select id into var_channel_id from channels where name = input_channel and project_id = var_project_id;\n         if var_channel_id is null then\n           insert into channels (name, project_id) values (input_channel, var_project_id) returning id into var_channel_id;\n         end if;\n\n         insert into events (name, description, icon, notify, project_id, channel_id, owner_id, integration)\n           values (input_name, input_description, input_icon, input_notify, var_project_id, var_channel_id, input_owner_id, input_integration )\n           returning * into return_record;\n\n         return return_record;\n       end\n     $$;\n   ```\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/simple-log.git\n   ```\n2. Install NPM packages\n   ```sh\n   cd simple-log\n   yarn install\n   ```\n3. Create `.env`\n   ```\n   SUPABASE_URL=\n   SUPABASE_KEY=\n   SUPABASE_SERVICE_KEY=\n   REDIS_HOST=\n   REDIS_PORT=\n   REDIS_USERNAME=\n   REDIS_PASSWORD=\n   VAPID_PUBLIC_KEY=\n   VAPID_PRIVATE_KEY=\n   VAPID_SUBJECT=\n   ```\n4. Run local development instance\n   ```sh\n   yarn dev\n   ```\n\n## ➕ Contributing\n\nContributions are what make the open source community such an amazing place to be learn, inspire, and create. 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\nDistributed under the MIT License. See `LICENSE` for more information.\n\n# 📧 Contact\n\nZernonia - [@zernonia](https://twitter.com/zernonia) - zernonia@gmail.com\n\nAlso, if you like my work, please buy me a coffee ☕😳\n\n\u003ca href=\"https://www.buymeacoffee.com/zernonia\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/yellow_img.png\" alt=\"Logo\" \u003e\n  \u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzernonia%2Fsimple-log","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzernonia%2Fsimple-log","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzernonia%2Fsimple-log/lists"}