WriteFreely is a clean, minimalist publishing platform made for writers

Overview

 

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-2021 A Bunch Tell LLC and contributing authors. Licensed under the AGPL.

Issues
  • Federation with Hubzilla

    Federation with Hubzilla

    Describe the bug

    New posts not shown in Hubzilla

    Steps to reproduce (if necessary)

    Steps to reproduce the behavior:

    1. In Hubzilla, add a new connection to a write.as account
    2. On the write.as account, add a new post
    3. Check that this new post is visible elsewhere (ex: from misskey), but not on Hubzilla

    Expected behavior

    I should see the new post in Hubzilla

    Application configuration

    Tested in qua.name instance Version or last commit: v0.9.1-49-g901bf14

    bug help wanted federation 
    opened by Eldarendil 30
  • AP actors have erroneous sharedInbox

    AP actors have erroneous sharedInbox

    In my actor, https://blog.dereferenced.org/api/collections/kaniini, I see:

    "endpoints":{"sharedInbox":""}
    

    This is obviously wrong ;)

    bug federation 
    opened by kaniini 23
  • support pubgate

    support pubgate

    this moves the unmarshaling of a remote actor out into a new helper which accounts for the possibility of a context being a list or a single entity. i.e. a string or an object.

    basics tests are provided for both situations

    also go fmt'd the file activitypub.go

    during the course of working on this I found a missing string format variable in exports.go, in fixing that I also go fmt'd the file.

    Fixes #100 This also fixes #116 by using the followers Inbox if SharedInbox is not set.

    • [x] I have signed the CLA
    opened by robjloranger 20
  • data: URIs are incorrectly stripped

    data: URIs are incorrectly stripped

    Describe the bug

    The markup

    ![Red dot](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==)
    

    Should show a red dot as an image.

    It doesn't. Inspecting the generated HTML from the Markdown shows that the generated img element has no src attribute.

    I think, but have not confirmed, that this is because https://github.com/writeas/writefreely/blob/32e99d00415c6e86a9536d9b824dcdf0b119270d/posts.go#L1368 does not include data: as a valid protocol.

    Expected behavior

    img element should be created with the correct src attribute.

    enhancement discussion 
    opened by nikclayton 17
  • Field 'description' doesn't have default value

    Field 'description' doesn't have default value

    ERROR: 2018/11/11 11:57:33 log.go:26: Rolling back collections INSERT: Error 1364: Field 'description' doesn't have a default value
    ERROR: 2018/11/11 11:57:33 log.go:26: Unable to create user: Error 1364: Field 'description' doesn't have a default value
    

    I had to manually change description varchar(160) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL to description varchar(160) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT ''

    however after that it shows the same problem with privacy field. Either something wrong with my mySQL or with your schema.sql. Server version: 5.7.18-0ubuntu0.16.10.1 (Ubuntu)

    bug 
    opened by MasterGroosha 17
  • db migrate error with utfmb4

    db migrate error with utfmb4

    I tried to upgrade to v0.12.0rc1

    "db migrate" gives the error ERROR: 2020/04/19 17:16:57 main.go:121: migrate: Error 1709: Index column size too large. The maximum column size is 767 bytes.

    I suspect this is due to my mysql being setup in utf8mb4.

    bug documentation 
    opened by vince2bir 16
  • Fix following from Mastodon with Authorized Fetch enabled

    Fix following from Mastodon with Authorized Fetch enabled

    This fixes federation with Mastodon instances that have Authorized Fetch turned on by signing the GET request to fetch the actor when a blog is first followed.

    Closes T820


    • ☑ I have signed the CLA
    opened by thebaer 15
  • Send out ActivityPub mentions (T627)

    Send out ActivityPub mentions (T627)

    This pull request adds code that scans the text of each post to be published for handles of the type @[email protected], uses webfinger to ask ActivityPub endpoints about them, gets their inbox and actor IRI's and adds mention tags to the post. Finally it adds the users to the CC list of the recipients of the activity.

    This works in pleroma but not in mastodon unless we set the object type to "Note" instead of "Article"

    T627

    opened by qwazix 15
  • Possible memory leak?

    Possible memory leak?

    Describe the bug

    I'm running WriteFreely v 0.9.1 on my Scaleway instance with 2GB of RAM. It's a single-user federated instance with SQLite as backend. I'm managing it via systemd with the following service description:

    [Unit]
    Description=Write Freely Instance
    After=syslog.target network.target
    
    [Service]
    Type=simple
    WorkingDirectory=/home/groosha/writefreely
    ExecStart=/home/groosha/writefreely/writefreely >> /var/log/writefreely.log
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    The only modification I made is replacing one of "letter-avatars" with a custom one to see a proper profile pic on Mastodon.

    Symptoms

    If I run WriteFreely for a long time (let's say, a month) without even touching it (no users, no new posts, nothing), it consumes almost all free RAM on server, causing other apps to have problems. For example, my Python scripts which are running as cron jobs and regular processes, raise some exceptions like RuntimeError: can't start new thread or vedis.cpython-35m-x86_64-linux-gnu.so: failed to map segment from shared object. Also running htop shows that writefreely process consumes ~60% of RAM: изображение (notice that I'm running only one process, but htop shows all threads)

    After I restart writefreely with systemctl restart writefreely everything gets back to normal: изображение (here I enabled "tree" view of processes, showing that I have only 1 process of writefreely and others are most likely threads)

    My bad I didn't write down Go internal stats from /admin page, I guess it would help a lot.

    Expected behavior

    RAM usage should depend on active users or API usage, not increase as the time goes by.

    Application configuration

    • Single mode or Multi-user mode? Single mode
    • Database? SQLite
    • Open registration? No
    • Federation enabled? Yes
    • Operating system? Ubuntu 16.10 (oops!)

    Version or last commit: 0.9.1

    help wanted performance 
    opened by MasterGroosha 15
  • check for lessc executable in any location

    check for lessc executable in any location

    previously the checks were explicit locations which does not work when using something like nvm to manage node packages and versions.

    this checks for the executable and sets the script variable LESSC to the full path of the one found. if none was found the make command will error.


    • [x] I have signed the CLA
    opened by robjloranger 14
  • Invalid JSON-LD syntax; @context must be an object.

    Invalid JSON-LD syntax; @context must be an object.

    When following my writefreely user [email protected] from friendica [email protected] I get the following error response upon writing new posts / updating posts in writefreely:

    2020/04/10 22:51:59 Response: JsonLdException: [jsonld.SyntaxError]: Invalid JSON-LD syntax; @context must be an object.

    From the json-ld spec it also seems that the context is supposed to be an object or a link to a jsonld file: https://www.w3.org/TR/2020/CR-json-ld11-20200316/#the-context

    bug federation 
    opened by wiwie 13
  • Using MySQL driver without a password fails.

    Using MySQL driver without a password fails.

    Describe the bug

    Attempting to use the MySQL database driver without a password set causes the program to throw an error and exit, printing the following.

    Database user or password not set.
    
    View config.ini file.
    [app]
    host = http://local.test
    site_name = WriteFreely
    theme = write
    
    [database]
    database = writefreely
    host = localhost
    password = ""
    port = 3306
    tls = 
    type = mysql
    username = writefreely
    
    [server]
    autocert = 
    bind = localhost
    gopher_port = 0
    keys_parent_dir = /var/lib/writefreely
    pages_parent_dir = /nix/store/0sd080c203cc8nrgkmbjd8i5ydl4d2r5-source
    port = 80
    static_parent_dir = /nix/store/07va1db963wnsbm84lpxz3jcdjyxkkir-writefreely-assets-0.13.1
    templates_parent_dir = /nix/store/0sd080c203cc8nrgkmbjd8i5ydl4d2r5-source
    

    I'm currently trying to wire up a NixOS module for WriteFreely. NixOS's MySQL module configures database users for auth with either unix_socket or auth_socket and does not initialize users with a password.

    Steps to reproduce (if necessary)

    1. Start MySQL.
    2. Create a user with either unix_socket or auth_socket auth as described above.
    3. Configure WriteFreely to use MySQL with an empty password entry.
    4. Start WriteFreely.

    Expected behavior

    WriteFreely should be able to connect to the database without a password, though I'm not familiar enough with Go or the libraries underlying the database system to know if that's possible here (though my gut says it should be).

    Application configuration

    • Single mode or Multi-user mode? both
    • Database? [mysql/sqlite] mysql
    • Open registration? [yes/no] both
    • Federation enabled? [yes/no] both

    Version or last commit: 0.13.1

    opened by jakehamilton 0
  • HTML Self-closing tags confuse the sanitizer and cause document to break [READ COMMENTS]   (Original issue title: Iframe allow tag is removed from article html) )

    HTML Self-closing tags confuse the sanitizer and cause document to break [READ COMMENTS] (Original issue title: Iframe allow tag is removed from article html) )

    Describe the bug

    I made a little widget specifically for embedding in a blog post. Unfortunately, it requires camera access in order to be cool. When i add the allow tag to my iframe as described in https://writefreely.org/docs/v0.13.1/writer/html#iframe it is simply stripped from the output

    i realize this might be for security reasons, but i feel that this is a little overprotective handholding when i'm running my own single-user instance... and misleading docs at the very least..

    (also unrelated question but is it intended that only todays posts are displayed on my index page in everything but novel mode?! there is like no way to access them otherwise?! also i have lost the ability to pin posts, it returns a 404 error, despite no config change on my part?! sorry for these unrelated things but i have to ask them somewhere, i am having a bad time rn, prlly something on my part)

    Steps to reproduce (if necessary)

    Steps to reproduce the behavior:

    1. Go to New Post
    2. Paste in example from the documentation
    3. allow tag will be stripped

    Expected behavior

    allow tag should not be stripped

    Application configuration

    • Single mode
    • Database? sqlite
    • Open registration? no
    • Federation enabled? yes

    Version or last commit: v0.13.1

    opened by DRKSLV 3
  • Releasing new versions is blocked due to bug in other project?

    Releasing new versions is blocked due to bug in other project?

    So, I'm completely removing the issue-template here, as this is more of a overlay-bug/placeholder for this thing - or this if you'd like.

    As I understand it, there's a bug in xgo - which is blocking a release.

    That bug has a workaround, which is building with go 1.15 (which I understand is EOL?) - but that workaround comes with this bug again - which makes the whole thing rather messy and convoluted.

    I'm not a go-developer, nor do I think I'm going to start being one anytime soon - so "bugs that needs coding" isn't something I can help with - however, that last "bug" seems like it can be fixed by adding new root-CA's somewhere in a container.

    Did you also notice this, as a potential fix/workaround?

    build 
    opened by davralin 1
  • Serving ActivityPub objects

    Serving ActivityPub objects

    Describe the bug

    According to ActivityPub specification, servers should respond with ActivityStreams object representation to requests having application/ld+json; profile="https://www.w3.org/ns/activitystreams" in Accept header, but apparently only application/activity+json is supported

    Servers ... MUST present the ActivityStreams object representation in response to application/ld+json; profile="https://www.w3.org/ns/activitystreams", and SHOULD also present the ActivityStreams representation in response to application/activity+json as well.

    https://github.com/writefreely/writefreely/blob/b7f732b9154096d6864f2fa9469fe9c7a9b73d58/posts.go#L1123

    Steps to reproduce (if necessary)

    curl -H 'Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams"' https://***/api/posts/***
    

    The server returns the standard API response:

    {
      "code": 200,
      "data": {
        ...
      }
    }
    

    Expected behavior

    Server should return ActivityStreams object representation.

    opened by silverpill 0
  • Bump github.com/fatih/color from 1.10.0 to 1.13.0

    Bump github.com/fatih/color from 1.10.0 to 1.13.0

    Bumps github.com/fatih/color from 1.10.0 to 1.13.0.

    Release notes

    Sourced from github.com/fatih/color's releases.

    v1.13.0

    This release updates the following dependencies:

    github.com/mattn/go-colorable v0.1.9
    github.com/mattn/go-isatty v0.0.14
    

    v1.12.0

    This release adds support for the NO_COLOR. For more information check out: https://no-color.org The pull request adding this change is: fatih/color#137

    v1.11.0

    This release removes the vendor/ folder introduced by the PR: fatih/color#138

    Commits
    • a05da93 Merge pull request #146 from fatih/dependabot/go_modules/github.com/mattn/go-...
    • cef423d Bump github.com/mattn/go-colorable from 0.1.8 to 0.1.9
    • 503f536 Merge pull request #145 from DrKhyz/fix/typo-readme
    • 65d7546 typo/ add 'color' in front FgBlue to be declared
    • 063d636 Merge pull request #144 from fatih/dependabot/go_modules/github.com/mattn/go-...
    • ab503e9 Bump github.com/mattn/go-isatty from 0.0.13 to 0.0.14
    • 30388e0 Merge pull request #140 from fatih/dependabot/go_modules/github.com/mattn/go-...
    • 351c3d7 Bump github.com/mattn/go-isatty from 0.0.12 to 0.0.13
    • cf45235 Merge pull request #137 from fatih/add-no-color-support
    • f4c4316 Merge pull request #139 from fatih/improve-ci
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
  • Bump github.com/gorilla/sessions from 1.2.0 to 1.2.1

    Bump github.com/gorilla/sessions from 1.2.0 to 1.2.1

    Bumps github.com/gorilla/sessions from 1.2.0 to 1.2.1.

    Release notes

    Sourced from github.com/gorilla/sessions's releases.

    v1.2.1 ✏️

    A minor maintenance release that improves documentation and two new third-party store implementations.

    CHANGELOG

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
Releases(v0.13.1)
  • v0.13.1(Jun 30, 2021)

    User-Facing Changes

    • Fix title rendering as list item (#470)
    • Remove additional slash in /feed/ redirect
    • Don't include image alt text in post description metadata (#306)
    • Fix SQLite-backed instances locking up (#467)
    • Fix backslashes added to list items in Classic editor (#480)

    Admin-Facing Changes

    • Return error when generic OAuth provider doesn't return a user ID, and prompt admin to add map_user_id (#469)
    • Fix "Collection.hostName is empty!" log on Stats page (#468)

    Upgrading from v0.13.0

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    No additional steps are needed to upgrade from v0.13.0. Follow the instructions in each previous release if you're upgrading from an earlier version.

    Developers

    If you are running a custom build: we made changes to UI components that need to be compiled. Run this to compile everything:

    make ui
    

    Contributors

    Thanks to everyone who contributed bug reports, code, and code review to this release!

    @stayinside @bandicootdancing @PeterCxy @DaarkMoon @poVoq @Tealk @thebaer @mkyos

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.13.1_linux_amd64.tar.gz(21.81 MB)
    writefreely_0.13.1_linux_arm6.tar.gz(19.08 MB)
    writefreely_0.13.1_linux_arm64.tar.gz(20.69 MB)
    writefreely_0.13.1_linux_arm7.tar.gz(19.07 MB)
    writefreely_0.13.1_macos_amd64.tar.gz(14.57 MB)
    writefreely_0.13.1_windows_amd64.zip(21.36 MB)
  • v0.13.0(Jun 11, 2021)

    write freely

    v0.13

    Major Features

    Classic editor (T727)

    If plain text and Markdown aren't your thing, now you can get a more "classic" writing experience with the Classic editor! This features more of a What You See Is What You Get interface that doesn't require the learning curve of Markdown. However, behind the scenes, posts are still saved as Markdown, so you can always switch between the Classic and standard editor. Admins can enable this option by setting editor = classic in the [app] config section.

    Gopher Support (T559)

    Give your audience a old-school, lightweight way to read posts on your WriteFreely instance, via the Gopher protocol! Enable it with the new gopher_port config value in the [server] section. When it’s enabled, multi-user instances will show all Public blogs at gopher://[host]:[gopher_port]/.

    Gitea and Generic OAuth Provider Support (#293, #317, #405)

    We’ve added more ways for users to authenticate with your WriteFreely instance, via Gitea or any generic OAuth 2.0 provider! Our generic OAuth provider support in particular gives you the chance to use WriteFreely alongside a range of applications that hold your users, from Mastodon to Nextcloud to Keycloak.

    Web Monetization Support (T773)

    Writers can now accept micropayments for their work via the proposed Web Monetization standard, and even publish exclusive content behind a paywall. Admins can enable this by setting monetization = true in the [app] section of their config, or changing the setting in their admin panel. This is just the start as we look to give readers more ways to financially support writers — read more about this on the Write.as blog.

    ActivityPub Notes (#220)

    Now, WriteFreely is more friendly to microblogs! If a post doesn’t have a double-line-break in it, it’ll be sent to the fediverse as a Note, rather than an Article. If you’d prefer to always send Notes, admins can set notes_only = true in the [app] config section.

    Account deletion (T319)

    It’s now easy for users and admins to quickly delete account data from WriteFreely via the web! Admins can access this option from their Admin Dashboard, and users can access it from their Account Settings page, if admins have configured Open Account Deletions (via the Dashboard or config file: open_deletion = true under the [app] section).

    Post Signatures (T582)

    This enables users to add a signature to all blog posts, and update it from a single location (the blog's Customize page).

    User-Facing Changes / Fixes

    • Optimize Drafts retrieval (#295)
    • Support AP-style mentions of centralized social media accounts (#319)
    • Show warning in editor when local draft is out of date (#41)
    • Allow footer and header elements (#326)
    • Set pad light / dark theme based on system settings (#196)
    • Improved blog management navigation (#371)
    • Fix silenced user post visibility (#374)
    • Automatically resize CSS editor (T708)
    • Stop private and protected blogs from federating (#403)
    • Fix following from Mastodon with Authorized Fetch enabled (T820)
    • Fix language metadata gets reset to English after editing a post (#280)
    • Support logging out of password-protected blogs (T492)
    • Always show post actions on mobile devices (#309)
    • Include images as attachments in ActivityStreams data (#442)
    • Fix .md file import from Safari (#334)
    • Fix Custom CSS editor not working well on touchscreen devices (#452)
    • Support Drafts list paging (T401, T696)
    • Support title-only posts (#464)

    Minor Changes

    • Support number+letter hashtags
    • Use a bigger font size for h2 (#217)
    • Ignore "collation mix" errors in GetCollectionRedirect() (#318)
    • Make dropdown navigation menus more accessible (#355)
    • Fix removal of query parameters on youtube embed links (#328)
    • Truncate lede at question mark (#316)
    • Fix double HTML-encoded meta tags (#340)
    • Fix header spacing on pinned posts (#385)
    • Fix unable to edit posts titled "Tags" (#305)
    • Set SameSite=None on session cookie (#443)
    • Make language highlighting matching case-insensitive (#429)

    Admin-Facing Changes

    • Remove “No to!” log (#311)
    • Support encrypted database connections (#297)
    • Fix docker-compose (#407, #139, #323)
    • Fix Docker repository does not exist (#416)
    • Support user deletion from web interface (T319)
    • Support Unicode domain names (#457)

    Developer-Facing Changes

    • Add CORS header to public APIs (#327)
    • Support slug parameter when publishing a post (T811)
    • Return a url property on Publish a Post endpoint
    • Support setting description at user registration

    Performance / Backend

    • Move WriteFreely repo from writeas org to writefreely (#451)
    • Move MathJax library from submodule to single file (#176)
    • Improve static file serving with Cache-Control header (#322)
    • Use HTMLContent field in RSS feed (#418)
    • Remove writeas/nerds/store pkg dependency (#445)
    • Bump github.com/gorilla/feeds from 1.1.0 to 1.1.1
    • Bump github.com/hashicorp/go-multierror from 1.0.0 to 1.1.1
    • Bump github.com/microcosm-cc/bluemonday from 1.0.2 to 1.0.5
    • Bump github.com/stretchr/testify from 1.6.0 to 1.7.0
    • Bump gopkg.in/ini.v1 from 1.55.0 to 1.62.0
    • Bump github.com/guregu/null from v3.4 to v3.5
    • Bump github.com/go-sql-driver/mysql from 1.4.1 to 1.6.0
    • Bump github.com/writeas/import from 0.2.0 to 0.2.1
    • Bump github.com/mattn/go-sqlite3 from 1.10.0 to 1.14.6
    • Bump github.com/gorilla/schema from 1.0.2 to 1.2.0
    • Bump github.com/manifoldco/promptui from 0.3.2 to 0.8.0
    • Bump github.com/urfave/cli/v2 from 2.1.1 to 2.3.0
    • Bump github.com/fatih/color from 1.7.0 to 1.10.0

    Upgrading from v0.12.0

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    Now make sure your database is backed up, and update it with:

    writefreely db migrate
    

    Finally, generate a new encryption key needed for this release (you can ignore messages about removing existing keys):

    writefreely keys generate
    

    No additional steps are needed to upgrade from v0.12.0. Follow the instructions in each previous release if you're upgrading from an earlier version.

    Developers

    If you are running a custom build: we made changes to site styles and added a Javascript dependency that needs to be compiled (prose.js). Run this to compile everything:

    make ui
    

    Contributors

    Thanks to everyone who contributed to this release!

    Development

    @gytisrepecka @thebaer @RJ722 @ketudb @pascoual @Dar13 @shleeable @joicemjoseph @dariusk @Obayanju @qwazix @Antolius @colin-axner @conor-f @VV-EE @mostfunkyduck @Dak425 @cjeller1592 @x4e @robjloranger

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.13.0_linux_amd64.tar.gz(21.81 MB)
    writefreely_0.13.0_linux_arm6.tar.gz(19.08 MB)
    writefreely_0.13.0_linux_arm64.tar.gz(20.68 MB)
    writefreely_0.13.0_linux_arm7.tar.gz(19.06 MB)
    writefreely_0.13.0_macos_amd64.tar.gz(14.57 MB)
    writefreely_0.13.0_windows_amd64.zip(21.35 MB)
  • v0.13.0rc1(May 10, 2021)

    write freely

    v0.13 Release Candidate 1

    This is a WriteFreely v0.13.0 release candidate. It is intended to be stable, but may not be. Please open bug reports for any issues you find, and otherwise contact us via IRC (#writefreely on freenode) if you have any questions.

    Major Features

    Classic editor (T727)

    If plain text and Markdown aren't your thing, now you can get a more "classic" writing experience with the Classic editor! This features more of a What You See Is What You Get interface that doesn't require the learning curve of Markdown. However, behind the scenes, posts are still saved as Markdown, so you can always switch between the Classic and standard editor. Admins can enable this option by setting editor = classic in the [app] config section.

    Gopher Support (T559)

    Give your audience a old-school, lightweight way to read posts on your WriteFreely instance, via the Gopher protocol! Enable it with the new gopher_port config value in the [server] section. When it’s enabled, multi-user instances will show all Public blogs at gopher://[host]:[gopher_port]/.

    Gitea and Generic OAuth Provider Support (#293, #317, #405)

    We’ve added more ways for users to authenticate with your WriteFreely instance, via Gitea or any generic OAuth 2.0 provider! Our generic OAuth provider support in particular gives you the chance to use WriteFreely alongside a range of applications that hold your users, from Mastodon to Nextcloud to Keycloak.

    Web Monetization Support (T773)

    Writers can now accept micropayments for their work via the proposed Web Monetization standard. Admins can enable this by setting monetization = true in the [app] section of their config, or changing the setting in their admin panel. This is just the start as we look to give readers more ways to financially support writers — read more about this on the Write.as blog.

    ActivityPub Notes (#220)

    Now, WriteFreely is more friendly to microblogs! If a post doesn’t have a double-line-break in it, it’ll be sent to the fediverse as a Note, rather than an Article. If you’d prefer to always send Notes, admins can set notes_only = true in the [app] config section.

    Account deletion (T319)

    It’s now easy for users and admins to quickly delete account data from WriteFreely via the web! Admins can access this option from their Admin Dashboard, and users can access it from their Account Settings page, if admins have configured Open Account Deletions (via the Dashboard or config file: open_deletion = true under the [app] section).

    Post Signatures (T582)

    This enables users to add a signature to all blog posts, and update it from a single location (the blog's Customize page).

    User-Facing Changes / Fixes

    • Optimize Drafts retrieval (#295)
    • Support AP-style mentions of centralized social media accounts (#319)
    • Show warning in editor when local draft is out of date (#41)
    • Allow footer and header elements (#326)
    • Set pad light / dark theme based on system settings (#196)
    • Improved blog management navigation (#371)
    • Fix silenced user post visibility (#374)
    • Automatically resize CSS editor (T708)
    • Stop private and protected blogs from federating (#403)
    • Fix following from Mastodon with Authorized Fetch enabled (T820)
    • Fix language metadata gets reset to English after editing a post (#280)
    • Support logging out of password-protected blogs (T492)
    • Always show post actions on mobile devices (#309)
    • Include images as attachments in ActivityStreams data (#442)
    • Fix .md file import from Safari (#334)
    • Fix Custom CSS editor not working well on touchscreen devices (#452)
    • Support Drafts list paging (T401, T696)

    Minor Changes

    • Support number+letter hashtags
    • Use a bigger font size for h2 (#217)
    • Ignore "collation mix" errors in GetCollectionRedirect() (#318)
    • Make dropdown navigation menus more accessible (#355)
    • Fix removal of query parameters on youtube embed links (#328)
    • Truncate lede at question mark (#316)
    • Fix double HTML-encoded meta tags (#340)
    • Fix header spacing on pinned posts (#385)
    • Fix unable to edit posts titled "Tags" (#305)
    • Set SameSite=None on session cookie (#443)
    • Make language highlighting matching case-insensitive (#429)

    Admin-Facing Changes

    • Remove “No to!” log (#311)
    • Support encrypted database connections (#297)
    • Fix docker-compose (#407, #139, #323)
    • Fix Docker repository does not exist (#416)
    • Support user deletion from web interface (T319)
    • Support Unicode domain names (#457)

    Developer-Facing Changes

    • Add CORS header to public APIs (#327)
    • Support slug parameter when publishing a post (T811)

    Performance / Backend

    • Move WriteFreely repo from writeas org to writefreely (#451)
    • Move MathJax library from submodule to single file (#176)
    • Improve static file serving with Cache-Control header (#322)
    • Use HTMLContent field in RSS feed (#418)
    • Remove writeas/nerds/store pkg dependency (#445)
    • Bump github.com/gorilla/feeds from 1.1.0 to 1.1.1
    • Bump github.com/hashicorp/go-multierror from 1.0.0 to 1.1.1
    • Bump github.com/microcosm-cc/bluemonday from 1.0.2 to 1.0.5
    • Bump github.com/stretchr/testify from 1.6.0 to 1.7.0
    • Bump gopkg.in/ini.v1 from 1.55.0 to 1.62.0
    • Bump github.com/guregu/null from v3.4 to v3.5
    • Bump github.com/go-sql-driver/mysql from 1.4.1 to 1.6.0
    • Bump github.com/writeas/import from 0.2.0 to 0.2.1
    • Bump github.com/mattn/go-sqlite3 from 1.10.0 to 1.14.6
    • Bump github.com/gorilla/schema from 1.0.2 to 1.2.0
    • Bump github.com/manifoldco/promptui from 0.3.2 to 0.8.0
    • Bump github.com/urfave/cli/v2 from 2.1.1 to 2.3.0
    • Bump github.com/fatih/color from 1.7.0 to 1.10.0

    Upgrading from v0.12.0

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    Now make sure your database is backed up, and update it with:

    writefreely db migrate
    

    Finally, generate a new encryption key needed for this release (you can ignore messages about removing existing keys):

    writefreely keys generate
    

    No additional steps are needed to upgrade from v0.12.0. Follow the instructions in each previous release if you're upgrading from an earlier version.

    Developers

    If you are running a custom build: we made changes to site styles and added a Javascript dependency that needs to be compiled (prose.js). Run this to compile everything:

    make ui
    

    Contributors

    Thanks to everyone who contributed to this release!

    Development

    @gytisrepecka @thebaer @RJ722 @ketudb @pascoual @Dar13 @shleeable @joicemjoseph @dariusk @Obayanju @qwazix @Antolius @colin-axner @conor-f @VV-EE @mostfunkyduck @Dak425 @cjeller1592 @x4e @robjloranger

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.13.0rc1_linux_amd64.tar.gz(21.79 MB)
    writefreely_0.13.0rc1_linux_arm6.tar.gz(19.06 MB)
    writefreely_0.13.0rc1_linux_arm64.tar.gz(20.67 MB)
    writefreely_0.13.0rc1_linux_arm7.tar.gz(19.05 MB)
    writefreely_0.13.0rc1_macos_amd64.tar.gz(14.56 MB)
    writefreely_0.13.0rc1_windows_amd64.zip(21.34 MB)
  • v0.12.0(Apr 22, 2020)

    write freely

    v0.12

    Major Features

    ActivityPub Mentions (T627)

    Enable more interaction with your posts by mentioning users on Mastodon, Pleroma, and other ActivityPub platforms! Users on instances with federation enabled can now insert @[email protected] to mention someone. You might use this to write a long response to someone in the fediverse, or even mention your own microblogging account, so that replies to your blog post also notify you there, where you can continue the conversation.

    New Admin Dashboard (T694)

    We've redesigned the admin dashboard to be a little easier to navigate, and generally more user friendly. It now includes an overview of stats for your instance, dedicated pages for app settings and monitoring, and more details on what each configuration option does. We've also made it easier for admins to get to the "Invite people" page.

    OAuth 2.0 Support (#225)

    Now you can authenticate with your WriteFreely instance via OAuth! This is perfect for WriteFreely communities that are set up to accompany other platforms. We support three providers so far: GitLab, Slack, and Write.as.

    Reader Filter Updates (#269)

    Now the Reader will show the most recent 250 public posts, instead of only the last three months of public posts. This should be much more fitting for most WriteFreely instances.

    Plain Text Import

    Now you can import plain text files to publish them as posts on WriteFreely.

    User-Facing Changes / Fixes

    • Show dates on blog posts (T669, #276)
    • Show post publish dates in local time (T670)
    • Fix HTML entities in Draft descriptions (#248)
    • Add Drafts explanation (#248)
    • Fix post deletion on Pleroma (#233)
    • Make user management + Reader pages consistent in their design (#262)
    • Fix image metadata extraction (#266)
    • Add syntax highlighting aliases: js, jsx, html (#270)
    • Lightly style tables in posts (#194)
    • Send users to Login page by default on private instances (#274)
    • Fix pagination on last page of blogs using "Novel" display format (#272)
    • Show 503 Service Unavailable page when server under high load (#284)
    • Remove extraneous @context fields to fix Friendica federation (#299)

    Minor Changes

    • Require authentication for accessing editor (#245, #255)
    • Fix 500 on invite links with invalid characters (#250)
    • Tell search engines not to index invite URLs (#268)
    • Hide Reader footer link when unauthenticated on private instances (#274)

    Admin-Facing Changes

    • Support Varnish use on ActivityPub endpoints (#180)
    • Fix automatic certificates (#228)
    • Automatically check for WriteFreely updates (T572) -- enable with update_checks = true in config
    • Support account deletion via command-line for non-federated instances (T319 / #202)
    • Support sign in via Write.as
    • Support sign in via Slack (T710)
    • Support sign in via GitLab (#277)
    • Refactor command-line commands (#261)

    Developer-Facing Changes

    • Add /api/markdown endpoint for generating HTML from Markdown
    • Add ARM64 build (#213)
    • Support OAuth 2.0 as client application (#225)
    • Add stylesheet cache busting script and use it on official WF release (#288)

    Performance / Backend

    • Improve resource use for federation (#249)
    • Fix memory leak from gorilla/session library (#133)

    Upgrading from v0.3.0 or later

    Download the latest release for your operating system, from the files below. Then follow these steps:

    1. Stop running your writefreely service
    2. Replace all files in your installation except the keys directory with the files from the archive
    3. Start your writefreely service again.

    Now make sure your database is backed up, and migrate it with the steps below.

    1. If you're running MariaDB, run this query on your WriteFreely database (fixes #302):
    ALTER DATABASE writefreely CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    
    1. Finally, run this command to update your database schema:
    writefreely db migrate
    

    No additional steps are needed to upgrade from v0.3.0 or later. Follow the instructions in each previous release if you're upgrading from an earlier version.

    Developers

    If you are running a custom build, note that there were style changes in this release. Run the following command to generate the latest stylesheets:

    make ui
    

    Contributors

    Thanks to everyone who contributed to this release!

    Development

    @thebaer @robjloranger @qwazix @yalh76 @ngerakines @techknowlogick @shleeable @nkoehring @paddatrapper @cjeller1592

    Documentation

    @cjeller1592

    Bug reports

    @barbrastreisand @wakest @judges119 @laBecasse @misaka00251 @OliverViking @mrvdb @darddan @wiwie @annando

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.12.0_linux_amd64.tar.gz(45.17 MB)
    writefreely_0.12.0_linux_arm6.tar.gz(42.52 MB)
    writefreely_0.12.0_linux_arm64.tar.gz(44.02 MB)
    writefreely_0.12.0_linux_arm7.tar.gz(42.51 MB)
    writefreely_0.12.0_macos_amd64.tar.gz(38.47 MB)
    writefreely_0.12.0_windows_amd64.zip(57.24 MB)
  • v0.12.0rc1(Mar 27, 2020)

    write freely

    v0.12 Release Candidate 1

    This is a WriteFreely v0.12.0 release candidate. It is intended to be stable, but may not be. Please open bug reports for any issues you find, and otherwise contact us via IRC (#writefreely on freenode) if you have any questions.

    Major Features

    ActivityPub Mentions (T627)

    Enable more interaction with your posts by mentioning users on Mastodon, Pleroma, and other ActivityPub platforms! Users on instances with federation enabled can now insert @[email protected] to mention someone. You might use this to write a long response to someone in the fediverse, or even mention your own microblogging account, so that replies to your blog post also notify you there, where you can continue the conversation.

    New Admin Dashboard (T694)

    We've redesigned the admin dashboard to be a little easier to navigate, and generally more user friendly. It now includes an overview of stats for your instance, dedicated pages for app settings and monitoring, and more details on what each configuration option does. We've also made it easier for admins to get to the "Invite people" page.

    OAuth 2.0 Support (#225)

    Now you can authenticate with your WriteFreely instance via OAuth! This is perfect for WriteFreely communities that are set up to accompany other platforms. We support three providers so far: GitLab, Slack, and Write.as.

    Reader Filter Updates (#269)

    Now the Reader will show the most recent 250 public posts, instead of only the last three months of public posts. This should be much more fitting for most WriteFreely instances.

    Plain Text Import

    Now you can import plain text files to publish them as posts on WriteFreely.

    User-Facing Changes / Fixes

    • Show dates on blog posts (T669, #276)
    • Show post publish dates in local time (T670)
    • Fix HTML entities in Draft descriptions (#248)
    • Add Drafts explanation (#248)
    • Fix post deletion on Pleroma (#233)
    • Make user management + Reader pages consistent in their design (#262)
    • Fix image metadata extraction (#266)
    • Add syntax highlighting aliases: js, jsx, html (#270)
    • Lightly style tables in posts (#194)
    • Send users to Login page by default on private instances (#274)
    • Fix pagination on last page of blogs using "Novel" display format (#272)
    • Show 503 Service Unavailable page when server under high load (#284)

    Minor Changes

    • Require authentication for accessing editor (#245, #255)
    • Fix 500 on invite links with invalid characters (#250)
    • Tell search engines not to index invite URLs (#268)
    • Hide Reader footer link when unauthenticated on private instances (#274)

    Admin-Facing Changes

    • Support Varnish use on ActivityPub endpoints (#180)
    • Fix automatic certificates (#228)
    • Automatically check for WriteFreely updates (T572) -- enable with update_checks = true in config
    • Support account deletion via command-line for non-federated instances (T319 / #202)
    • Support sign in via Write.as
    • Support sign in via Slack (T710)
    • Support sign in via GitLab (#277)
    • Refactor command-line commands (#261)

    Developer-Facing Changes

    • Add /api/markdown endpoint for generating HTML from Markdown
    • Add ARM64 build (#213)
    • Support OAuth 2.0 as client application (#225)
    • Add stylesheet cache busting script and use it on official WF release (#288)

    Performance / Backend

    • Improve resource use for federation (#249)
    • Fix memory leak from gorilla/session library (#133)

    Upgrading from v0.11.x

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    Now make sure your database is backed up, and update it with:

    writefreely db migrate
    

    No additional steps are needed to upgrade from v0.11.x. Follow the instructions in each previous release if you're upgrading from an earlier version.

    Developers

    If you are running a custom build, note that there were style changes in this release. Run make ui to generate the latest stylesheets.

    Contributors

    Thanks to everyone who contributed to this release!

    Development

    @thebaer @robjloranger @qwazix @yalh76 @ngerakines @techknowlogick @shleeable @nkoehring @paddatrapper @cjeller1592

    Documentation

    @cjeller1592

    Bug reports

    @barbrastreisand @wakest @judges119 @laBecasse @misaka00251 @OliverViking @mrvdb @darddan

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.12.0rc1_linux_amd64.tar.gz(45.14 MB)
    writefreely_0.12.0rc1_linux_arm6.tar.gz(42.51 MB)
    writefreely_0.12.0rc1_linux_arm64.tar.gz(44.00 MB)
    writefreely_0.12.0rc1_linux_arm7.tar.gz(42.49 MB)
    writefreely_0.12.0rc1_macos_amd64.tar.gz(38.46 MB)
    writefreely_0.12.0rc1_windows_amd64.zip(57.21 MB)
  • v0.11.2(Dec 18, 2019)

    write freely

    User-Facing Changes / Fixes

    • Fix Announceing posts via ActivityPub (#212)
    • Fix id property in collection posts ActivityStreams data (#214)
    • Remove false "programmer error" log (#216)
    • Fix password-protected blog rendering (#221)
    • Fix silenced password-protected blog quirks
    • Fix wrong errors returned when looking up non-existent paths (#215)

    Upgrading from v0.11.x

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    No additional steps are needed to upgrade from v0.11.x. Follow the instructions in each previous release if you're upgrading from v0.10.0 or earlier.

    Contributors

    Thanks for contributing to this release!

    @robjloranger @cjeller1592

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.11.2_linux_amd64.tar.gz(44.02 MB)
    writefreely_0.11.2_linux_arm64.tar.gz(42.95 MB)
    writefreely_0.11.2_linux_arm7.tar.gz(41.62 MB)
    writefreely_0.11.2_macos_amd64.tar.gz(38.65 MB)
    writefreely_0.11.2_windows_amd64.zip(56.03 MB)
  • v0.11.1(Nov 12, 2019)

    write freely

    Major Features

    Automatic SSL certificates from Let's Encrypt (T542)

    It's now even easier to start up a WriteFreely instance with free, automatic certificates from Let's Encrypt. With the application facing the public internet (i.e. not behind a reverse proxy), you can set a few configuration values to have WriteFreely generate the certificate for you.

    For new instances, choose Production, standalone > Secure (port 443), auto certificate during the interactive setup process.

    For existing instances, set autocert = true and tls_cert_path = certs (see config documentation for more information).

    WriteFreely Command-Line Interface

    We've released our first official WriteFreely client along with this version: wf-cli! This is a simple command-line-based tool for publishing to one or many WriteFreely instances. It's perfect for tech-savvy users who don't want to leave their terminal window or anyone looking to build WriteFreely publishing into their desktop writing workflow -- and it's available for Windows, Mac, and Linux.

    User-Facing Changes / Fixes

    • Prevent transliterated slugs from exceeding character limit (#137)
    • Don't consider posts unpublished when they have a title (#138)
    • Blog 404 pages are now styled like the rest of the blog (T493)
    • Fix missing hostname when publishing via API and support WriteFreely CLI (#144)
    • Fix various minor issues with single-user instances (#145)
    • Support <audio> HTML element (#147)
    • Fix future pinned posts showing in navigation (#158)
    • Fix false logged-in state on failed login
    • Fix title attribute getting stripped on <abbr> elements (#184)
    • Add helpful instructions on invite links when logged in (T690)
    • Publish to user's blog by default, instead of Drafts (T697)
    • Fix blog URLs in CSV export (#205)
    • Include Reader link in site-wide navigation while logged in
    • Make header navigation on user and non-authenticated pages consistent

    Minor Changes

    • Fix go-sitemap-generator overriding GOMAXPROCs (#86)
    • Log server software and version on startup (#168)
    • Fix crash on some duplicate ActivityPub follows (#159)

    Admin-Facing Changes

    • Support setting a default visibility for all blogs (T675, #148)
    • Support toning down WriteFreely promotion (T676, #149)
    • Support using an alternative editor template (T677)
    • Support customizing Reader page (T684)
    • Support resetting user password from web-based UI (T695)
    • Fix tar bomb on install (#160)

    Developer-Facing Changes

    • Add make build-arm7
    • Remove dependency on github.com/gogs/gogs/pkg/tool (#182)
    • API endpoints will now honor Accept: application/json headers (not only Content-Type) (#178)

    Experimental / In-Progress Work

    User Silencing (T661)

    Now instance admins can silence problematic users to make their writing inaccessible to the world and prevent further publishing. This strikes a balance between preventing further abuse and making reversible moderation decisions, as users will still be able to log in to their account and access their data.

    This is still experimental, as it needs more extensive testing. Please report any bugs you find and give us any feedback you have on this feature!

    Reader-centric instances (T681, #157)

    As part of our new Write.as for Teams service, we're experimenting with an alternative configuration for admins that want their site to be more focused on the collective work of its writers, rather than on individuals. It's meant for businesses, organizations, and institutions that want to create more of a shared blog than provide individual blog hosting. It sets the Reader view as the home page, uses blog templates with global navigation, and has hashtags search across all public blogs.

    This functionality is not at all finalized, and subject to change drastically without notice. We don't recommend enabling this in your configuration unless you're merely curious or want to provide feedback (which we highly encourage!).

    Upgrading from v0.10.0

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    Now make sure your database is backed up, and update it with writefreely --migrate.

    No additional steps are needed to upgrade from v0.10.0. Follow the instructions in each previous #release if you're upgrading from an earlier version.

    Developers

    If you are running a custom build, note that there were style changes in this release. Run make ui to generate the latest stylesheets.

    About v0.11.0...

    Our v0.11.0 release featured a new regression that broke single-user instances, and taught us about the value release candidates -- something we'll start doing, going forward. There's no extra work needed to upgrade from v0.11.0 if you've already upgraded from v0.10 -- only your enduring support as we learn how to build good software goodly.

    Contributors

    Thanks for contributing to this release!

    @robjloranger @OddBloke

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.11.1_linux_amd64.tar.gz(44.02 MB)
    writefreely_0.11.1_linux_arm7.tar.gz(41.62 MB)
    writefreely_0.11.1_macos_amd64.tar.gz(38.65 MB)
    writefreely_0.11.1_windows_amd64.zip(56.03 MB)
  • v0.11.0(Nov 11, 2019)

    write freely

    Major Features

    Automatic SSL certificates from Let's Encrypt (T542)

    It's now even easier to start up a WriteFreely instance with free, automatic certificates from Let's Encrypt. With the application facing the public internet (i.e. not behind a reverse proxy), you can set a few configuration values to have WriteFreely generate the certificate for you.

    For new instances, choose Production, standalone > Secure (port 443), auto certificate during the interactive setup process.

    For existing instances, set autocert = true and tls_cert_path = certs (see config documentation for more information).

    WriteFreely Command-Line Interface

    We've released our first official WriteFreely client along with this version: wf-cli! This is a simple command-line-based tool for publishing to one or many WriteFreely instances. It's perfect for tech-savvy users who don't want to leave their terminal window or anyone looking to build WriteFreely publishing into their desktop writing workflow -- and it's available for Windows, Mac, and Linux.

    User-Facing Changes / Fixes

    • Prevent transliterated slugs from exceeding character limit (#137)
    • Don't consider posts unpublished when they have a title (#138)
    • Blog 404 pages are now styled like the rest of the blog (T493)
    • Fix missing hostname when publishing via API and support WriteFreely CLI (#144)
    • Fix various minor issues with single-user instances (#145)
    • Support <audio> HTML element (#147)
    • Fix future pinned posts showing in navigation (#158)
    • Fix false logged-in state on failed login
    • Fix title attribute getting stripped on <abbr> elements (#184)
    • Add helpful instructions on invite links when logged in (T690)
    • Publish to user's blog by default, instead of Drafts (T697)
    • Fix blog URLs in CSV export (#205)

    Minor Changes

    • Fix go-sitemap-generator overriding GOMAXPROCs (#86)
    • Log server software and version on startup (#168)
    • Fix crash on some duplicate ActivityPub follows (#159)

    Admin-Facing Changes

    • Support setting a default visibility for all blogs (T675, #148)
    • Support toning down WriteFreely promotion (T676, #149)
    • Support using an alternative editor template (T677)
    • Support customizing Reader page (T684)
    • Support resetting user password from web-based UI (T695)
    • Fix tar bomb on install (#160)

    Developer-Facing Changes

    • Add make build-arm7
    • Remove dependency on github.com/gogs/gogs/pkg/tool (#182)
    • API endpoints will now honor Accept: application/json headers (not only Content-Type) (#178)

    Experimental / In-Progress Work

    User Silencing (T661)

    Now instance admins can silence problematic users to make their writing inaccessible to the world and prevent further publishing. This strikes a balance between preventing further abuse and making reversible moderation decisions, as users will still be able to log in to their account and access their data.

    This is still experimental, as it needs more extensive testing. Please report any bugs you find and give us any feedback you have on this feature!

    Reader-centric instances (T681, #157)

    As part of our new Write.as for Teams service, we're experimenting with an alternative configuration for admins that want their site to be more focused on the collective work of its writers, rather than on individuals. It's meant for businesses, organizations, and institutions that want to create more of a shared blog than provide individual blog hosting. It sets the Reader view as the home page, uses blog templates with global navigation, and has hashtags search across all public blogs.

    This functionality is not at all finalized, and subject to change drastically without notice. We don't recommend enabling this in your configuration unless you're merely curious or want to provide feedback (which we highly encourage!).

    Upgrading from v0.10.0

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    Now make sure your database is backed up, and update it with writefreely --migrate.

    No additional steps are needed to upgrade from v0.10.0. Follow the instructions in each previous #release if you're upgrading from an earlier version.

    Developers

    If you are running a custom build, note that there were style changes in this release. Run make ui to generate the latest stylesheets.

    Contributors

    Thanks for contributing to this release!

    @robjloranger @OddBloke

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.11.0_linux_amd64.tar.gz(44.03 MB)
    writefreely_0.11.0_linux_arm7.tar.gz(41.61 MB)
    writefreely_0.11.0_macos_amd64.tar.gz(38.65 MB)
    writefreely_0.11.0_windows_amd64.zip(56.04 MB)
  • v0.10.0(Jul 2, 2019)

    write freely

    Major Features

    Fully Private Instances (T576)

    Communities looking for more privacy can now start up WriteFreely instances meant only for internal use. Just enable the private config value to make all blogs and content accessible only to authenticated users in your instance.

    NOTE: this is a breaking change! This changes behavior for existing instances with the private config value already set to true. If you have it set, you should verify that the new behavior is what you want.

    Landing Page Customization (T565, T574)

    Now admins have two new ways to customize their multi-user instance:

    Editing your landing page. Now you can change the content of your landing page from the Admin dashboard, including the banner text to the left of the signup form and the optional text below.

    Changing the landing URL. For anyone who doesn't want to use their normal landing page -- such as with closed or invite-only instances -- this lets you set the URL that unauthenticated users go to when they first come to your site. For example, you might send them to your About page (/about) or your public Reader (/read).

    User-Facing Changes / Fixes

    • Add Lithuanian translation (writeas/web-core#3)
    • Fix changing RTL setting back to LTR from web UI (#103, #110)
    • Fix federation with pubgate (#100, #111, #116)
    • Include pinned posts in JSON export (#112)
    • Include post title in exported txt files (#114)
    • Fix same-size 1st- and 2nd-level headings on blog index (#82)
    • Fix post deletion logic needed for WriteFreely CLI (#117)
    • Fix C syntax highlighting (#124)
    • Fix default background-color not set (#132)
    • Fix inconsistent naming / icons on post metadata page

    Admin-Facing Changes

    • Landing URL is now editable (T574)
    • The private config option now makes an instance readable only by registered, authenticated users (T576)
    • New upgrade script
    • The --config command now automatically initializes the database, removing the need for --init-db during setup
    • Specify which part of the app configuration you want to edit with the new --sections flag, e.g. writefreely --config --section="app db server"
    • Landing page is now customizable (T565)

    Developer-Facing Changes

    • Fix lessc installation on macOS and CentOS (#97, #99)
    • MathJax library is now a git submodule instead of directly included
    • The writefreely.Serve() func has been split out into multiple functions
    • Flag handling has moved out of the writefreely pkg to cmd/writefreely/main.go

    Upgrading from v0.9.x

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    No additional steps are needed to upgrade from v0.9.x. Follow the instructions in each previous #release if you're upgrading from an earlier version.

    Developers

    If you are running a custom build, note that there were style changes in this release. Run make ui to generate the latest stylesheets.

    Contributors

    Thanks to everyone who contributed to this release!

    @dariusk @gytisrepecka @robjloranger @joyeusenoelle @sandrockcstm @qwazix @mrvdb

    #WriteFreely

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.10.0_linux_amd64.tar.gz(47.91 MB)
    writefreely_0.10.0_linux_arm7.tar.gz(45.50 MB)
    writefreely_0.10.0_macos_amd64.tar.gz(42.43 MB)
    writefreely_0.10.0_windows_amd64.zip(56.37 MB)
  • v0.9.1(Apr 20, 2019)

    write freely

    This isn't a required upgrade; it's only needed to fix new installations.

    Admin-Facing Changes

    • Fix V2 migrations not run on a new instance (#92)
    • Fix Docker build with Go Modules enabled (#95)

    Upgrading from v0.9.0

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    No additional steps are needed to upgrade from v0.9.0. Follow the instructions in each previous #release if you're upgrading from an earlier version.

    Contributors

    Thanks for contributing to this release!

    @kaiyou

    #WriteFreely

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.9.1_linux_amd64.tar.gz(26.93 MB)
    writefreely_0.9.1_macos_amd64.tar.gz(21.46 MB)
    writefreely_0.9.1_windows_amd64.zip(27.29 MB)
  • v0.9.0(Apr 13, 2019)

    write freely

    User-Facing Changes / Fixes

    • Fix hash symbols (#) wrongly recognized as hashtags inside code blocks (#6)
    • Hashtags without spaces between them are now properly parsed
    • Fix IsValidUsername check when PagesParentDir isn't current dir
    • Fix code blocks not highlighting when an invalid language is given (#81)
    • Strip HTML from meta descriptions (#83)
    • Add missing Apple touch icons (#77, #78)
    • Fix future-dated posts being immediately federated when moving from Draft to blog (#76)
    • Fix draft post metadata (#91)
    • Fix excessive space between paragraphs inside blockquotes

    Minor Changes

    • Navigating to a non-existent invite ID now shows "Page not found" instead of "Server error"
    • On Export page: "zip" option now shows "txt" instead
    • Remove unused references to files.writeas.org resources

    Admin-Facing Changes

    • Improve admin navigation
    • Move "About" and "Privacy" page editing off the dashboard to a new dedicated section
    • Add the ability to change "About" and "Privacy" page titles
    • Add Admin Dashboard link in backend navigation

    Upgrading from v0.8.x

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    Now make sure your database is backed up, and update it with writefreely --migrate.

    No additional steps are needed to upgrade from v0.8.x. Follow the instructions in each previous #release if you're upgrading from an earlier version.

    Developers

    If you are running a custom build, note that there were style changes in this release. Run make ui to generate the latest stylesheets.

    Contributors

    Thanks for contributing to this release!

    @mrvdb

    #WriteFreely

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.9.0_linux_amd64.tar.gz(26.93 MB)
    writefreely_0.9.0_macos_amd64.tar.gz(21.45 MB)
    writefreely_0.9.0_windows_amd64.zip(27.30 MB)
  • v0.8.1(Feb 1, 2019)

    write freely

    User-facing Fixes

    • Fix same-page anchor links (#43, #42, #33)

    Install Fixes

    • Admin account isn't created correctly with --config (#71)
    • Use correct go get command in documentation

    Admin-Facing Changes

    • Fix --create-user usage error message

    Trivial Changes

    • Fix Write.as link in README

    Upgrading from v0.8.0

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    No additional steps are needed to upgrade from v0.8.0. Follow the instructions in each previous #release if you're upgrading from an earlier version.

    Contributors

    Thanks for contributing to this release!

    @mrvdb @SamWhited

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.8.1_linux_amd64.tar.gz(26.89 MB)
    writefreely_0.8.1_macos_amd64.tar.gz(21.43 MB)
    writefreely_0.8.1_windows_amd64.zip(27.25 MB)
  • v0.8.0(Jan 24, 2019)

    write freely

    Features

    User Invites (T556)

    Now it's even easier to run a private / invite-only community, with user invites. Admins have a new user_invites setting that can enable invite link generation for all users, admins only, or no users at all (the default). If enabled, users can create invite links to let others sign up for your WriteFreely instance, even if public registration is closed. Invite links can each be set to expire, or optionally have a maximum number of uses.

    User-Facing Changes / Fixes

    • Fix spacing in sublists (#27)
    • Optimize web font loading (#65)

    Admin-Facing Changes

    • Fixed Docker build (#57)
    • Support automated database migration with writefreely --migrate (T509)
    • Support configuring resource directories (T560 / #63)

    Upgrading from v0.7.x

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    Now make sure your database is backed up, and update it with writefreely --migrate.

    No additional steps are needed to upgrade from v0.7.x. Follow the instructions in each previous #release if you're upgrading from an earlier version.

    Developers

    If you are running a custom build, note that there were style changes in this release. Run make ui to generate the latest stylesheets.

    Contributors

    Thanks to everyone who contributed to this release!

    @kaiyou @nkoehring

    #WriteFreely

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.8.0_linux_amd64.tar.gz(26.89 MB)
    writefreely_0.8.0_macos_amd64.tar.gz(21.42 MB)
    writefreely_0.8.0_windows_amd64.zip(27.25 MB)
  • v0.7.1(Jan 13, 2019)

    write freely

    Fixes

    • Fix blog customize page not rendering on Windows (#61)
    • Initialize database during config step for single-user instance (#59)

    Upgrading from v0.7.0

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    No additional steps are needed to upgrade from v0.7.0. Follow the instructions in each previous #release if you're upgrading from an earlier version.

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.7.1_linux_amd64.tar.gz(26.87 MB)
    writefreely_0.7.1_macos_amd64.tar.gz(21.40 MB)
    writefreely_0.7.1_windows_amd64.zip(27.22 MB)
  • v0.7.0(Jan 8, 2019)

    write freely

    Features

    User Management

    • Admin user creation. Admins can now create a normal user from the command-line with: writefreely --create-user username:password
    • Users List (T553). Get an overview of all the users in your community with the new user list for admins. This is the foundation for future moderation features.

    Changes

    • Use an en dash in the title of posts that are written in German, instead of em dash (#1)
    • Now you can build writefreely without SQLite support. To include support, compile with the sqlite build tag (this is the default with all make commands)
    • Blog names starting with a number now have an ActivityPub avatar

    Fixes

    • Prevent creating users with invalid usernames via command-line (#49)
    • Fix metadata update for draft posts on single-user instances (#50)
    • Fix "Database user or password not set." error when starting SQLite-backed instances (#54)
    • Fix user creation process hanging on SQLite-backed instances (#53)
    • Fix tagged post query on SQLite-backed instances (#55)
    • Fix ActivityPub follows on SQLite-backed instances (#56)

    Upgrading from v0.6.0

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    No additional steps are needed to upgrade from v0.6.0. Follow the instructions in each previous #release if you're upgrading from an earlier version.

    Developers

    Some style changes were made in this version. If you are running a custom build / fork, run make ui to generate the latest stylesheets.

    Contributors

    Thanks for contributing to this release!

    @geekgonecrazy

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.7.0_linux_amd64.tar.gz(26.86 MB)
    writefreely_0.7.0_macos_amd64.tar.gz(21.40 MB)
    writefreely_0.7.0_windows_amd64.zip(27.22 MB)
  • v0.6.0(Dec 10, 2018)

    write freely

    Features

    SQLite support (T529)

    You no longer need MySQL / MariaDB to store data for your instance! Just select SQLite during the configuration process to use it instead of the MySQL driver.

    Reader / local timeline (T554)

    Take a break from writing to see what others on your instance have written! Admins can now turn on the Local timeline option in the Admin panel ([app] local_timeline in config.ini) to enable this for both writers on your instance and the wider public. The local timeline functions just like Read Write.as -- it includes an RSS feed, and is opt-in. Writers can start publishing their work on the feed by going into their blog settings and choosing the Public visibility option.

    More changes

    • Ability to create admin user from the command-line with: --create-admin username:password (T544)
    • Specify non-default configuration file to use with various commands via new -c [filename] flag
    • Host highlight.js and MathJax locally, instead of on CloudFlare (T551)

    Upgrading from v0.5.x

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    No additional steps are needed to upgrade from v0.5.x. Follow the instructions in each previous #release if you're upgrading from an earlier version.

    Contributors

    Thanks to everyone who contributed to this release!

    @BenOvermyer @kaiyou

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.6.0_darwin_amd64.tar.gz(21.30 MB)
    writefreely_0.6.0_linux_amd64.tar.gz(26.75 MB)
    writefreely_0.6.0_windows_amd64.zip(27.10 MB)
  • v0.5.0(Dec 4, 2018)

    write freely

    Features

    • Configure bind address with new bind configuration value (#38, #5)
    • Syntax highlighting support for all programming languages supported in highlight.js (#39)
    • Modify NodeInfo description with new site_description config value
    • Change admin values via the web admin UI (T541)

    Fixes

    • Fix metadata editing in single-user mode (#40)
    • Always show stats on About page if public_stats enabled

    Upgrading from v0.4.x

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    No additional steps are needed to upgrade from v0.4.x. See previous releases if you're upgrading from an earlier version.

    Contributors

    Thanks for contributing!

    @mrvdb

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.5.0_linux_amd64.tar.gz(14.97 MB)
    writefreely_0.5.0_macos_amd64.tar.gz(14.86 MB)
    writefreely_0.5.0_windows_amd64.zip(14.94 MB)
  • v0.4.0(Nov 26, 2018)

    write freely

    Features

    • Work as a standalone server, with TLS (T537)
    • Code syntax highlighting (#31)

    Functional Fixes

    • Fix About page link in Admin dashboard
    • Include About/Privacy page content in page description

    Upgrading from v0.3.x

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    No additional steps are needed to upgrade from v0.3.x. Follow the instructions in each previous release if you're upgrading from an earlier version.

    Contributors

    Thanks to everyone who contributed!

    @mrvdb @koehn

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.4.0_linux_amd64.tar.gz(14.97 MB)
    writefreely_0.4.0_macos_amd64.tar.gz(14.86 MB)
    writefreely_0.4.0_windows_amd64.zip(14.94 MB)
  • v0.3.0(Nov 19, 2018)

    write freely

    Features

    Admin panel

    Dashboard

    Now you can get a basic overview of your application on the admin dashboard. It shows you the app's resource utilization and provides helpful admin commands.

    Currently, the first registered user is always an admin.

    Page editing (T533)

    Make your instance your own by updating your site's About and Privacy pages -- now possible directly from the web. The editor accepts Markdown.

    Other Features

    • Add --init-db flag to create schema in app (T530)
    • Add --reset-pass <username> option for resetting passwords (#25, T534)
    • Federate draft when published to a blog (#9, T526)
    • Support setting created date on new posts (T532)

    Functional Fixes

    • Fix "view blog" links on customize page in single-user mode (#21)
    • Fix "Scheduled" badge appearing when application and database timezones are different (#23)
    • Prevent fatal errors when no ActivityPub response is returned
    • Change Accept activity ID to use blog's origin (#16)
    • Fix MathJax setting not sticking (#28)
    • Fix wrong collection data loaded in RSS feeds on multi-user instances
    • Fix feed and outbox post order in RSS feeds and ActivityPub outboxes
    • Fix em dashes and some glyphs by upgrading Lora

    Others

    • Add -v flag for outputting version

    Upgrading from v0.2.x

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    Important: you'll want to keep config.ini and the files in your keys directory across all upgrades -- don't delete or replace these manually.

    You'll need to manually migrate your database for now. To upgrade, connect to your database and run:

    CREATE TABLE IF NOT EXISTS `appcontent` (
      `id` varchar(36) NOT NULL,
      `content` mediumtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `updated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    

    Optionally, run these queries to clean up bad data that might've shown up due to previous bugs, now fixed in this version.

    -- Erroneous values inserted if you tried to enable MathJax on your blog (fixed in #28)
    DELETE FROM `collectionattributes` WHERE collection_id = 0;
    

    Development

    This update contains some style changes. Run make ui to regenerate CSS after pulling in the latest changes.

    Contributors

    Thanks to our contributors!

    @TheJF @BenOvermyer

    Source code(tar.gz)
    Source code(zip)
    writefreely_0.3.0_linux_amd64.tar.gz(14.93 MB)
    writefreely_0.3.0_macos_amd64.tar.gz(14.82 MB)
    writefreely_0.3.0_windows_amd64.zip(14.93 MB)
  • v0.2.1(Nov 13, 2018)

  • v0.2.0(Nov 12, 2018)

    write freely

    New Features

    • See how many fediverse followers your blogs have
    • WriteFreely now works with Pleroma

    Application Fixes

    • Fix individual post ActivityStreams data fetching, so boosting works (#4)
    • Use WriteFreely avatars in social media image preview, instead of Write.as logo

    Installation Fixes

    • Fix template loading on Windows (#2)
    • Fix database errors around default values (#3, #7)
    • Don't unnecessarily connect to DB after configuring multi-user instance
    • Show any errors when server start fails
    • Fix encryption key loading on Windows
    • Move encryption key generation from keys.sh to writefreely --gen-keys

    Installing

    See our guide.

    Upgrading from v0.1

    Download the latest release for your operating system. Stop running your writefreely service, replace all files in your installation with the ones in the archive, and then start your writefreely service again.

    Important: always keep config.ini and the files in your keys directory across all upgrades -- don't delete or replace these manually.

    Database migrations are manual for now! Fun! To upgrade, connect to your database and run:

    ALTER TABLE `remoteusers` DROP `followers`;
    
    Source code(tar.gz)
    Source code(zip)
    writefreely_0.2_linux_amd64.tar.gz(13.63 MB)
    writefreely_0.2_macos_amd64.tar.gz(13.53 MB)
    writefreely_0.2_windows_amd64.zip(13.59 MB)
  • v0.1.0(Nov 10, 2018)

Owner
WriteFreely
Build a digital writing community.
WriteFreely
Ukuleleweb is a minimalist Wiki with the look and feel of the original WikiWikiWeb

Ukuleleweb Ukuleleweb is a simple Wiki implementation in the style of the original WikiWikiWeb / C2 wiki. Few dependencies The only dependencies are a

Günther Noack 0 Feb 7, 2022
Sample Go REST API implementation with DDD using Clean Architecture.

This layer is a part developed for client-side (mobile, web, etc.) applications to access our domain. It will forward the requests from this layer to the application layer and expose the response it receives from the application layer.

Rıdvan 27 Jun 13, 2022
Clean Architecture template for Golang services

Go Clean template Clean Architecture template for Golang services Overview The purpose of the template is to show: how to organize a project and preve

Mada Satya Bayu Ambika 4 Dec 23, 2021
Implementation of clean architecture in golang with gin-gonic & gorm

Boilerplate API Boilerplate API template includes all the common packages and setup used for API development in this Company. Development Copy .env.ex

null 10 Feb 15, 2022
Go-gin-ddd-cqrs - Clean api rest with Go, Gin and GORM

GOLANG API REST Clean api rest with Go, Gin and GORM. Clean Architecture with DD

Juan Cantón Rodríguez 10 May 28, 2022
Golang gin clean

Dependency go get github.com/gin-gonic/gin go get github.com/jinzhu/gorm go get

benniben 2 Feb 11, 2022
Clean Architecture using Golang with Gin framework

Clean Architecture using Golang with Gin framework Template Structure Gin is a web framework written in Go (Golang). It features a martini-like API wi

Thanakorn Ariyagusolsuthi 7 Jun 6, 2022
Consul Load-Balancing made simple

Notes From release 1.5.15 onward, fabio changes the default GOGC from 800 back to the golang default of 100. Apparently this made some sense back in t

fabio 7k Jun 29, 2022
a url shortener made using go and redis

__ | |--.--.--.----.-----. .-----.-----. | <| | | _|-- __|__| _ | _ | |__|__|_____|__| |_____|__|___

André Kelpe 76 Dec 10, 2020
Azanul Haque 7 Oct 1, 2021
GoatCounter is an open source web analytics platform available as a hosted service or self-hosted app

GoatCounter is an open source web analytics platform available as a hosted service (free for non-commercial use) or self-hosted app. It aims to offer easy to use and meaningful privacy-friendly web analytics as an alternative to Google Analytics or Matomo.

zgoat 2.5k Jul 1, 2022
an online REST renting book platform which you can authenticate, order, reserve a book in your account.

BOOK MAN an online REST renting book platform which you can authenticate, order, reserve a book in your account. it's a microservices project with hig

Mohammad 8 Apr 18, 2022
Mattermost is an open source platform for secure collaboration across the entire software development lifecycle.

Mattermost is an open source platform for secure collaboration across the entire software development lifecycle. This repo is the primary source for c

Mattermost 23.4k Jul 1, 2022
A cross platform single binary tool to work with draw io files

SNIPO SNIPIO is a cross platform single binary tool to work with draw io files With snipio you can do the following operations: list all layers in a d

Felix Becker 2 Nov 28, 2021
A clean, Markdown-based publishing platform made for writers. Write together, and build a community.

WriteFreely is a clean, minimalist publishing platform made for writers. Start a blog, share knowledge within your organization, or build a community

WriteFreely 2.8k Jun 29, 2022
A tool for testing, building, signing, and publishing binaries.

gomason Tool for testing, building, signing and publishing binaries. Think of it as an on premesis CI/CD system- that also performs code signing and p

Nik Ogura 53 Apr 7, 2022
Simple and configurable Logging in Go, with level, formatters and writers

go-log Logging package similar to log4j for the Golang. Support dynamic log level Support customized formatter TextFormatter JSONFormatter Support mul

Guoqiang Chen 12 May 23, 2022
Golang counters for readers/writers

Datacounter Golang counters for readers/writers. Examples ReaderCounter buf := bytes.Buffer{} buf.Write(data) counter := datacounter.NewReaderCounter(

Artem Andreenko 40 May 26, 2022
CLI for publishing/receiving CloudEvent messages through NATS

cenats CLI for publishing/receiving CloudEvent messages through NATS Use Case cenats is designed to make testing services that generate or consume eve

null 0 Nov 5, 2021
this service provides an API for publishing and managing your articles

REST API Для Публикации и Работы с Articles на Go В работе применены следующие концепции: Разработка Веб-Приложений на Go, следуя дизайну REST API. Ра

astduman 0 Dec 15, 2021
Cdk-ecr-deployment - CDK Contruct for publishing ECR Images

cdk-ecr-deployment CDK construct to deploy docker image to Amazon ECR ⚠️ Please

Croud Tech 0 Dec 30, 2021
CLI tool for generating random messages with rules & publishing to the cloud services (SQS,SNS,PUB/SUB and etc.)

Randomsg A CLI tool to generate random messages and publish to cloud services like (SQS,SNS,PUB/SUB and etc.). TODO Generation of nested objects is no

Kerem Dokumacı 5 May 10, 2022
Go (Golang) Clean Architecture based on Reading Uncle Bob's Clean Architecture

go-clean-arch Changelog v1: checkout to the v1 branch Proposed on 2017, archived to v1 branch on 2018 Desc: Initial proposal by me. The story can be r

Iman Tumorang 6.1k Jun 24, 2022
Golang Clean Architecture based on Uncle Bob's Clean Architecture and Summer internship in 2021

clean-architecture-api Description This is an example of implemention of Clean Architecture in Golang projects. This project has 4 layer : Infrastruct

daiki sakuma 4 Feb 20, 2022
Clean-todo - An example of go app with clean architecture

clean-todo An example of go app with clean application Functionality This is a s

SEA AUCA 0 Jan 26, 2022
This is a POC (Proof of Concept) using Hexagonal Architecture, SOLID, DDD, Clean Code, Clean Architecture

Projeto Planetas Star Wars: Esse projeto de trata de uma POC utilizando os conceitos de Clean Arch, Hexagonal Arch, Clean Code, DDD, e SOLID. O princi

Marcelo Martins 0 Feb 10, 2022
☔🎀 Translation made with simplicity, yet robust. ~ Backend portion of Arisu, made in Go.

☔ Tsubaki Website • Discord • Discussions Translation made with simplicity, yet robust. Made with ?? using TypeScript, React with Next.js. Tsubaki is

Arisu 0 Jan 13, 2022
Cross-platform GUI for go is never this easy and clean.

gimu Strongly suggest NOT to use this project anymore, the auto-generated cgo wrapper of Nuklear has a random crash issue which is hard to fix (becaus

Allen Dang 65 Apr 15, 2022
Minimalist Go package aimed at creating Console User Interfaces.

GOCUI - Go Console User Interface Minimalist Go package aimed at creating Console User Interfaces. Features Minimalist API. Views (the "windows" in th

Roi Martin 8.3k Jun 24, 2022