btw-so/btw

Open source Medium alternative- set up your personal blog in minutes.

JavaScript

1,253

154 commits

updated Aug 15, 2026

See the code

README

github-cover


btw

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.

btw-editor-screenshot

Demo blogs published using btw:

Table of contents

Getting started

These instructions will help you to get a copy of the project up and running on your local machine

Pre-requisites

  • Install the latest version of Docker, Docker-compose on your system
  • Working postgres instance
  • SMTP credentials (Ex: from mailgun)

Installation

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 NameDescription
TASKS_DATABASE_URLConnection URL to your PG DB (For development, the URL is already configured)
ADMIN_EMAILYour email address (REQUIRED)
ADMIN_SLUGUnique 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
SECRETUnique secret (change the default secret)
SMTP_HOSTSMTP HOST (OPTIONAL, used to email OTPs for login)
SMTP_PORTOPTIONAL
SMTP_USEROPTIONAL
SMTP_PASSOPTIONAL
SMTP_FROMOPTIONAL
S3_ENDPOINT(OPTIONAL) Set this if you need image uploads to work in editor
REACT_APP_S3_ENDPOINTOPTIONAL
S3_BUCKETOPTIONAL
S3_KEYOPTIONAL
S3_SECRETOPTIONAL

Development

  1. Execute the following commands from the deploy folder:
    docker-compose -f docker-compose.dev.yml up
    
  2. Visit localhost:9000 to login and start writing
  3. If you set your slug and publish any articles, you can view them at localhost:9222?domain=

Community

  • Twitter: Product updates & memes.
  • Discord: If you have questions or just want to hang out, come & say hi!

Coming next

  • Simplified development setup
  • Sample cloud deployment setup
  • Sample custom domain setup instructions
  • Feature roadmap
  • Documentation
  • Contributing guidelines

License

See the LICENSE file for details.

blog-platform
medium
no-code
notes-app
note-taking
personal-blog
website-builder

btw-so/btw

Open source Medium alternative- set up your personal blog in minutes.

JavaScript

1,253

154 commits

updated Aug 15, 2026

See the code

README

github-cover


btw

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.

btw-editor-screenshot

Demo blogs published using btw:

Table of contents

Getting started

These instructions will help you to get a copy of the project up and running on your local machine

Pre-requisites

  • Install the latest version of Docker, Docker-compose on your system
  • Working postgres instance
  • SMTP credentials (Ex: from mailgun)

Installation

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 NameDescription
TASKS_DATABASE_URLConnection URL to your PG DB (For development, the URL is already configured)
ADMIN_EMAILYour email address (REQUIRED)
ADMIN_SLUGUnique 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
SECRETUnique secret (change the default secret)
SMTP_HOSTSMTP HOST (OPTIONAL, used to email OTPs for login)
SMTP_PORTOPTIONAL
SMTP_USEROPTIONAL
SMTP_PASSOPTIONAL
SMTP_FROMOPTIONAL
S3_ENDPOINT(OPTIONAL) Set this if you need image uploads to work in editor
REACT_APP_S3_ENDPOINTOPTIONAL
S3_BUCKETOPTIONAL
S3_KEYOPTIONAL
S3_SECRETOPTIONAL

Development

  1. Execute the following commands from the deploy folder:
    docker-compose -f docker-compose.dev.yml up
    
  2. Visit localhost:9000 to login and start writing
  3. If you set your slug and publish any articles, you can view them at localhost:9222?domain=

Community

  • Twitter: Product updates & memes.
  • Discord: If you have questions or just want to hang out, come & say hi!

Coming next

  • Simplified development setup
  • Sample cloud deployment setup
  • Sample custom domain setup instructions
  • Feature roadmap
  • Documentation
  • Contributing guidelines

License

See the LICENSE file for details.

blog-platform
medium
no-code
notes-app
note-taking
personal-blog
website-builder

Significant stargazers

Dhravya Shah

3,925 followers · starred May 2023

Git'Fellow

43 followers · starred May 2024

Pranav

508 followers · starred May 2023

Andrei Simionescu

364 followers · starred Jul 2025