{"id":19374608,"url":"https://github.com/ditatompel/wa-status-archiver","last_synced_at":"2026-05-02T18:36:31.844Z","repository":{"id":226844444,"uuid":"763311718","full_name":"ditatompel/wa-status-archiver","owner":"ditatompel","description":"An experimental app that preserve your WA contact status updates (videos and images) to your local storage. Optionally, you can build a bot that respond to certain keywords on top of it.","archived":false,"fork":false,"pushed_at":"2024-03-10T02:40:33.000Z","size":400,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-07T03:00:06.689Z","etag":null,"topics":["go","gofiber","htmx","tailwindcss"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ditatompel.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}},"created_at":"2024-02-26T03:42:21.000Z","updated_at":"2024-04-04T12:38:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"13ec0acf-5b05-4c41-86c1-82ed5af9dc50","html_url":"https://github.com/ditatompel/wa-status-archiver","commit_stats":null,"previous_names":["ditatompel/wa-status-archiver"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ditatompel%2Fwa-status-archiver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ditatompel%2Fwa-status-archiver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ditatompel%2Fwa-status-archiver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ditatompel%2Fwa-status-archiver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ditatompel","download_url":"https://codeload.github.com/ditatompel/wa-status-archiver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240502378,"owners_count":19811794,"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":["go","gofiber","htmx","tailwindcss"],"created_at":"2024-11-10T08:35:41.818Z","updated_at":"2025-10-30T11:50:29.626Z","avatar_url":"https://github.com/ditatompel.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WA Status Archiver\n\n\u003e This is **experimental**, use at your own risk. And **DO NOT** (I repeat, **DO NOT**) expose the WEB UI to the public!\n\nThis is a simple app that preserve your WA contact status updates (videos and images) to your local storage. Optionally, you can build a bot that respond to certain keywords on top of it.\n\nA little background about this project: I want to learn and write my first **HTMX** app. Instead of usual _“To-Do's”_ app, I want to start with something different using `go.mau.fi/whatsmeow`.\n\n## 1. Attribution\n\nAttribution comes first, this project is build on top of these following awesome open source projects:\n\n-   [go.mau.fi/whatsmeow](https://github.com/tulir/whatsmeow/)\n-   [HTMX](https://htmx.org/)\n-   [Tailwind CSS](https://tailwindcss.com/)\n-   [gofiber/fiber](https://github.com/gofiber/fiber)\n-   [mdp/qrterminal](https://github.com/mdp/qrterminal)\n-   [spf13/cobra](https://github.com/spf13/cobra)\n-   [joho/godotenv](https://github.com/joho/godotenv)\n-   [alexedwards/argon2id](https://github.com/alexedwards/argon2id)\n-   [golang.org/x/term](https://pkg.go.dev/golang.org/x/term)\n-   [gosimple/slug](https://github.com/gosimple/slug)\n-   [Flowbite](https://flowbite.com) (Tailwind design components)\n\nAnd many indirect dependencies can be found in `go.mod`, `go.sum`, `package.json` and `package-lock.json`.\n\n## 2. Trying this app\n\nScreenshot: [Initial run](./.github/assets/01-initial-run.jpg), [Device Paired](./.github/assets/02-paired.jpg), [Login Page](./.github/assets/03-login-page.jpg), [Contact Page](./.github/assets/04-web-ui-contact-page.jpg), [Status Page](./.github/assets/05-statuses-page.jpg)\n\n### 2.1 Requirements (tested on)\n\n-   Node.js \u003e=20.x\n-   Go 1.22.x\n-   PostgreSQL \u003e=15.x\n\n### 2.2 Prepare the assets\n\n\u003e Only run these steps once.\n\n1. Clone this repository\n2. Copy `.env.example` to `.env` and modify as needed (especially `SECRET_KEY` and **DB** config)\n3. run `npm ci`\n4. run `make static`\n\n### 2.3 Running the “bot”\n\n1. Run `go run . run`\n2. On initial setup, it will display QR code. Scan it by linking device with your phone.\n\n### 2.4 Running the web UI\n\nTo access Web UI, you need to create an admin account. This can be done by running `go run . admin create` and fill your username and password.\n\nAfter that, you can run `go run . serve` and access the UI from the browser. (default: http://127.0.0.1:18088)\n\n## 3. Build the binary file\n\n```shell\nmake build\n```\n\nThe binary file will be placed in the `bin` directory.\n\n## 4. Development\n\nIf you want to develop or modify UI:\n\n```shell\nnpm install\nmake static\nnpm run dev\ngo run . serve\n```\n\nThanks to [cosmtrek/air](https://github.com/cosmtrek/air), you can run `air serve` to live reload the HTTP server (Do not use `air` when running `run` command).\n\n## 5. To-Do's\n\n-   Write the To-Do's (LMAO)\n\n## 6. FAQ\n\n### 6.1 Is this project stable?\n\nDefinitely **NO**.\n\n### 6.2 What database is supported?\n\nAlthough `whatsmeow` support **SQLite** and **PostgreSQL**, I only create this project on top of PostgreSQL. Feel free to adapt and implement the database driver to fit with your needs.\n\n### 6.3 Is this project support for multiple WA account?\n\nNo, this project only support one account.\n\n### 6.4 Can this app send or response to messages?\n\nYes, you can search for `ParseCmd` function call in `./cmd/run.go` (commented out) and `botSendMsg()` that use `protobuf` to [reply to specific message](https://github.com/tulir/whatsmeow/issues/88).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fditatompel%2Fwa-status-archiver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fditatompel%2Fwa-status-archiver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fditatompel%2Fwa-status-archiver/lists"}