Ask HN: What technologies should I use if I am building a blogging platform?
Hi HNers,
I am working on building a blogging platform. This is my first attempt at building a CMS but I wish to build something similar to medium/tumblr.
Do you guys have any helpful resources/ suggestions?
Thanks !
3 comments
As someone who recently re-built his own blog/site, I can offer you some of the insights I went through. May not be applicable for every use case, keep that in mind.
1) Input formats:
Markdown is the default for many blogging. It is limited, and if you want a bit more than a bold text, it will get into your way. As most products support markdown, if you settle with this, you'll be just on of the many (but it is a low-risk choice).
WYSIWYG editors are mediocre at best, but may work for blogging UI. The benefit of using these is that you are not really limited and can use any HTML feature. If there is an advance in the editor, the app gets it without much effort. The downside is that it will be HTML only, not much support for pdf or similar output formats, but most bloggers won't really care.
Asciidoc: This is my choice, because it is easy to version control, and use for various purpose. Generating docbook then HTML is very easy, complex UI structures too.
2) Static vs dynamic site:
Most blog content is static, yet no blogging platform offers good editor workflow and good static export at the same time. Static content is also faster and cheaper to host, so this is a thing that you can optimize for.
If you are planning a hosted service, one idea is to provide the editor workflow as the service, and publish the articles to S3 or similar platforms for hosting.
3) Social, comments:
For some, social integration and comment system is important. I don't mind having a blog without any of these, so it may work. Disqus, livefyre and other javascript-based comment systems are easy to integrate anyway, so if you need these, there are some tools to start with.
Sharing button is two-fold. Having an explicit policy that you won't help to track your readers through these button could make you apart from the competition, but of course it will provide less "engagement".
4) Tech stack:
Almost anything will do. CMS, blogs, websites can be parallelized by design, and even if you start with something monolithic, and got some traffic, it will be easy to scale it later on.
1) Input formats:
Markdown is the default for many blogging. It is limited, and if you want a bit more than a bold text, it will get into your way. As most products support markdown, if you settle with this, you'll be just on of the many (but it is a low-risk choice).
WYSIWYG editors are mediocre at best, but may work for blogging UI. The benefit of using these is that you are not really limited and can use any HTML feature. If there is an advance in the editor, the app gets it without much effort. The downside is that it will be HTML only, not much support for pdf or similar output formats, but most bloggers won't really care.
Asciidoc: This is my choice, because it is easy to version control, and use for various purpose. Generating docbook then HTML is very easy, complex UI structures too.
2) Static vs dynamic site:
Most blog content is static, yet no blogging platform offers good editor workflow and good static export at the same time. Static content is also faster and cheaper to host, so this is a thing that you can optimize for.
If you are planning a hosted service, one idea is to provide the editor workflow as the service, and publish the articles to S3 or similar platforms for hosting.
3) Social, comments:
For some, social integration and comment system is important. I don't mind having a blog without any of these, so it may work. Disqus, livefyre and other javascript-based comment systems are easy to integrate anyway, so if you need these, there are some tools to start with.
Sharing button is two-fold. Having an explicit policy that you won't help to track your readers through these button could make you apart from the competition, but of course it will provide less "engagement".
4) Tech stack:
Almost anything will do. CMS, blogs, websites can be parallelized by design, and even if you start with something monolithic, and got some traffic, it will be easy to scale it later on.
If you don't mind the "i want some text rendered by the server!!11" crowd, go with https://www.meteor.com/ . From account management to data persistence, it should get you started in a few hours until the core functionality is done with Meteor, with modern stuff like soft-realtime-updates and collaborative features included out of the box.
The UI and UX parts will require substantial more amount of time, but stuff like the medium WYSIWYG editor is already avaliable for you: https://github.com/donflopez/meteor-medium-editor if you like it.
With seamless includes of additional packages your and your client's sites will be crawlable, too. You may read http://blog.plague-dev.de/posts/meteor-isomorphic-fullstack-... for more intersting bits about meteor's capabilities.
The UI and UX parts will require substantial more amount of time, but stuff like the medium WYSIWYG editor is already avaliable for you: https://github.com/donflopez/meteor-medium-editor if you like it.
With seamless includes of additional packages your and your client's sites will be crawlable, too. You may read http://blog.plague-dev.de/posts/meteor-isomorphic-fullstack-... for more intersting bits about meteor's capabilities.
Hi!
I was planning to create one Blogging Platform using AngularJS and Firebase as backed.
Then I was thinking that using Angular $resource, maybe we can isolate the backend and create a Blogging Platform entire based on frontend (AngularJS). And let the community create adapters for backend. For example, we even can use Trello as backend using Trello API.