{"id":16696956,"url":"https://github.com/seratch/bolt-starter","last_synced_at":"2025-05-07T13:26:43.270Z","repository":{"id":41985181,"uuid":"225620755","full_name":"seratch/bolt-starter","owner":"seratch","description":"A Bolt ⚡️ app template with useful settings for easier development","archived":false,"fork":false,"pushed_at":"2024-10-19T23:24:37.000Z","size":6110,"stargazers_count":54,"open_issues_count":1,"forks_count":11,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-03T11:08:13.042Z","etag":null,"topics":["bolt","javascript","js","slack","slack-api","slack-app"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/seratch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2019-12-03T12:58:54.000Z","updated_at":"2024-12-04T19:11:55.000Z","dependencies_parsed_at":"2024-06-17T02:48:00.814Z","dependency_job_id":"d06c8113-238a-4639-9933-8cae217b45d7","html_url":"https://github.com/seratch/bolt-starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seratch%2Fbolt-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seratch%2Fbolt-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seratch%2Fbolt-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seratch%2Fbolt-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seratch","download_url":"https://codeload.github.com/seratch/bolt-starter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233347517,"owners_count":18662677,"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":["bolt","javascript","js","slack","slack-api","slack-app"],"created_at":"2024-10-12T17:45:26.390Z","updated_at":"2025-01-10T12:43:44.019Z","avatar_url":"https://github.com/seratch.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Getting started with Bolt ⚡️\n\nThis is a simple [Slack's Bolt⚡️](https://slack.dev/bolt/) app template. This README covers the following ways to start building your awesome Slack apps.\n\n* [CodeSandbox](https://codesandbox.io/): Step 1 -\u003e Step 2A\n* [Glitch](https://glitch.com/): Step 1 -\u003e Step 2B\n* On your local machine (Linux/macOS/Windows): Step 1 -\u003e Step 2C\n\n---\n\n## (Step 1) Slack App Initial Setup\n\n### Create a Slack App\n\nStart with creating a new Slack app from https://api.slack.com/apps\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/create_slack_app.png\" width=400 /\u003e\n\n### Configure Bot Scopes\n\nAccess **Features \u003e OAuth \u0026 Permissions** from the left sidebar and set the followings.\n\n`https://api.slack.com/apps/{APP_ID}/oauth`\n\n* `app_mentions:read`\n* `chat:write`\n* `commands`\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/oauth_scopes.png\" width=400 /\u003e\n\n### Install the app to your workspace\n\nAccess **Settings \u003e Install App** from the left sidebar. You'll configure more later but let's install the app anyway to get a bot token (`xoxb-***`).\n\n`https://api.slack.com/apps/{APP_ID}/install-on-team`\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/oauth_installation.png\" width=400 /\u003e\n\n---\n\n## (Step 2A) CodeSandbox Setup\n\n### Sign in with your GitHub account\n\nhttps://codesandbox.io/\n\nAs of December 2019, CodeSandbox allows logging in with only GitHub accounts. You need to login with your own GitHub account.\n\n### Create a new sandbox\n\nIt's pretty simple. Create a new sandbox by importing this repostiory. The steps are:\n\n* Click `Create Sandbox`\n* Go to `Import` tab\n* Put `https://github.com/seratch/bolt-starter` in the textbox\n* Click `Open Sandbox`\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/codesandbox_github_import.png\" width=400 /\u003e\n\nThen, fork the template project to create your own sandbox:\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/codesandbox_fork_template.png\" width=400 /\u003e\n\nIn your own sandbox project, configure secrets as below:\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/codesandbox_secrets.png\" width=400 /\u003e\n\n* SLACK_SIGNING_SECRET: Use the value you can find at **Basic Information \u003e App Credentials \u003e Signing Secret**\n* SLACK_BOT_TOKEN: Use the Bot User OAuth Access Token (starting with `xoxb-`) you can find at **Settings \u003e Install App**\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/codesandbox_edit_secrets.png\" width=400 /\u003e\n\nThat's all! If your changes are not reflected to the running sandbox, click `Restart Sandbox` button.\n\n### Set Request URLs (Slack App)\n\nYou must see `https://{random}.sse.codesandbox.io/` URL in the right pane on CodeSandbox.\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/codesandbox_url.png\" width=400 /\u003e\n\nYou can go with `https://{random}.sse.codesandbox.io/slack/events` for all of the Slack App Request URLs. \n\nYou need to configure the following three settings with the URL.\n\n* Interactive Components: Turn on first, set the Request URL, and then click \"Save Changes\" button\n* Slash Commands: Add `/open-modal` command with the above URL for Reequest URL\n* Event Subscriptions: Turn on first, set the Request URL, add `app_mention` in Bot Events, and then click \"Save Changes\" button\n\n### Re-install Slack App to your workspace\n\n`https://api.slack.com/apps/{APP_ID}/install-on-team`\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/oauth_installation.png\" width=400 /\u003e\n\n---\n\n## (Step 2B) Glitch Setup\n\nhttps://glitch.com/\n\n### Create a Glitch project\n\nThe steps are similar to CodeSandbox.\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/glitch_clone_repo.png\" width=400 /\u003e\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/glitch_paste_url.png\" width=400 /\u003e\n\nAfter creating a project, duplicate `_env` file and name it as `.env`. The file named `.env` will be automatically marked as a secret file.\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/glitch_duplicate_env.png\" width=400 /\u003e\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/glitch_env_file.png\" width=400 /\u003e\n\nAfter modifying `.env` file, make sure if the app is running without any problems by checking the logs.\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/glitch_tools.png\" width=400 /\u003e\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/glitch_logs.png\" width=400 /\u003e\n\n### Set Request URLs (Slack App)\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/glitch_live_app.png\" width=400 /\u003e\n\nYou must see `https://{some-fancy-name}.glitch.me/` URL in the Live App settings on Glitch.\n\nYou can go with `https://{some-fancy-name}.glitch.me/slack/events` for all of the Slack App Request URLs. \n\n* `https://api.slack.com/apps/{APP_ID}/event-subscriptions`\n* `https://api.slack.com/apps/{APP_ID}/slash-commands`\n* `https://api.slack.com/apps/{APP_ID}/interactive-messages`\n\n### Re-install Slack App to your workspace\n\n`https://api.slack.com/apps/{APP_ID}/install-on-team`\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/oauth_installation.png\" width=400 /\u003e\n\n---\n\n## (Step 2C) Your Local Machine Setup\n\n### ngrok Setup\n\nhttps://ngrok.com/\n\n```bash\nngrok http 3000\n```\n\nIf you have a paid license, you can configure a fixed subdomain.\n\n```bash\nngrok http 3000 --subdomain your-awesome-subdomain\n```\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/ngrok.png\" width=400 /\u003e\n\n### Node Version Manager (nvm) Setup\n\n#### Linux / macOS\n\n* Install [Node Version Manager (nvm)](https://github.com/nvm-sh/nvm#installation-and-update)\n* `nvm install --lts` (installing latest LTS version)\n\n#### Windows\n\n* Install [nvm-windows](https://github.com/coreybutler/nvm-windows) from [here](https://github.com/coreybutler/nvm-windows/releases)\n* `mvn list available` to check the available versions\n* `nvm install {latest LTS}` (installing latest LTS version)\n\nIf you go with WSL, follow the same steps in `Linux / macOS`.\n\n### Start with this template\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/use_template.png\" width=400 /\u003e\n\nOr it's also possible to download this project template:\n\n`git clone git@github.com:seratch/bolt-starter.git` or https://github.com/seratch/bolt-starter/archive/master.zip\n\n### Run the app\n\n```bash\ncd bolt-starter\ncp _env .env\n# edit .env\nnpm i\nnpm run local\n```\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/npm_run_local.png\" width=400 /\u003e\n\n### Set Request URLs (Slack App)\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/request_url.png\" width=400 /\u003e\n\nSet `https://{your-awesome-subdomain}.ngrok.io/slack/events` to all of the followings:\n\n* `https://api.slack.com/apps/{APP_ID}/slash-commands`\n* `https://api.slack.com/apps/{APP_ID}/event-subscriptions`\n* `https://api.slack.com/apps/{APP_ID}/interactive-messages`\n\n#### Slash Commands\n\nAccess **Features \u003e Slash Commands** from the left sidebar. Create a slash command named `/open-modal`.\n\n`https://api.slack.com/apps/{APP_ID}/slash-commands`\n\n* Command: `/open-modal`\n* request URL: `https://{your-awesome-subdomain}.ngrok.io/slack/events`\n* Short Description: whatever you like\n* Click \"Save\" for sure\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/slash_command.png\" width=400 /\u003e\n\n#### Configure Event Subscriptions\n\nAccess **Features \u003e Event Subscriptions** from the left sidebar. Add an event subscription for `app_mention` events and click \"Save Changes\" button for sure..\n\n`https://api.slack.com/apps/{APP_ID}/event-subscriptions`\n\n* `app_mention`\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/event_subscriptions.png\" width=400 /\u003e\n\n#### Configure Interactivity\n\nAccess **Features \u003e Interactivity \u0026 Shortcuts** from the left sidebar. Set the Request URL for Interactity and click \"Save Changes\" button for sure.\n\n`https://api.slack.com/apps/{APP_ID}/interactive-messages`\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/interactive_components.png\" width=400 /\u003e\n\n#### Global Shortcuts\n\nAccess **Features \u003e Interactivity \u0026 Shortcuts \u003e Shortcuts** from the left sidebar. Create a new global shortcut with Callback ID `open-modal`.\n\n* Name: whatever you like\n* Short Description: whatever you like\n* Callback ID: `open-modal`\n* Click \"Create\"\n\n### Re-install the app to your workspace\n\n`https://api.slack.com/apps/{APP_ID}/install-on-team`\n\n\u003cimg src=\"https://github.com/seratch/bolt-starter/raw/master/images/oauth_installation.png\" width=400 /\u003e\n\n# License\n\nThe MIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseratch%2Fbolt-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseratch%2Fbolt-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseratch%2Fbolt-starter/lists"}