WriteFreely – An open source platform for building a writing space on the web
writefreely.org
writefreely.org
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.
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!
- 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.
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.
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.
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
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.
Side note: if anyone else happens to read this, you're welcome to submit your site / app too. The more the merrier!
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.
Sorry.
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 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.
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.
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
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.
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.
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 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.
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.
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.
What about email? I.e. put together a mailing list for your blog and host the archives online?
email subscription is useful - but not as a discussion board.
Isn’t this just rss with extra steps ?
If I’m interested in content I will most likely subscribe to his RSS feeds
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/
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.
I never managed to get federation working (which I presume is down to a misconfiguration on my part), images not being hostable seems like a bizarre feature to leave out as they are present on almost all blogs, and most recently I really dislike the thought process behind the micropayments from their blog about six months ago [0]. I would also echo what x4e said in their comment [1].
I stand corrected on any of these issues as I am very inexperienced with self hosting and it was about a year ago and projects do change, but from my experience, Writefreely wasn't what it said on the tin.
[0]: https://write.as/blog/monetize-your-writing-with-micropaymen...
And out of curiosity, what didn't you like about our thought process on micropayments?
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.
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?
This is powered by the ActivityPub protocol, a W3C recommendation.
Refreshingly simple business model. They don't even hound you for an email address.
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.
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
- 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).
And yes, it's where you leave it checked to use Cloudflare for your traffic.
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)
Best of luck to this project!
And is it possible to export from WriteFreely should one want to migrate away from it?
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.
I like the idea of ActivityPub followers but shifting all the contents over from an existing static site sounds like a wasteful exercise
Previous discussions: https://news.ycombinator.com/item?id=14864731 https://news.ycombinator.com/item?id=17809447 https://news.ycombinator.com/item?id=21322712 https://news.ycombinator.com/item?id=17082228
Self-host your shit.
> 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.
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.