98 comments

[ 2.6 ms ] story [ 176 ms ] thread
I have been using it, and there's a liberating lack of bullshit. I love that there's no comments/spam/trolls. It took me like 15min to get it going on a droplet. What a fantastically simple project.
Is there a good guide on how to do this step by step? I don’t mind learning and getting my hands dirty but I also fear things like getting security right.
I did their production config instructions, but remember to disable the engine version header (some random tutorial [1]).

I then used Cloudflare as a proxy, directly to the IP. You can get the IP certificate from CF.

I am only paying for a droplet.

[1]: https://seoneurons.com/hide-nginx-server-version-header/

> It took me like 15min to get it going on a droplet

Don't know much about writefreely in general, but static website hosting is free with Github Pages (or extremely cheap on something like S3).

You mentioning a droplet sounds you're running a full VM to host a static site, which sounds too expensive if that's the only use case for the VM.

How do you integrate this tool into an existing blog?

I like the idea of ActivityPub followers but shifting all the contents over from an existing static site sounds like a wasteful exercise

(comment deleted)
(comment deleted)
(comment deleted)
Been using it for a while.

Refreshingly simple business model. They don't even hound you for an email address.

Interesting promise. Will give it a try. Does anybody known similar tools, written in a different language (no expertise on Go)?
The other main ActivityPub blogging centric software is Plume https://joinplu.me, oh and there are some plugins for Wordpress
This looks very beautiful. I wonder if it supports math typesetting (via latex) out of the box or if there are plug-ins for that.
Yes there seem to be a MathJax support that you just have to enable according to what I see in the source and in the forums. It is apparently not in the documentation.
> There are enough places on the web built to hog your attention; keep you scrolling and checking your feed, hoping for a new like or retweet. WriteFreely gives you the space to think for yourself again, free from alerts, feeds, and the distractions of classic social media.

I think within a decade we all are going to come back to blog/personal sites and ditch social media. The easier we make people to set up self hosted blogs, faster will be the switch. I know general public does not give a shit about this but a man can hope.

> ditch social media

Personally I have made my addiction to social media work for me. I make full use of curated feeds, and make sure my feed has a good signal to noise ratio. The ADs are annoying, but I would rather trade my data for them. I can't afford $5.00 per month, and happily let ADs subsidize these companies (Twitter, Facebook etc).

>I make full use of curated feeds, and make sure my feed has a good signal to noise ratio. The ADs are annoying, but I would rather trade my data for them.

I just don't think that is a sustainable position with the way things are moving. If anything, this is the direction social media is moving away from. Feeds are increasingly curated by the user's browsing behaviors and and not their conscious decisions. Data is only becoming more valuable as more people make the choice to trade theirs away with no real thought about the long-term effects of colossal repositories of complex user data and very little regulation in place to restrict their use.

Not to say that it isn't possible to make social media work for you. I just continue to wonder what the threshold is where users won't be comfortable leveraging their personal data for convenience.

The problem with personal sites is that they're hard to discover. Case in point: there are a lot of personal sites out there right now (and many more which existed but are now offline), that only a few people even know exist.

We have platforms which make it easy to set up self-posted blogs, we just need a way to make them more discoverable. Which is what Twitter, Reddit, and especially Medium (which I imagine WriteFreely was inspired by) had in mind.

This is something I said before: the reason existing platforms dominate the market is because they have the most users. Most people create blogs or any other kind of content because they want to be heard.

> The problem with personal sites is that they're hard to discover.

I completely agree with you. Discovery still seems to be the hardest problem to solve.

I, as a blog owner, I decided that the best way to contribute solve this problem comes in two ways:

1) By linking more to external sites and talk about websites I like and push for more networking to take place rather than only linking internally to generate more traffic

2) I created https://theforest.link/ as a way to bring back some of the fun in the way we explore the web.

These two won’t obviously solve the problem altogether but I think if more people try their best to spread the word about content worth consuming we can solve the discovery issue without inventing a separate discovery platform.

Also, we should bring back blogrolls

Hey your site is really cool! How/where/in what fashion did you compile your random list of sites?
It’s just a curated list of all sorts of random links, stored on airtable.

The site is as low tech as it gets. I was just trying to make something fun and help people discover interesting sites.

It’s mostly personal sites/blogs and some indie publication.

But here you have at least the AtivityPub integration. This allows users at instances of the Fediverse to subscribe and share your contents in a quite native way.

The Micropub / Microsub standard follows a similar, even more granular approach (where content types note and article are existent explicitly).

Of course, those alternative network standards are not attracting the broad majority of users yet but this is not a technical problem.

ActivityPub just pushes the discovery problem to the homeserver administrator, who must find -- via word of mouth -- other Fedi relays to federated with, or the homeserver is a silo.

No part of this discovery step is automated or aided by the software.

Personally I think it's a big oversight in the ActivityPub protocol.. but then again, ActivityPub is more oversights than it is features.

I don't think that is the main benefit. I think it is the ability to "reshare" a post and have your followers see it. So you can follow your "friends" and learn about new blogs from there. There is no reason that this couldn't be done on regular blogs, but it isn't common.
AP has Note and Article object types.
The problem with personal sites is that they're hard to discover.

I think the problem with the web as it is now is that it's too easy to discover sites. Which is why more and more (though not enough) people distrust the large search providers.

Nothing the tech companies have invented carries the weight of word-of-mouth and personal recommendations. You've probably seen it in your own browsing.

Search for something → Open 30 tabs from the search results and look at each one for a fraction of a second.

See a link described on HN → Open one tab and give it a fair shot.

It would be nice to see the return of niche search engines. Want to know something about architecture? Visit architecturesearch.example and when you search for "skyscraper" you get information about tall buildings, and not bad action films and ads for high-heeled shoes.

> I think the problem with the web as it is now is that it's too easy to discover sites. Both are the same problem: it’s hard to find good sites among the massive amount of clickbait, SEO optimization, and generally low-quality sites. It’s a hard problem too. There are a million users who all want blogs, and a million bloggers who all want viewers. The reality is, if you or I were to start a blog it would probably only be interesting to a few people. So your goal is to get said blog to the right few people, while getting a different blog to a different right few people, etc. a million times.

A niche search engine is a good solution, for niche content you already know about. For discovering new niche content you’d need a really good algorithm (perhaps based on similar niches) or some other system.

Is it possible to import stuff from other blogs e.g move from WordPress to WriteFreely using a WordPress export?

And is it possible to export from WriteFreely should one want to migrate away from it?

There isn't a direct way to import from WordPress so far, but there is an open API [0] you could use to move your blog. That's the tack we took for our Hugo import tool [1]: just taking posts from a previous blog, parsing out the metadata, and publishing via the API. For WordPress, you'd also just want to get the posts converted to Markdown for the best experience in WF.

As for exporting your content, yes you can do that at any time. Everything is downloadable as JSON, CSV, or a zipped archive of plain text files.

[0] https://developers.write.as/docs/api/

[1] https://github.com/writefreely/hugo-importer

So is the business model of their company to turn every random user into a content generator which pays them to give away content?

Because it seems that if the author can't be identified, the ownership of the content is implied to be the publisher of this codebase.

From what I see, they charge you for hosting if you don't do it yourself. $4/mo for a blog. It seems that you can have themes and newsletters and other stuff that are not available in the free version. I'm still looking at what the self-hosted version can do.
It doesn't seem that the self-hosted version has any restrictions. And it doesn't seem hard to setup either. Optional mysql, reverse proxy or just give it the certificates and you're ready.
Been looking to start blogging, I feel it's making a slow comeback (along with RSS!) this looks great.
This seems pretty cool. I've been interested in getting into blogging and moving away from WordPress. I checked out Jekyll and it's a pain to add media to a post so this looks like a great alternative. It would be nice if there was an online demo you could try out before setting it up.
Hugo offers pretty much every static site feature that writefreely does for free. Media on a page isn't an issue with Hugo websites.
One thing a bit annoying with Hugo is that somewhere down the line of updates they made breaking changes to templates.

Now, since it’s written in go and all statically linked, I’ve just put the Linux and macOS binaries of the version that worked for me in my repo and never update.

Good thing about a stagnant platform is that one can spend less time tinkering with it.

What is the point of "medium" other than to hold your content hostage and force users to pay a subscription ? Writefreely instead is about sharing. A full 360 from medium.
Hi! I'm the lead developer of WriteFreely -- happy to answer any questions you have!

For a little update on where the project is today: we just put out our last update [0] before v1.0, which we're aiming to release later this year. In 1.0, among other things, you'll find many features we've been piloting on our hosted service (Write.as), including newsletters, social media cross-posting, eBook export, etc.

We're also experimenting with new, non-core features, like photo hosting [1] and comments [2]. Our core focus has always been on just writing, which is why many features (including ones afforded by ActivityPub) have been left out. So we're trying to see what's possible when we keep a clean, simple core with optional "rooms" of functionality around it. If you want to keep up with us, you should see more developments around this before the end of the year, too.

[0] https://blog.writefreely.org/version-0-13

[1] https://snap.as

[2] https://remark.as

Hi,

If you ever wanted to hop on my podcast to talk about how you've built and deployed things let me know. We could chat about your tech stack, lessons learned, etc.. The podcast is at: https://runninginproduction.com/podcast/ and if you want to become a guest there's a "become a guest" button on the right top to get the ball rolling.

Currently inching up on 100 episodes.

Sounds awesome! Would love to be a part of it. I'll reach out soon!
Awesome, I'll keep an eye out for your submission.

Side note: if anyone else happens to read this, you're welcome to submit your site / app too. The more the merrier!

I love Write.as, but one little nitpick that has always bothered me is the font loading flicker, like it takes a second on page load to load the custom font. Not sure if it's the browsers I'm using or uBlock but it always happens. Is there a way to disable the custom font?
You can block remote fonts with uBO in its per-site menu, left of the disable JS button.
Weird, but that setting seemed to not work. What did work was disabling JavaScript, which is a bit puzzling -- why is JS loading the fonts?
Very happy to have contributed to this project. Of all the blog engines out there, it is by far my favorite.
I self-hosted a writefreely instance for a while but I found many features were proprietary and only available in the paid managed hosting (write.as). All features that I didn’t need that much and could workaround however it just made me feel quite dissatisfied with the project.

People self hosting are not likely to be the same people who would pay for managed hosting so it makes no sense to lock features off for them.

I forked the codebase and added stuff myself for a while because even after funnelling users to their commercial option they still do hardly any development, see how long this one line PR I made took to be merged: https://github.com/writefreely/writefreely/pull/429.

Now I just have a simple python script that makes everything I need in a blog [0] (markdown, resources, mathjax, atom feed and all completely static with no JS). There is no need to have complicated blog services, just compile static html.

[0]: https://github.com/x4e/Blog/blob/master/make.py

Just curious, which features did you want that were proprietary at the time?

The primary reasons for including certain features in Write.as but not in WriteFreely are when they're very early (it's easier to deploy and fix on a single hosted service), or when they involve a ton of external dependencies. My thinking on the latter is that I'd rather leave a feature out than leave admins with a poor experience, vendor lock-in, lacking documentation, etc. But maybe that's the wrong way to think about it.

Either way, "locking features off" isn't a business strategy here, but just a matter of practicality as a very small open source project. As I mentioned elsewhere, we plan to bring things into parity for v1.0. And we very much welcome contributors -- even if it's just reviewing pull requests!

As you see below somewhere I say nice about you but I must also say there are some things I'd really want to see fixed soon:

- make inclusion of photos, including from snap.as kind of usable (yes, I'm a paying customer)

- fix statistics

On the bright side I can now see who follows me, instead of just a number like it was for a long time.

It was a while ago but the ones I remember were email subscriptions, custom javascript, and custom instance support in the iOS app.

Thank You for clarifying the reasoning. That does make more sense and makes it more justified. I still think it would be better to at least have the write.as fork be open source even if you can’t ensure stability/any sort of support.

(comment deleted)
I really dislike how open source has evolved over the last decade. A lot of open source isn't much more than a feature anemic demo and IMO is only there so companies can generate sales leads. Getting good quality bug reports or contributions from the "community" members (aka suckers) are a bonus.

I don't contribute to projects that have stripped down, almost unusable versions for their open source variant and that's most of them. Years ago I saw someone on HN say something like "charge for features or scale, not both." Personally I think that should be "charge for scale, not features."

I like the way Drone.io has done their licensing so far, even after being bought by Harness. Before, it was something like "do what you want if you have less than $1 million in revenue." Now, with Harness.io it appears they've settled on charging for scale. When I looked at their pricing a couple days ago it says the "free" (open source) version is limited to 1 server. I'm not sure how that works (or how they enforce it), but the main thing IMO is they don't appear to limit features. I can actually use it without reading their feature tiers like it's an API that changes every time the marketing department waffles on the pricing.

I think the current models for pricing SaaS suck and Harness is closer to a model that makes sense. For me, the reality is that I only want 2 tiers; free where I self host and SaaS where I pay someone to do it. The problem is they always want to charge enterprises more per user which makes sense since it's harder to scale and support to the level needed.

IMO, just have 2 tiers; free, self-hosted with full features and community support and paid, but with a different pricing model that's based on user count and support. For example, give the first user for free with community support. You always keep the price for lower tier users. Give the next 4 users for a low cost with email support. Give the next 20 ish users for a mid-tier cost with phone support. Make the remaining users the price you actually want with priority support.

That brings the cost average down for small users and makes it much more attractive to adopt a product. The pricing curve looks more like a camels hump (assuming you negotiate if you're huge) instead of a staircase (like GitLab) where you hit pricing cliffs that are tough to swallow.

As far as a OSS citizen, I think Caddy is a good example.
It's a really clean design, exactly how I would like to read content!

I'm new to this federation idea, curious how blog pages work in this world. Is there something of an open protocol for publishing/consuming content so that I can use any provider or client I like, or how does it work?

People with Mastodon accounts for instance can follow accounts on your WriteFreely instance.

This is powered by the ActivityPub protocol, a W3C recommendation.

Systems that federate over ActivityPub (AP) produce JSON blobs that other systems choose how to present. For example: an AP blog might show a blog post and comments like a traditional blog, while Mastodon could show the same data as a toot and replies to it.
Shameless plug: back in the day I put together an Emacs package to push org-files directly to an writefreely instance. Literally 0 friction to start a blog. https://github.com/dangom/writefreely.el
Nice, thanks! But I wouldn't say "0 friction" as you need to know emacs, org-mode, how to manage a server, and install WriteFreely :)
Haha, sure. But you don't need to install writefreely, you can publish anonymously to write.as, the "canonical" writefreely instance.
Does WriteFreely now support hosting multiple sites on a single instance?
I really enjoy Wordpress for writing freely. Ever since Docker-compose, automatic updates and Gutenberg editor became available, I haven’t even needed to look at alternatives.
you can also use wordpress with the fediverse too, there is a good plugin that lets you syndicate your posts out and let the rest of the fediverse follow/comment/etc from where they already are
I think writing on the internet is not a problem. It's easy to build a blog from a static site generator. There are tons of them these days.

IMO the actual problem is you want to interact with the people reading what you write.

Without a commenting system, the writing/publishing platform loses a lot of its potential value.

The other problem like other people mentioned is discovery.

Let's take YouTube for an example.

In theory you can make videos and publish them on your own self-hosted website.

But if you post the videos to youtube, you get a bigger chance of people finding out about you.

So, if you want to empower a distributed network of personal websites, you also need a powerful "indexing" engine that continuously fetches and catalogues all the new content being published by all these people for easy discovery.

The other problem is discontinuity between discovery mode and consumption mode.

On YouTube, when you find a video you like, you still see related or recommended videos on the side.

If you have a video index that tries to work like YouTube but redirects to different websites where videos are actually hosted, you get this discontinuity where, once the user visits the actual website where the content is hosted, they are no longer discovering new things on the indexing service.

> IMO the actual problem is you want to interact with the people reading what you write.

What about email? I.e. put together a mailing list for your blog and host the archives online?

People don't like mailing lists for conversations.

email subscription is useful - but not as a discussion board.

I agree, but I think this is largely because the tooling and ecosystem around it isn’t great.
> So, if you want to empower a distributed network of personal websites, you also need a powerful "indexing" engine that continuously fetches and catalogues all the new content being published by all these people for easy discovery

Isn’t this just rss with extra steps ?

If I’m interested in content I will most likely subscribe to his RSS feeds

I never used RSS and I suspect the average person has never even heard of it.
Naive question, not trying to lead somewhere.

Back in the day we'd do a ./configure && make install on some server and we'd be up and running to kick the tires.

It's been a long time since I have done this - my career went off in other directions - and so I am curious if web app authors are providing automatic serverless deploy plans that are just as easy to run as that ./configure experience from much earlier.

(I know configure scripts still exist, but they are largely satisfied by OS providers for users like me)

Almost every self hosted blogging platform I've seen requires you to have a server to run it on 24/7, and I don't get it.

This is the perfect use case for FaaS -- a personal site that maybe gets a few thousand hits a month, and maybe has that one post that goes viral and gets 100,000 hits in a day.

I love all the features and the nice aesthetic of all these things, but it seems silly to pay even $5/mo for a 24/7 server when I can host it for free on AWS Lambda if the software had been written that way. Not to mention it would make it more accessible to non-tech folks if you can just give them a button to click that sets up a Cloudformation for them or something.

Sadly I don't have the time (not design skills) to write one myself.

Very interesting idea.

If you or anyone else feel like expanding upon that idea and do a ”back-of-the-napkin” diagram or something, it would be very interesting to see that!

(I started dipping my toes into FaaS[0] literally yesterday, so I must admit I can’t yet imagine how one would actually host a blogging service in such an environment.)

[0] Function as a service

It's pretty straightforward actually. What does a blog do?

- Show content to users

- Allow the admin to update content

So you'd really just need three functions and some storage:

- A function that takes a request for content and shows a web page

- A function that authenticates the admin and shows them an admin page

- A function that takes their admin update request and writes to storage.

The storage could be S3, of if you want to get fancy you could use DynamoDB so that you can do things like tags and have blog pages that show each tag (or just regenerate them and put them on S3 every time you make a update with a new tag).

I don't think there is any significant technical challenges to running this on lambda. You'd just need some sort of workflow to update the lambda image with each blog update. A big downside to hosting on AWS though is if your site gets HN'ed, you could have a hefty bill on your hands.
Couldn’t the risk of hefty bills be lowered by using CloudFront as a caching layer?
That's unlikely. Using Cloudfront you'd only pay 8 cents per GB (once you get past the 50GB of free data tier). Or you can put Cloudflare in front of it and pay nothing.
So I’m not that familiar with using CDNs. So Cloudflare would actually serve 100% of the workload for a static site? That’s where you leave everything default for a domain in Cloudflare’s UI right? Usually I uncheck the “use cloudflare” or whatever they call it, essentially just having Cloudflare do the DNS only.
Not 100% but petty close. For a mostly static website like a blog it could easily serve 95%+ of the traffic.

And yes, it's where you leave it checked to use Cloudflare for your traffic.

Don't bother with any of this crap.

Self-host your shit.

This is literally a way to "self-host your shit."
Did you even bother to read other comments before getting triggered?

> I self-hosted a writefreely instance for a while but I found many features were proprietary and only available in the paid managed hosting (write.as). All features that I didn’t need that much and could workaround however it just made me feel quite dissatisfied with the project.