Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/planetscale/beam
A simple message board for your organization or project
https://github.com/planetscale/beam
Last synced: about 1 month ago
JSON representation
A simple message board for your organization or project
- Host: GitHub
- URL: https://github.com/planetscale/beam
- Owner: planetscale
- License: mit
- Created: 2021-12-08T17:35:49.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-03-17T01:20:18.000Z (8 months ago)
- Last Synced: 2024-09-26T22:20:15.488Z (about 1 month ago)
- Language: TypeScript
- Homepage: https://planetscale.com/blog/introducing-beam
- Size: 3.54 MB
- Stars: 2,053
- Watchers: 17
- Forks: 141
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome - planetscale/beam - A simple message board for your organization or project (TypeScript)
- awesome-codebases - Beam - A simple message board for your organization or project (**Awesome Codebases** [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome))
- awesome-starred - planetscale/beam - A simple message board for your organization or project (others)
README
Beam 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.
## Setup
### Install dependencies
```bash
npm install
```### Create a database
- [Create a PlanetScale database](https://planetscale.com/docs/tutorials/planetscale-quick-start-guide#create-a-database)
- Create a [connection string](https://planetscale.com/docs/concepts/connection-strings#creating-a-password) to connect to your database. Choose **Prisma** for the format
- **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).
- Set up the environment variables:```bash
cp .env.example .env
```- Open `.env` and set the `DATABASE_URL` variable with the connection string from PlanetScale
- Create the database schema:```bash
npx prisma db push
```### Configure authentication
GitHub 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.
- [Configuring GitHub authentication](doc/github_setup.md)
- [Configuring Okta authentication](doc/okta_setup.md)Beam 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.
### Enable image uploads (optional)
To enable image uploads, set the environment variable `NEXT_PUBLIC_ENABLE_IMAGE_UPLOAD` to `true`.
Beam uses Cloudinary for storing uploaded images. You can [sign up for a free account](https://cloudinary.com/users/register/free).
- On your Cloudinary dashboard, look for these values under your account settings: **Cloud Name**, **API Key**, **API Secret**.
- Update `.env` with the following variables:
- `CLOUDINARY_CLOUD_NAME`: **Cloud Name**
- `CLOUDINARY_API_KEY`: **API Key**
- `CLOUDINARY_API_SECRET`: **API Secret**### Configure Slack notifications (optional)
If you'd like to have new Beam posts published to a Slack channel, follow [these instructions](doc/slack_setup.md).
## Running the app locally
```bash
npm run dev
```Open [http://localhost:3000](http://localhost:3000) in your browser.
### Authenticating with GitHub
## Deploying to Vercel
One-click deploy:
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fplanetscale%2Fbeam)
⚠️ Remember to update your callback URLs after deploying.