{"id":13406200,"url":"https://github.com/planetscale/beam","last_synced_at":"2025-05-15T09:05:14.790Z","repository":{"id":37087219,"uuid":"436336333","full_name":"planetscale/beam","owner":"planetscale","description":"A simple message board for your organization or project","archived":false,"fork":false,"pushed_at":"2024-03-17T01:20:18.000Z","size":3709,"stargazers_count":2099,"open_issues_count":7,"forks_count":145,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-03-31T02:12:21.131Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://planetscale.com/blog/introducing-beam","language":"TypeScript","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/planetscale.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":"2021-12-08T17:35:49.000Z","updated_at":"2025-03-31T01:06:45.000Z","dependencies_parsed_at":"2024-03-09T17:31:00.153Z","dependency_job_id":"0e2b23e8-f70e-4ceb-b1d1-8229278208de","html_url":"https://github.com/planetscale/beam","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/planetscale%2Fbeam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/planetscale%2Fbeam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/planetscale%2Fbeam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/planetscale%2Fbeam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/planetscale","download_url":"https://codeload.github.com/planetscale/beam/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247584111,"owners_count":20962075,"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":[],"created_at":"2024-07-30T19:02:23.916Z","updated_at":"2025-04-07T03:17:35.731Z","avatar_url":"https://github.com/planetscale.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","others","Social Media","**Awesome Codebases** [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)"],"sub_categories":["Blogging"],"readme":"\u003cimg src=\"public/images/logo.svg\" width=\"150\" /\u003e\n\nBeam is a simple tool that allows members to write posts to share across your organization. Think of it like a lightweight internal blog. Features include a simple **Markdown-based** editor with preview, **image drag and drop**, comments and likes, **search**, a clean responsive layout with **dark mode support**, and an admin role for hiding posts.\n\n\u003cimg src=\"public/images/screenshot.png\" width=\"690\" /\u003e\n\n## Setup\n\n### Install dependencies\n\n```bash\nnpm install\n```\n\n### Create a database\n\n- [Create a PlanetScale database](https://planetscale.com/docs/tutorials/planetscale-quick-start-guide#create-a-database)\n- Create a [connection string](https://planetscale.com/docs/concepts/connection-strings#creating-a-password) to connect to your database. Choose **Prisma** for the format\n- **Alternatively**, your PlanetScale database and connection string can be generated using the [pscale CLI](https://github.com/planetscale/cli) or GitHub Actions. [View instructions](doc/pscale-actions-setup.md).\n- Set up the environment variables:\n\n```bash\ncp .env.example .env\n```\n\n- Open `.env` and set the `DATABASE_URL` variable with the connection string from PlanetScale\n- Create the database schema:\n\n```bash\nnpx prisma db push\n```\n\n### Configure authentication\n\nGitHub and Okta authentication settings are available as defaults, but thanks to NextAuth.js, you can configure your Beam instance with most other common authentication providers.\n\n- [Configuring GitHub authentication](doc/github_setup.md)\n- [Configuring Okta authentication](doc/okta_setup.md)\n\nBeam uses [NextAuth.js](https://next-auth.js.org/), so if you prefer to use one of the [many providers](https://next-auth.js.org/providers/) it supports, you can customize your own installation. Simply update the [`lib/auth.ts`](/lib/auth.ts#L11) file to add your own provider.\n\n### Enable image uploads (optional)\n\nTo enable image uploads, set the environment variable `NEXT_PUBLIC_ENABLE_IMAGE_UPLOAD` to `true`.\n\nBeam uses Cloudinary for storing uploaded images. You can [sign up for a free account](https://cloudinary.com/users/register/free).\n\n- On your Cloudinary dashboard, look for these values under your account settings: **Cloud Name**, **API Key**, **API Secret**.\n- Update `.env` with the following variables:\n  - `CLOUDINARY_CLOUD_NAME`: **Cloud Name**\n  - `CLOUDINARY_API_KEY`: **API Key**\n  - `CLOUDINARY_API_SECRET`: **API Secret**\n\n### Configure Slack notifications (optional)\n\nIf you'd like to have new Beam posts published to a Slack channel, follow [these instructions](doc/slack_setup.md).\n\n## Running the app locally\n\n```bash\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) in your browser.\n\n### Authenticating with GitHub\n\n## Deploying to Vercel\n\nOne-click deploy:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fplanetscale%2Fbeam)\n\n⚠️ Remember to update your callback URLs after deploying.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplanetscale%2Fbeam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplanetscale%2Fbeam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplanetscale%2Fbeam/lists"}