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.
Create a database
- Create a PlanetScale database
- Create a connection string to connect to your database. Choose Prisma for the format
- Alternatively, your PlanetScale database and connection string can be generated using the pscale CLI or GitHub Actions. View instructions.
- Set up the environment variables:
cp .env.example .env
.envand set the
DATABASE_URLvariable with the connection string from PlanetScale
- Create the database schema:
npx prisma db push
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.
Enable image uploads (optional)
To enable image uploads, set the environment variable
Beam uses Cloudinary for storing uploaded images. You can sign up for a free account.
- On your Cloudinary dashboard, look for these values under your account settings: Cloud Name, API Key, API Secret.
.envwith 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.
Running the app locally
npm run dev
Open http://localhost:3000 in your browser.
Authenticating with GitHub
Deploying to Vercel