Open source Medium alternative- set up your personal blog in minutes.
See the code
btw is an open source personal website builder.
You can sign up and use btw without installing anything. You can also use the open source version to self-host.

These instructions will help you to get a copy of the project up and running on your local machine
Set ADMIN_EMAIL and ADMIN_SLUG in deploy/docker-compose.dev.yml. These are the only mandatory fields. Your database will be automatically configured on the first setup. Details of other variables in the docker-compose file:
| Variable Name | Description |
|---|---|
| TASKS_DATABASE_URL | Connection URL to your PG DB (For development, the URL is already configured) |
| ADMIN_EMAIL | Your email address (REQUIRED) |
| ADMIN_SLUG | Unique slug (REQUIRED) |
| ADMIN_OTP | (OPTIONAL) Set a unique 6 digit code, if you want the writer to be behind OTP login. OTP login turned off by default |
| SECRET | Unique secret (change the default secret) |
| SMTP_HOST | SMTP HOST (OPTIONAL, used to email OTPs for login) |
| SMTP_PORT | OPTIONAL |
| SMTP_USER | OPTIONAL |
| SMTP_PASS | OPTIONAL |
| SMTP_FROM | OPTIONAL |
| S3_ENDPOINT | (OPTIONAL) Set this if you need image uploads to work in editor |
| REACT_APP_S3_ENDPOINT | OPTIONAL |
| S3_BUCKET | OPTIONAL |
| S3_KEY | OPTIONAL |
| S3_SECRET | OPTIONAL |
docker-compose -f docker-compose.dev.yml up
See the LICENSE file for details.
3,925 followers · starred May 2023
43 followers · starred May 2024
508 followers · starred May 2023
364 followers · starred Jul 2025
Open source Medium alternative- set up your personal blog in minutes.
See the code
btw is an open source personal website builder.
You can sign up and use btw without installing anything. You can also use the open source version to self-host.

These instructions will help you to get a copy of the project up and running on your local machine
Set ADMIN_EMAIL and ADMIN_SLUG in deploy/docker-compose.dev.yml. These are the only mandatory fields. Your database will be automatically configured on the first setup. Details of other variables in the docker-compose file:
| Variable Name | Description |
|---|---|
| TASKS_DATABASE_URL | Connection URL to your PG DB (For development, the URL is already configured) |
| ADMIN_EMAIL | Your email address (REQUIRED) |
| ADMIN_SLUG | Unique slug (REQUIRED) |
| ADMIN_OTP | (OPTIONAL) Set a unique 6 digit code, if you want the writer to be behind OTP login. OTP login turned off by default |
| SECRET | Unique secret (change the default secret) |
| SMTP_HOST | SMTP HOST (OPTIONAL, used to email OTPs for login) |
| SMTP_PORT | OPTIONAL |
| SMTP_USER | OPTIONAL |
| SMTP_PASS | OPTIONAL |
| SMTP_FROM | OPTIONAL |
| S3_ENDPOINT | (OPTIONAL) Set this if you need image uploads to work in editor |
| REACT_APP_S3_ENDPOINT | OPTIONAL |
| S3_BUCKET | OPTIONAL |
| S3_KEY | OPTIONAL |
| S3_SECRET | OPTIONAL |
docker-compose -f docker-compose.dev.yml up
See the LICENSE file for details.
3,925 followers · starred May 2023
43 followers · starred May 2024
508 followers · starred May 2023
364 followers · starred Jul 2025