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, comments and likes, search, a clean responsive layout with dark mode support, and an admin role for hiding posts.
npm install
- Create a PlanetScale database.
- Create a connection string to connect to your database. Choose Prisma for the format.
- Set up the environment variables:
cp .env.example .env
- Open
.env
and set theDATABASE_URL
variable with the connection string from PlanetScale. - Create the database schema:
npx prisma db push
By default Beam uses GitHub for authentication, but you can use Okta if you prefer. View the Okta setup instructions.
[TODO: GitHub auth instructions]
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.
- Update
.env
with the following variables:CLOUDINARY_CLOUD_NAME
: Cloud NameCLOUDINARY_API_KEY
: API KeyCLOUDINARY_API_SECRET
: API Secret
npm run dev
Open http://localhost:3000 in your browser.
One-click deploy:
After deploying, update the callback URLs for your preferred auth provider.
- Next.js as the React framework
- Tailwind for CSS styling
- Prisma as the ORM for database access
- PlanetScale as the database (MySQL)
- NextAuth.js for authentication
- Vercel for deployment