A focused writing and publishing space. https://write.with.parts
 
 
 
 
Matt Baer 4504617c1a
Merge pull request #1165 from c7io-dev/patch2
1 month ago
.github Merge pull request #933 from CDN18/develop 7 months ago
appstats
author
cmd/writefreely
config Update config/setup.go for docker environment 6 months ago
db
key
keys
less Fix whitespace in modified LESS files 4 months ago
migrations Accept Like activities from the fediverse 4 months ago
oauth
page
pages
parse
prose
scripts
spam
static Link title directly to post page 4 months ago
templates Merge branch 'develop' into archive-page 1 month ago
testdata
.dockerignore Include .git context in Docker build for UI version number 1 year ago
.editorconfig
.gitignore
.travis.yml
AUTHORS.md
CONTRIBUTING.md Update Phabricator URL in docs and PR template 7 months ago
Dockerfile Merge pull request #894 from claabs/docker-healthcheck-fix 7 months ago
Dockerfile.prod Create Dockerfile & sample docker-compose.yml for production build 6 months ago
LICENSE
Makefile Merge branch 'develop' of github.com:writefreely/writefreely into develop 1 month ago
README.md Update date in README 1 month ago
SECURITY.md
account.go
account_import.go
activitypub.go Merge branch 'develop' into archive-page 1 month ago
activitypub_test.go
admin.go Fix admin/user pagination 3 months ago
app.go Merge branch 'develop' into archive-page 1 month ago
auth.go
cache.go
collections.go Add Archive page for all blogs 4 months ago
database-lib.go
database-no-sqlite.go
database-sqlite.go
database.go Merge branch 'develop' into archive-page 1 month ago
database_activitypub.go Accept Like activities from the fediverse 4 months ago
database_test.go
docker-compose.prod.yml Create Dockerfile & sample docker-compose.yml for production build 6 months ago
docker-compose.yml
docker-setup.sh
email.go
errors.go
export.go Add Archive page for all blogs 4 months ago
feed.go Add Archive page for all blogs 4 months ago
go.mod Bump golang.org/x/net from 0.26.0 to 0.30.0 4 months ago
go.sum Bump golang.org/x/net from 0.26.0 to 0.30.0 4 months ago
gopher.go Add Archive page for all blogs 4 months ago
handle.go
hostmeta.go
instance.go
invites.go
jobs.go
keys.go
main_test.go
monetization.go
nodeinfo.go Use @writefreely handle for nodeinfo 5 months ago
oauth.go
oauth_generic.go add client_id and client_secret to exchangeOauthCode form 9 months ago
oauth_gitea.go
oauth_gitlab.go
oauth_signup.go
oauth_slack.go Switch to gosimple/slug from writeas/slug 5 months ago
oauth_test.go
oauth_writeas.go
ossl_legacy.cnf
pad.go
pages.go
postrender.go
postrender_test.go
posts.go Merge branch 'develop' into archive-page 1 month ago
posts_test.go
read.go Fix Admin and Invite links never showing on Reader nav 1 year ago
request.go
routes.go Merge branch 'develop' into archive-page 1 month ago
routes_test.go
schema.sql
semver.go
session.go
sitemap.go Add Archive page for all blogs 4 months ago
sqlite.sql
templates.go Add Archive page for all blogs 4 months ago
unregisteredusers.go
updates.go
updates_test.go
users.go
webfinger.go

README.md

 

WriteFreely


Latest release Build status Go Report Card

 

WriteFreely is a clean, minimalist publishing platform made for writers. Start a blog, share knowledge within your organization, or build a community around the shared act of writing.

Try the writing experience

Find an instance

Features

Made for writing

Built on a plain, auto-saving editor, WriteFreely gives you a distraction-free writing environment. Once published, your words are front and center, and easy to read.

A connected community

Start writing together, publicly or privately. Connect with other communities, whether running WriteFreely, Plume, or other ActivityPub-powered software. And bring members on board from your existing platforms, thanks to our OAuth 2.0 support.

Intuitive organization

Categorize articles with hashtags, and create static pages from normal posts by pinning them to your blog. Create draft posts and publish to multiple blogs from one account.

International

Blog elements are localized in 20+ languages, and WriteFreely includes first-class support for non-Latin and right-to-left (RTL) script languages.

Private by default

WriteFreely collects minimal data, and never publicizes more than a writer consents to. Writers can seamlessly create multiple blogs from a single account for different pen names or purposes without publicly revealing their association.

Write.as

The quickest way to deploy WriteFreely is with Write.as, a hosted service from the team behind WriteFreely. You'll get fully-managed installation, backup, upgrades, and maintenance — and directly fund our free software work

Learn more on Write.as.

Quick start

WriteFreely deploys as a static binary on any platform and architecture that Go supports. Just use our built-in SQLite support, or add a MySQL database, and you'll be up and running!

For common platforms, start with our pre-built binaries and head over to our installation guide to get started.

Packages

You can also find WriteFreely in these package repositories, thanks to our wonderful community!

Documentation

Read our full documentation on WriteFreely.org and help us improve by contributing to the writefreely/documentation repo.

Development

Start hacking on WriteFreely with our developer setup guide. For Docker support, see our Docker guide.

Contributing

We gladly welcome contributions to WriteFreely, whether in the form of code, bug reports, feature requests, translations, or documentation improvements.

Before contributing anything, please read our Contributing Guide. It describes the correct channels for submitting contributions and any potential requirements.

License

Copyright © 2018-2025 Musing Studio LLC and contributing authors. Licensed under the AGPL.