{"id":45311663,"url":"https://github.com/minskylab/supersense","last_synced_at":"2026-02-21T07:43:24.582Z","repository":{"id":45137928,"uuid":"284908863","full_name":"minskylab/supersense","owner":"minskylab","description":"Supersense is a simple and customizable events board, at the moment offers only two external event sources: Twitter and GitHub. The idea is implement another sources, Supersense has been developed with a strong focus extensibility.","archived":false,"fork":false,"pushed_at":"2023-12-15T14:56:34.000Z","size":7324,"stargazers_count":8,"open_issues_count":8,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-19T02:11:04.202Z","etag":null,"topics":["customizable-events-board","event-board","github-events","social-wall","twitter"],"latest_commit_sha":null,"homepage":"","language":"Go","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/minskylab.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":"security/jwt.go","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-04T07:29:04.000Z","updated_at":"2024-05-11T01:41:36.000Z","dependencies_parsed_at":"2024-06-19T01:55:31.627Z","dependency_job_id":"73fa4815-8cf7-4999-9132-5878c0ffc3d5","html_url":"https://github.com/minskylab/supersense","commit_stats":{"total_commits":123,"total_committers":3,"mean_commits":41.0,"dds":0.03252032520325199,"last_synced_commit":"e7d94e253bf0fde58994d34e3c615c5d7c361cbc"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/minskylab/supersense","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minskylab%2Fsupersense","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minskylab%2Fsupersense/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minskylab%2Fsupersense/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minskylab%2Fsupersense/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/minskylab","download_url":"https://codeload.github.com/minskylab/supersense/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minskylab%2Fsupersense/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29676840,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T06:23:40.028Z","status":"ssl_error","status_checked_at":"2026-02-21T06:23:39.222Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["customizable-events-board","event-board","github-events","social-wall","twitter"],"created_at":"2026-02-21T07:43:24.085Z","updated_at":"2026-02-21T07:43:24.577Z","avatar_url":"https://github.com/minskylab.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"supersense-logo.png\" alt=\"supersense-logo\" width=\"400\" /\u003e\n\u003c/p\u003e\n\n# Supersense\n\nSupersense is a simple and customizable event board. The main goal of supersense is given an open source alternative to the social walls or multiple source event trackers. At the moment, supersense implements only two sources: Twitter \u0026 Github, but the architecture was development in a scalable and extendable way.\n\n## Technology\n\nSupersense was created with a micro-service paradigm in mind, is a stateless service easy to horizontal scale (but also can have persistence and to be an stateful service). The project has two principal services called: **Core** and **Observer**, each one is distributed using docker images and published in the DockerHub with the tags **minskylab/supersense** and **minskylab/supersense-observer** respectively.\n\n### About the stack\n\n**Core**\n\nSupersense Core was written in [Go](https://golang.org) and uses [GraphQL](https://graphql.org) as API layer to communicate with the observer or any other custom API consumer, the main goal of core is provide a powerful and realtime API to broadcast all the events coming from the configurase sources (Twitter, Github, etc...).\n\n**Observer**\n\nSupersense Observer was build with [Typescript](https://www.typescriptlang.org) and [React](https://reactjs.org/), and all the source are bundled\\* using [snowpack](https://www.snowpack.dev/) a interesting modern technology that use a modern feature called [ESM](https://hacks.mozilla.org/2018/03/es-modules-a-cartoon-deep-dive/) (ES Modules) to distribute files in a unbundled mode, hence we have very fast development flow.\n\n\\* Snowpack offers two ways to use it, with its unbundled proposal using ESM and another where you can use the classical bundlers (like Webpack, Parcel).\n\n### Architecture\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"supersense-core.png\" alt=\"supersense-core-architecture\" width=\"650\" /\u003e\n\u003c/p\u003e\n\n### Getting Started\n\nWrite a .env config file like:\n\n```dotenv\n# .env file\nSS_GRAPHQL_PLAYGROUND=true\n\nSS_TWITTER_CONSUMER_KEY=\u003cYOUR_TWITTER_CONSUMER_KEY\u003e\nSS_TWITTER_CONSUMER_SECRET=\u003cYOUR_TWITTER_CONSUMER_SECRET_KEY\u003e\nSS_TWITTER_ACCESS_TOKEN=\u003cYOUR_TWITTER_ACCESS_TOKEN_KEY\u003e\nSS_TWITTER_ACCESS_SECRET=\u003cYOUR_TWITTER_ACCESS_SECRET_KEY\u003e\nSS_TWITTER_QUERY=\"#peru\"\n\nSS_GITHUB_TOKEN=\u003cGITHUB_TOKEN\u003e\nSS_GITHUB_REPOS=minskylab/supersense,minskylab/figport,minskylab/base\n```\n\nSupersense core is delivered using docker hub. To run only, execute:\n\n```shell script\n$ docker run -p 8080:8080 --env-file .env minskylab/supersense\n```\n\n// TODO\n\n// TODO\n\n## Configuration\n\nCurrently supersense only accepts one way to config the service parameters: the environment variables. Below you can see all of this variables.\n\n| Environment Variable Name      | Default Value | Description |\n| ------------------------------ | :------------ | ----------- |\n| SS_PORT                        | 4000          |             |\n| SS_TWITTER_CONSUMER_KEY        | -             |             |\n| SS_TWITTER_CONSUMER_SECRET     | -             |             |\n| SS_TWITTER_ACCESS_TOKEN        | -             |             |\n| SS_TWITTER_ACCESS_SECRET       | -             |             |\n| SS_TWITTER_QUERY               | -             |             |\n| SS_GITHUB_TOKEN                | -             |             |\n| SS_GITHUB_REPOS                | -             |             |\n| SS_DUMMY_PERIOD                | -             |             |\n| SS_DUMMY_MESSAGE               | -             |             |\n| SS_SPOKESMAN                   | false         |             |\n| SS_SPOKESMAN_NAME              | -             |             |\n| SS_SPOKESMAN_USERNAME          | -             |             |\n| SS_SPOKESMAN_EMAIL             | -             |             |\n| SS_PERSISTENCE                 | false         |             |\n| SS_PERSISTENCE_BOLTDB_FILEPATH | -             |             |\n| SS_PERSISTENCE_REDIS_ADDRESS   | -             |             |\n| SS_PERSISTENCE_REDIS_PASSWORD  | -             |             |\n| SS_GRAPHQL_PLAYGROUND          | false         |             |\n\n// TODO\n\n-   [ ] More easy observer configuration\n-   [x] Twitter Images\n-   [x] Github project summary\n-   [x] Github open issues (extends the event demux)\n-   [x] Deployment Instructions\n\n### Deploy with Helm\n\nBefore your deploy in your k8s cluster you need declare a secret with your configuration.\nYou need to define a .env file with your configuration and use the following command to create a kubernetes generic secret.\n\n```shell script\n$ kubectl create secret generic \u003cyour-secret-name\u003e --from-env-file=.env\n```\n\nThen, now add the minsky charts repository and install supersense setting your secretRef.\n\n```shell script\n$ helm repo add minsky https://charts.minsky.cc\n$ helm repo update # optional\n$ helm install minsky/supersense --set config.secretRef=\u003cyour-secret-name\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminskylab%2Fsupersense","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fminskylab%2Fsupersense","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminskylab%2Fsupersense/lists"}