Forge brings all your most important dashboards and tools into a single app, so you never have to juggle multiple websites or programs again. Track stock prices, check the weather, monitor GitHub activity, manage tasks, or write in Markdown—all from one place.
- Customizable Dashboard: Drag, drop, and resize widgets to create a layout that fits your workflow.
- Multiple Dashboards: Organize your widgets across multiple dashboards for different contexts.
- 12+ Widgets: A wide range of widgets including Meetings, Inbox, GitHub, Todos, and more.
- Real-time Updates: Widgets like Stocks and Weather provide real-time information.
- Theming: Customize the look and feel of your dashboard with different themes.
- Responsive Design: Access your dashboard from any device, be it desktop, tablet, or mobile.
- Self-Hosted: Full control over your data by hosting Forge on your own infrastructure.
- OAuth Integrations: Connect to services like Google, GitHub, Notion, and Coinbase.
- Meetings: Connect your Google Account and see your next meetings
- Inbox: Connect your Gmail Account and see all your emails in one place
- Stocks: Real‑time prices, watchlists, and custom analyses
- Weather: Local forecasts and global weather maps
- GitHub: Browse repos, track issues & pull requests
- Markdown Editor: Draft notes, documentation, or blog posts inline
- Bookmark: Save all your favorite websites in one store to have them handy
- Todo: Manage your tasks and to-dos
- Clock: Keep track of time with a clock widget
- Countdown: See the time until a certain event is happening
- GitHub Heatmap: Visualize your GitHub contributions over time#
- Kanban Board: Organize tasks in a Kanban-style board
- Framework: Next.js
- Styling: Tailwind CSS
- Database: PostgreSQL
- Realtime Notifications: Upstash Redis
- ORM: Drizzle
- Formatter/Linter: BiomeJS
- Data Fetching: React Query
- Authentication: BetterAuth
- Validation: Zod
Forge is designed to be fully self-hostable. Here's how you can set up your own instance.
- Node.js (v18 or later recommended)
- A PostgreSQL database
- A Redis instance (e.g., Upstash)
-
Clone the repository:
git clone https://github.com/mvriu5/forge.git cd forge -
Install dependencies:
npm install
-
Set up environment variables: Create a
.envfile in the root of the project and fill it with the necessary values. See the table below for a complete list of environment variables. -
Run database migrations:
npx drizzle-kit push
-
Start the application:
npm run dev
| Variable | Description | Required |
|---|---|---|
NEXT_PUBLIC_APP_URL |
The public URL of your application (e.g., http://localhost:3000). |
Yes |
BETTER_AUTH_SECRET |
A secret key for session encryption with BetterAuth. Generate a strong, random string. | Yes |
BETTER_AUTH_URL |
The full URL of your BetterAuth instance, which is your application's URL. | Yes |
DATABASE_URI |
The connection string for your PostgreSQL database. | Yes |
UPSTASH_REDIS_REST_URL |
The REST URL for your Upstash Redis instance. | Yes |
UPSTASH_REDIS_REST_TOKEN |
The access token for your Upstash Redis instance. | Yes |
BLOB_READ_WRITE_TOKEN |
A token for your blob storage solution (e.g., Vercel Blob). Needed for file uploads. | Yes |
GITHUB_CLIENT_ID |
The Client ID of your GitHub OAuth App for the GitHub widget integration. | Optional |
GITHUB_CLIENT_SECRET |
The Client Secret of your GitHub OAuth App. | Optional |
GOOGLE_CLIENT_ID |
The Client ID from your Google Cloud project for Google Calendar/Mail integration. | Optional |
GOOGLE_CLIENT_SECRET |
The Client Secret from your Google Cloud project. | Optional |
NOTION_CLIENT_ID |
The Client ID for your Notion integration. | Optional |
NOTION_CLIENT_SECRET |
The Client Secret for your Notion integration. | Optional |
COINBASE_CLIENT_ID |
The Client ID for your Coinbase OAuth2 application for crypto widgets. | Optional |
COINBASE_CLIENT_SECRET |
The Client Secret for your Coinbase OAuth2 application. | Optional |
Have a bug report, feature request, or question? Please open an issue in this repository:
https://github.com/mvriu5/forge/issues
This project is licensed under the MIT License.
Maintainer: @mvriu5
