22 ms·
Show HN: WriteFreely – minimalist, federated blogging platform
- TekMol 8y agoThis totally confuses me. So I am supposed to either sign up for $10 per month or trust somebody from the internet and run their executable on my machine? Is there anybody here on HN that sees this as viable ways to get into blogging? We totally need more and better ways to communicate online. But I just cannot see how this has any chance to take off.
- detaro 8y agoHow is the model of "download our open source software or pay us to run it" confusing to you? If you want to "start blogging", you probably don't want to get a full instance, but more a blog on theirs: https://write.as/pricing https://write.as/pricing
- TekMol 8y agoI clicked on 'get started' and then 'hosting plans' on writefreely and got these prices: https://writefreely.org/hosting https://writefreely.org/hosting Now I see that the prices you mention are linked on the bottom of that page.
- thebaer 8y agoHere's the source code: https://github.com/writeas/writefreely https://github.com/writeas/writefreely As mentioned, it's an open source project.
- codetrotter 8y ago> trust somebody from the internet and run their executable on my machine It’s open source. You can read the source code and compile it yourself.
- rajekas 8y agoIt's not $10 bucks a month but $1 or $6. I am a paying customer myself and very happy with the service. They are generous enough to say that if you don't want to pay them money or have a different idea of what a blog should be, then take their software and make it into whatever you want it to be after inspecting their code. Don't like that either? You can always come to HN and impugn their motives. Never let a good deed go unpunished.
- fouc 8y agohttps://writefreely.org/hosting https://writefreely.org/hosting shows $10/mo and up. I guess the OP would have to find the write.as site instead.
- rajekas 8y agoYou're right - I interpreted the OP as wanting a single blog. The $10 a month or more is for hosting 250 blogs or more. I would say that's a pretty good deal.
- jerrre 8y agoWhat does federated mean is this context? (from a non-native English speaker)
- projectramo 8y agoSame question. I have heard it used to mean there is no one central server but a lot of people put their servers together. I don't understand it in this blogging context because you can always put up your own blog on your server. How is running your blog or blogging platform on your own server different from other blogs or platforms?
- detaro 8y ago"Interact with the decentralized social web via ActivityPub." It directly speaks to Mastodon and other Fediverse software.
- StavrosK 8y agoIt means your blog can communicate with other software that supports ActivityPub, so you aren't locked in to one community. For example, I can follow your blog from my Mastodon (a Twitter-like project) as if it were a Mastodon account.
- jerrre 8y agoAh, thanks! So it's not non-nativeness at fault :) Just that I'm some-one with out the knowledge you assumed.
- dtjohnnymonkey 8y agoA canonical example of a federated system would be email. Anybody can participate in the email ecosystem as a function of the SMTP protocol. A non-federated system would be a “walled garden” like Facebook or Twitter.
- thebaer 8y agoTo explain a little more behind this project: this started out as a simple, privacy-focused blogging platform called Write.as. We've been running a Mastodon instance for a while and keeping up with the fediverse, so over the summer as it got much easier to implement, we added support for ActivityPub (the protocol behind Mastodon, PixelFed, Funkwhale, etc.) The fediverse has a strong FOSS culture, so after releasing AP support, I got to work on opening up the source for Write.as, and this is that final result. Write.as has existed for 4 years, so the application code is very stable. But right now I'm getting the code to a place that works great in any configuration, installs easily, etc.
- ahreflink 8y agoI've noticed you write 'we' everywhere, but as far as I can tell you've done everything by yourself? Seriously impressive work by the way, and I'm really happy to see such a well-developed project use Go+ActivityPub.
- freehunter 8y agoThat's pretty common when talking about the actions or product of a non-sentient structure. It helps to differentiate the product from the person. If you say "I released a new version", the end result is tied to the individual. If you say "we released a new version", even if it's just one person, it makes it clear that the new version is the output of the company/organization/collective/structure/etc, even if that company/organization/collective/structure/etc is just one person. It's kind of like a single-owner LLC. The structure limits the liability by detaching responsibility from the owner and attaching it to the corporation, even though the corporation is in reality just the one person. It's a very abstract concept that just implies a product can be separate from the individual who created it.
- thebaer 8y agoThe editorial "we" I suppose :) As for the code, yep I built everything myself (and wrote about it here [0]). But I've also had the help of people translating the app, giving feedback, and making suggestions along the way. Listening to people and filtering ideas through my own vision has really made the product what it is today. Thanks, though! I'm just excited to keep pushing the AP ecosystem forward and making the platforms on it more usable. [0] https://write.as/matt/how-i-built-a-multi-platform-app https://write.as/matt/how-i-built-a-multi-platform-app
- arendtio 8y agoSounds nice, but from a technical point of view... Why does it require a MySQL server? I mean, yes, in general, MySQL has a higher performance than let's say SQLite, but for most users, a properly handled SQLite file should deliver enough performance and the setup would be a lot easier and the overhead for small blogs would be much less. But hey, it is still a young project and the general concept is looking great :-)
- Tepix 8y agoIdeally it would use some kind of wrapper that supports multiple DB backends.
- alliecat 8y agoIn an ideal world that'd be great, but for single-dev projects you can more effectively deliver features if you just pick a database and stick to it. It's a shame it's MySQL (I'm in the Postgres camp these days) but MariaDB isn't awful and for such a tiny project it doesn't matter.
- jonnydubowsky 8y agoI'm going out on a ledge here with this idea/question as I'm not sure if it makes total sense...I've been researching different methods for database interoperability and have been poking at Apache Avro. Would it be viable to tie the DB into Apache Avro, host a JSON schema with clear indication as to how the file is stored and add in schema for whatever other database you want to connect to? "Avro relies on schemas. When Avro data is read, the schema used when writing it is always present. This permits each datum to be written with no per-value overheads, making serialization both fast and small. This also facilitates use with dynamic, scripting languages, since data, together with its schema, is fully self-describing. When Avro data is stored in a file, its schema is stored with it, so that files may be processed later by any program. If the program reading the data expects a different schema this can be easily resolved, since both schemas are present. When Avro is used in RPC, the client and server exchange schemas in the connection handshake. (This can be optimized so that, for most calls, no schemas are actually transmitted.) Since both client and server both have the other's full schema, correspondence between same named fields, missing fields, extra fields, etc. can all be easily resolved. Avro schemas are defined with JSON . This facilitates implementation in languages that already have JSON libraries" I know of a few other ways to achieve this result (choosing which database the user wants to use while maintaining interoperability) but would love feedback on better approach to understanding this process.
- fmoralesc 8y agoThis is really neat! Will it be possible to use mastodon clients to post to the blog? That would be really awesome.
- thebaer 8y agoPossibly! If someone wants to implement the Client-to-Server side of ActivityPub I'll be happy to merge it in. But I'd personally like to build support for protocols like Micropub [0] into the backend and our first-party clients [1], as I think that's more suited for regular blogging. [0] https://indieweb.org/Micropub https://indieweb.org/Micropub [1] https://write.as/apps https://write.as/apps
- fmoralesc 8y agoSounds good. Thanks for the links!
- dteiml 8y agoIs there an easy way to write Latex (e.g. with MathJax or Katex)? That is for me the most wanted feature of Medium (my intuition is they won't be adding it any time soon).
- coolness 8y agoAnd also, is code highlighting supported with colours?
- vanderZwan 8y agoIf it supports inline HTML (not entirely clear to me), then you could try using markdeep[0] to render HTML offline, then copy the output to the editor. EDIT: just tried, does not work without KaTex being loaded [0] https://casual-effects.com/markdeep/ https://casual-effects.com/markdeep/
- tekknolagi 8y agoI think the author said elsewhere that it supports MathJax already.
- reitanqild 8y agoSuper awesome! I love the combo of actual open source + option of paid hosting (so those who wants can sponsor development AND avoid the hassle of running their own instance.) (AGPL still scares me, but for a anything that doesn't need API access it should be OK I guess?)
- Tepix 8y agoThe markup is documented at https://guides.write.as/writing/ https://guides.write.as/writing/ That page was a bit hard to find.
- stevekemp 8y agoAt first glance that just looks like markdown ..?
- wild_preference 8y agoLook again. For example, it has a #tag feature.
- rhn_mk1 8y agoI like this idea, and I'm eagerly waiting for this to catch on. Following up from this, I have 2 questions that keep me from entering the ecosystem: - I don't want to host complicated platforms, all I need is a statically generated blog. ActivityPub could be the way to let people comment on my posts without forfeiting the staticness. Is there any static blog system that integrates with ActivityPub? - Are there any native desktop clients supporting ActivityPub (micro)blogging? I've set up a Mastodon account, and the only way I interact with it is posting via a command-line tool. It's write-only for me because I can't be hassled to use the browser, and it would be nice to change that.
- fweespeech 8y ago> - Are there any native desktop clients supporting ActivityPub (micro)blogging? I've set up a Mastodon account, and the only way I interact with it is posting via a command-line tool. It's write-only for me because I can't be hassled to use the browser, and it would be nice to change that. https://whalebird.org/en/desktop/contents https://whalebird.org/en/desktop/contents https://thedesk.top/en/ https://thedesk.top/en/ > - I don't want to host complicated platforms, all I need is a statically generated blog. ActivityPub could be the way to let people comment on my posts without forfeiting the staticness. Is there any static blog system that integrates with ActivityPub? I'm 90% sure this doesn't exist right now in a usable form, closest is just something to ping Mastodon when you run your upload. If you link a comment system in the way you suggest, someone would need to host it for you a la Disqus which is where you'd likely come full circle to "hosted blog platform".
- rrix2 8y ago> - I don't want to host complicated platforms, all I need is a statically generated blog. ActivityPub could be the way to let people comment on my posts without forfeiting the staticness. https://fed.brid.gy/ https://fed.brid.gy/ and https://webmention.io/ https://webmention.io/ can be duct taped together to provide roughly this. I use webmention.io and brid.gy on my blog with Twitter and (until Cambridge Analytica) Facebook comments, but haven't got around to using the federated aspects of bridgy yet.
- alan_wade 8y agoThis looks awesome! Does anybody know if there's something similar written in node or python? I'd love to build a similar project, but I'm confused by ActivityPub, and having some source code I can understand as an example would be really helpful.
- arendtio 8y agoLearn Go ;-) No seriously, spend an evening on doing the tour [1] and you won't regret it (all you need is a browser). Actually, the syntax is kinda clean and easy to read. Python might look cleaner at first glance, but it has a lot more tricks you need to learn to understand someone else's code. Writing Go on the other side is more complicated as you have to learn how to design interfaces properly and there are a lot of common mistakes everybody does in the beginning. [1]: https://tour.golang.org https://tour.golang.org
- strunz 8y agoCheck out Wagtail, Mezzanine, and Pico.
- alan_wade 8y agoI'm looking specifically for ActivityPub examples.
- ahreflink 8y agoI was looking through the other ActivityPub examples OP mentioned and funkwhale seems to be written in Python (https://code.eliotberriot.com/funkwhale/funkwhale https://code.eliotberriot.com/funkwhale/funkwhale) Edit: I recommend going through https://github.com/topics/activitypub https://github.com/topics/activitypub, have quite a few written in Python.
- jonnydubowsky 8y agoGreat suggestions. Thanks for the recommendations. This feed is starting to lay out some really useful context for the next generation of p2p publishing. Btw, here are links to the recommendations: https://wagtail.io https://wagtail.io http://mezzanine.jupo.org http://mezzanine.jupo.org http://picocms.org http://picocms.org
- bovermyer 8y agoI've been looking for something to fill the void left by WordPress and Ghost in the self-hosted blog engine space. This feels like it could do the job. I'll look at it a little closer and see if it has good answers to my remaining questions.
- e12e 8y agoIn what sense did wp and ghost leave a hole? They became unfashionable?
- bovermyer 8y agoIn my case, WordPress and Ghost left my toolbox for two separate reasons. Note that these reasons are my own, and should not be taken as a wider denunciation of these products. WordPress went away because I got tired of all the little fixes and tweaks I had to make to get it to be "just right." Even then, the way the code is structured leaves a bad taste in my mouth. Ghost went away because I just don't like Node.js, and because some of the promised features still haven't materialized.
- pawurb 8y agoThere's a free template if you would like to host a minimal static blog https://pawelurbanek.com/jekyll-seo-template https://pawelurbanek.com/jekyll-seo-template
- alliecat 8y agoThis is probably exactly what I've been looking for as a blogging platform. Definitely giving this a go.
- andrew_ 8y agoWrite.as looks like a great platform. Just started exploring it. Would be great if there was a free plan for open source organizations and authors, so we could make use of the Snap.as service as well. That'd be enough to get me off of Medium.
- thebaer 8y agoWe do have discounts for open source projects [0], but send me an email (hello at write.as) -- I'd be happy to talk about a bigger discount for what you're doing. [0] https://write.as/pricing/opensource https://write.as/pricing/opensource
- salvar 8y agoHave you done any research into how likely it is that a visitor from your demographic understands what "federated" means in this context? I ask because it's part of the tagline, so if you don't understand a key word in the product description you're probably less likely to show interest in it.
- maybeiambatman 8y agoWhat DOES "federated" mean in this context?
- salvar 8y agoI'm still not exactly sure, which is definitely a red flag to me since I'm already a nerdy type that should at least understand the value proposition.
- shopkins 8y agoIt means your posts are sent out to followers via ActivityPub. It explains this below, in the "publish to the fediverse" section.
- jdormit 8y agoIn this context, it means that content from this service is shared with other servers. This is different from decentralized - in a decentralized network, every client communicates directly with other clients, whereas in a federated network, clients communicate with central servers but the servers can interoperate . Email is a good example of a federated network - mail clients communicate with centralized mail servers, but mail servers can send messages to other mail servers. To extend that analogy, when you write an article on Write.as your browser sends that data to the Write.as server, but the server federates that data to various other servers - Mastodon instances, Pleroma instances, etc. This is what enables Mastodon et. al users to like, follow, and share content posted to Write.as.
- huangc10 8y ago
- skybrian 8y agoActivityPub is nice, but I would also like to see support for RSS and/or Atom. Is that coming? More generally, linking to a feature list might be useful. I can read the source, but not everyone can.
- jboynyc 8y agoSyndication is already there; this example from the demo instance might not survive for long, but it works right now: https://pencil.writefree.ly/foo/feed/ https://pencil.writefree.ly/foo/feed/
- dreamdu5t 8y agoDo you support microformats? I much prefer static content to ActivityPub, and honestly a lot of AP sites are less accessible than ones with RSS or micro formats. The indie web approach to blogging (h-feed, webmentions, etc.) seems so much better than ActivityPub because it’s static content, web friendly, control of user identity, etc.
- thebaer 8y agoYep, it supports microformats and RSS -- and I'd like to integrate more IndieWeb stuff, like Micropub. You can also configure the server to not federate your posts if you prefer.
- XorNot 8y agoSo is there somewhere I can see what exactly I'd be buying? $1 a month is well within my "definitely worth convenience" margin for migrating my static blog off Github pages, but I can't tell what I'd actually be buying / what the final product would look like?
- thebaer 8y agoThat lowest plan lets you connect a custom domain and publish to Read.Write.as -- there isn't much more to it that isn't already included in the free plan. If you want to try out everything on Pro, though, let me know your username [0] and I'll get you on a trial. [0] https://write.as/contact https://write.as/contact
- amelius 8y agoI think the main problem to be solved for your audience is "discoverability". How (well) does this project solve it?
- thebaer 8y agoToday I solve this on Write.as with a site called Read Write.as [0], which has a modest, but regular group of readers -- that's my model. So for the WriteFreely project, I'm also building a federated reader app [1] that'll connect to your blog(s), interoperate with other ActivityPub platforms, and be a similar destination for people looking to read, rather than write. You could imagine people hosting the two platforms together to create mini-Mediums across the web, which also communicate with each other. Otherwise, as things are today, enabling people to follow your blog from the fediverse means they can read your posts right in their social media streams and share them with their followers by clicking one button. [0] https://read.write.as https://read.write.as [1] https://read.as https://read.as
- localhost 8y agoI've been on the lookout for a lightweight blog engine for a while. This looks really nice! Some suggestions for you: - You might want to include a direct link to your sample editing experience from the page linked to above. I found it on your Github. - I think it's really important to support "import image from clipboard" - much like what Twitter does, for example. This is huge for usability, especially for folks who don't want to / don't understand how to embed images into blog posts.
- thebaer 8y agoThanks! This is great feedback -- I'll be sure to incorporate it. Otherwise let me know if I can help with anything as you get set up.
- dangom 8y agoFor folks who don't know how to embed images into blog posts, how do you do that?!
- thebaer 8y agoWe'll eventually build in image uploads, but for now, you need to upload them somewhere and then use a little Markdown to insert the image:  Here's a guide: https://guides.write.as/writing/#adding-images-to-posts https://guides.write.as/writing/#adding-images-to-posts
- porkloin 8y agoVery cool to see more action in the ActivityPub space – one of the nice aspects of the federated model is that more users of the protocol have a function of accumulative user bases, not directly competing with one another. So in the future when Plume (a W3C sponsored ActivityPub blogging platform) eventually launches, there's no reason for WriteFreely and/or Plume readers to really worry about which platform a given author uses!
- PushTheSkyAway 8y agoVeganlbc.com
- PushTheSkyAway 8y agoVeganlbc.com with vegan cheese pizza.
- SamWhited 8y agoHere's an arch package, let me know (on the AUR, not here) if you notice anything wrong: https://aur.archlinux.org/packages/writefreely/ https://aur.archlinux.org/packages/writefreely/
- thebaer 8y agoAwesome! Thank you!
- innocentoldguy 8y agoI like that there aren't any "likes" or "claps" in WriteFreely. These always feel like argumentum ad populum mechanisms, designed to give a false sense of legitimacy to the content.
- tomcam 8y agoGreat point. I upvoted your post to give it more legitimacy…
- skiman10 8y agoI just realized that you are the creator of the extension "Make Medium Readable Again" and would like to thank you so much for doing just that!
- thebaer 8y agoHah, indeed. Happy to help make the web better in many ways :)
- koehn 8y agoI set up a [docker image for writefreely](https://gitlab.koehn.com/docker/writefreely https://gitlab.koehn.com/docker/writefreely) and I love the clean and minimal-yet-everything-I-want UI. Any chance you'll open source snap.as so I can self-host my images?
- thebaer 8y agoNice! I'm going to follow a similar path for Snap.as and the rest: getting the product right as a hosted platform (only worrying about a single configuration, not doing additional project management, moving faster, etc.), and then go open source when it's essentially "finished," like Write.as is. Especially while the company is still working toward sustainability, I think this is the best way to keep our focus on building a great product, ensure we continue growing, and build for our primary users (non-techy folks).