[HN Gopher] Show HN: A simple blogging platform I built out of f... ___________________________________________________________________ Show HN: A simple blogging platform I built out of frustration with other tools Author : SkyLinx Score : 157 points Date : 2021-05-23 12:53 UTC (10 hours ago) (HTM) web link (www.dynablogger.com) (TXT) w3m dump (www.dynablogger.com) | webdevlion wrote: | Hi, congrats on launching! I can see that this project will be | giving quite a few companies a run for their money! | | I was curious about your email-as-a-CMS solution. How does it | work? Did you take inspiration from an existing project that does | this? | | I am aware of how Amazon uses something similar to allow people | to email PDFs to their Kindle devices. But I am very interested | in how you got your solution to work. | | Cheers! And thank you! | SkyLinx wrote: | Hi! And thanks a lot for the nice comments! :) | | To be honest I borrowed the idea of publishing via email from | Hey World. That platform is too minimal but it's nice that you | can post also by sending an email, so I implemented this | feature in DynaBlogger right away because I think people might | like it :) The way it works is very simple. Each blog gets a | unique email address, you or another user with access to the | blog sends an email to that address and the post is published | immediately. Images and code blocks are supported. The format | is expected to be Markdown, so it's best to send the email as | plain text to avoid complications depending on the email | client. For now the editor in the app is Rich Text only but I | am planning to add Markdown there too if I see it requested. :) | | Thanks again for the nice feedback! | webdevlion wrote: | Thank you so much for the information! | | Did you implement the email feature in DynaBlogger from | scratch? | | I have been on the look-out for open-source projects that do | email-as-a-CMS for a long time. I build websites and blogs | for companies and individuals, and any CMS that I include | (other than self-hosted Ghost) is very harsh on the content | teams of these companies. | | They are non-technical people who don't understand | frontmatter and markdown. Email looks like the perfect | publishing medium for this demographic. | | Can you give me some direction on how I can build myself an | email-CMS solution similar to what you have implemented in | DybaBlogger? Thanks! | SkyLinx wrote: | Sure! DynaBlogger is a Rails app, so I could use some built | in support for this called ActionMailbox. It's pretty | simple really and it supports various email services. I use | Postmark for this :) | webdevlion wrote: | Perfect! You have given me enough information to get | started. | | Thank you! And all the best for DynaBlogger!! :) | jjice wrote: | The email option is a simple concept, and it's the simple stuff | that we often look over. I'm a big fan, nice job! | | $8 a month seems like a great price point for a fully managed | service. Just out of curiosity, what's the plan if someone's blog | gets a lot of attention and ends up using quite a bit if | bandwidth? I don't think that'd be an issue unless there are a | ton of images, but I'm always interested in how devs choose to | handle these edge cases. | SkyLinx wrote: | Hi! Thanks for the nice words! :) For now I am not limiting | traffic etc because I'm still in the beginning so I'll see how | it goes. I have a ton of bandwidth paid for with the servers so | it will be mostly a matter of load on the servers in the end. | But for now the Kubernetes cluster costs me just 70e/mo with | quite a nice amount of reasources. It's cheap because I manage | everything myself. I can scale with one click, but if I find in | the future that some user use a lot of resources then I will | implement some limits and perhaps more plans. For now I want to | keep it as simple as possible :) | throwawayboise wrote: | Is the secrecy of the blog's email address the only thing | protecting anyone from posting to a blog via email? | | "From" headers on emails are easy to spoof, and it doesn't look | like you're requiring digital signatures. | SkyLinx wrote: | At the moment authorization relies on the secrecy of the | unique address, yes. I wanted to keep it simple. As long as | you don't share that address, which is close to impossible to | guess, you should be fine. Is there something else you would | recommend I implement, that doesn't impact on usability? | Thanks! | ithkuil wrote: | Is it easy to regenerate that address when I want to? | SkyLinx wrote: | Not currently, but it would be a few minutes work to add | that possibility. I'll take a note about it :) | throwawayboise wrote: | I'm not an expert here, but I suppose that only processing | emails that have pass all the SPF/DKIM/DMARC checks would | help. This may be something your email server already does, | before your app ever sees the emails. | | Otherwise, requiring a digital signature doesn't seem like | a huge usability hurdle to me, most email clients support | this pretty routinely. | ipaddr wrote: | That would be such a big hurdle for the average user. The | risk is low and the subject(blog) makes this a low | target. | SkyLinx wrote: | Yeah I think it would be a little overkill. The unique | email addresses are almost impossible to guess so you | just need to make sure you don't share them with anyone. | cbradford wrote: | This is very cool and a solution I think the world needs, simple | blogging. Question: Would you consider a pricing model to allow | self hosting? | SkyLinx wrote: | Hi! Thanks for your comment, I appreciate :) I am considering | an option for self hosting. Need to think about it on how to | make it work, but for now I am focussing on the hosted solution | :) | ______- wrote: | > Would you consider a pricing model to allow self hosting? | | I remember I self-hosted a Ghost blog and mirrored/served the | content with a CDN. It was tricky because once I changed a | post, or altered the blog's code, the CDN had to be manually | cache-busted if there was any change on the VPS instance of the | blog. I done that a scary amount of times, making me believe | blogs & blogposts are never 'finished'. | | Some of my posts were picked up by various news outlets and | that spiked the traffic. I was thankful I served it from a CDN | because my Digital Ocean instance surely would have went | offline due to the attention / hug of death. | | Does Dynablogger handle traffic spikes gracefully? | SkyLinx wrote: | Hi! It's hosted in Kubernetes so I can add nodes with one | click if needed :) I am getting around 450-500 concurrent | visitors at the moment and 2K total uniques since I posted | and it's like nothing is happening. So in away this posting | is a good test as I am still 1st on the front page I think :) | | Static site generators I nice, but I just prefer hit and save | to publish immediately. As for CDN and caching, DynaBlogger | uses Cloudflare as CDN and does a lot of caching of the | dynamc content too. | ______- wrote: | Cool. Good to know that. I wish you luck with it. | SkyLinx wrote: | Thanks, I appreciate! :) | amzans wrote: | Thanks for the transparency, it's cool to see other | bootstrapped founders running Kubernetes :) And congrats on | the launch! | alanfranz wrote: | Sidenote: unless you think you can get really, REALLY | popular, you won't hit a CDN-deserving load. | | My own homepage/blog is hosted on a cheap 100mbps box on OVH | (the server has 16gb of RAM but the CPU is from ~10 years ago | or so); I use self-hosted Ghost with a caching nginx reverse | proxy. Cache expiration is around 30 minutes (I think). The | price for such box is around 20 EUR/month for the whole | server. | | In order to crash such an instance I'd need an insane amount | (of course now that I need the hard numbers I cannot find the | log I had dumped at the time with Locust) of simultaneous | users - something that never got close to happening, not even | in those couple of times where I reached the frontpage on HN. | My best posts got the box/bandwidth at around 1% the load | that was needed to start dropping a significant number of | requests. | | Don't optimize for the problems you wish you had. | josephg wrote: | > Sidenote: unless you think you can get really, REALLY | popular, you won't hit a CDN-deserving load. | | I don't agree. A few months ago my blog post on CRDTs got | 100k views within a week after landing on the top of HN. | It's just hosted on ghost with some poorly written custom | theme that loads a ton of CSS for some reason. The VPS I | host it from wouldn't have dealt with the traffic - it | served over 50 gigs within a week; and that's over my VPS's | monthly cap iirc. | | I have the whole site behind Cloudflare's free plan and it | handled the load flawlessly. And cloudflare also makes the | webpage load faster for everyone. It seems like a no | brainer to me. | NorwegianDude wrote: | 100k hits over a week isn't much all things considered. | | A static blog post that requires ~0,5 MB of transfer can | be easily served from low powered server in an hour. | That's only slightly above 100 Mbps and 27 rps. Servers | are fast, much much faster than that. | | Of course, poorly written code might make any solution | too slow. | SkyLinx wrote: | Agree, that's not much. Since I submitted this I saw up | to 2K concurrent users at some point when I was 1st. | Would be nice to have this sort of traffic for a week! :p | chrisweekly wrote: | Friendly reminder that the CDN doesn't just protect the | origin server from excessive load, it can also drastically | improve end-user latency. | SkyLinx wrote: | Totally, that's a very important reason to use a CDN. | SkyLinx wrote: | Hi! The Kubernetes cluster is managed by myself so I have a | pretty amount of resources for just 70e/month, and I can | scale with one click. I plan on writing about the infra. Of | course I'd like to think that this project will work, so I | was happy to prepare for it. I enjoy devops besides coding | so I am happy to do this. I need to consider what would | happen if, say, a couple of my users hit the front page of | HN at the same time or things like that. Already myself I | have seen a peak of 2K concurrent users since I posted | this, so I don't want to crash easily. :) As for the CDN, | it's also for performance/reduced latency. | infide1castr0 wrote: | Congrats again on launching - appreciate the openness and the | project seems interesting! Simple question here, as I somehow | always seem to miss this feature on most blog sites, does this | project handle pdf hosting as a blog post? | deepdmistry wrote: | Hi, great implementation, i was curious if there was any plan to | offer a pricing per blog or something of the sort. I don't write | too much even though id like to, so 8$/mo seems steep to justify | me writing once in a while. So a pricing per post or something | might be awesome | agentdrtran wrote: | any plans for a self-hosted version? | SkyLinx wrote: | Hi! You're the second person who asks about this :) For now I | am focussing on the hosted version but I will consider a self | hosted option at some point. | [deleted] | jameshart wrote: | > A simple blogging platform I built out of frustration with | other tools | | I like this phrasing. Many of the best things are made out of | frustration - it might be one of the most important building | materials for software. | | 'Cool blogging platform! What's it built out of?' | | 'Frustration' | | Definitely better than building one out of fear, anger or greed. | | Actually, in some seriousness, I think stackoverflow was built | out of anger - and used that to clearly define what their | differentiators and value proposition were. So maybe hanging on | to that original motivation could be an important part of setting | out what makes this different. | | Anyway, congratulations on launching. | ytjohn wrote: | One place I worked followed the principals of ODD. Depending on | the context, it was either Outage Driven Development or Outrage | Driven Development. | SkyLinx wrote: | I like that :D | SkyLinx wrote: | Hi! And thanks :) Not sure if frustration is the right word | (not native speaker) but I wasn't happy with existing tools for | a reason or another so I thought why not build one that I truly | like :) | officialjunk wrote: | Sounds like the right word here. | SkyLinx wrote: | Thanks for confirming. Sometimes the translated equivalent | might be misleading :) | bullen wrote: | I also made a wordpress alternative: http://sprout.rupy.se | | It's open source (https://github.com/tinspin/sprout), but I doubt | anyone would pay for it if I scrounged up some hosting? | | What are the numbers on this project if it's not to blunt to ask? | | Also what programming language did you use? | SkyLinx wrote: | Hi! The app is written in Ruby on Rails :) So far I have around | 100 users I think. I am getting new sign ups now since posting | this so looking forward to seeing where this goes :) | bullen wrote: | Not bad! Thanks for being open! Good luck! | SkyLinx wrote: | Thank you! :) | SkyLinx wrote: | Hello HN! | | Maker here. I've made a ton of improvements (like, a lot) over | the past 8 months and I'm excited to share an update with you all | on DynaBlogger. | | As a web developer, I very often find solutions to problems in | blogs, so I like to give back by publishing a post whenever I | find a solution to a problem on my own or learn something new. | | For my blog I have used many tools over the years, from a | heavyweight CMS like WordPress to static site generators and | everything in between. I do prefer using a CMS for this, so I can | just edit a post, hit publish and be done with it, rather than | writing a post locally and pushing to a repo waiting for CI to | actually publish it. | | So I have used WordPress for most of the time, but I never felt | comfortable with it somehow. For one, it's often overkill for | simple sites and blogs; second, it's not always easy to keep a | WordPress site fast and secure. I have never considered | alternatives like Medium because I want to own my content on my | domain and be free to customize my blog as I please. | | So I built DynaBlogger out of my own need and I've been hacking | on it for some months now. With DynaBlogger I propose an | alternative publishing platform that has all the essential | features most people need, and nothing more, for a focused | writing experience with no distractions. | | DynaBlogger differs from a heavyweight CMS like WordPress in that | it offers a simplified setup with no plugins and not too many | settings etc. | | However, it also differs from the several "minimalist" | alternatives available because it's not too barebones and offers | the ability to fully customize your theme with the built in code | editor, if you wish. You can edit templates directly in the | browser as well as upload assets and see changes in realtime. You | can have multiple themes installed with one active, so when you | make changes you can work on a copy and activate it when ready. | No need to work on files locally, and upload a new version of the | theme to see the changes with your content. Pretty handy. | DynaBlogger doesn't have many themes yet but I will be adding | more over time, and soon any user will be able to share a theme | on a marketplace with other users (maybe even sell them at some | point). | | Perhaps the most similar blogging platform to DynaBlogger is | Ghost, with a few key differences. DynaBlogger doesn't offer | newsletters and memberships yet (perhaps in the future), but it | offers easier customization of the themes and is more affordable. | DynaBlogger also cares more for some details concerning for | example SEO, redirects, publishing via email, etc. | | It's a fully managed platform, so you can just focus on writing | content and everything else is taken care of. | | Tech stack for the curious: | | - App written in Ruby on Rails - Postgres for the data - Redis | for background jobs - memcached for caching - Hosted in a | Kubernetes cluster managed by myself | | I would appreciate if you could give it a try. You can sign up | for a free 14 days trial and if you decide to stay, please use | the coupon code 6649CB68 at checkout for a 15% discount. You can | also import content from a WordPress or Ghost blog, so you can | try it with your own content. | | Let me know if you have any questions or any feedback, really! | vdddv wrote: | Hi, could you share some examples of real blogs built on the | platform? Thanks | SkyLinx wrote: | Hi! The best example for now is my own blog since it has | quite a bit of content https://vitobotta.com/ - it's a blog | about programming and devops :) | freehrtradical wrote: | > You can edit templates directly in the browser | | Do the templates contain code? | | WordPress used to have a feature to edit PHP plugin code | through the browser and it was a security nightmare. If you | allow code editing, I suggest disabling it by default and when | an attempt is made to enable it, send an email to the site | admin to confirm before enabling. | SkyLinx wrote: | Hi! The templates use Liquid, a very simple but powerful | markup language based on HTML. It takes a few minutes to | learn! It's the same markup used by Shopify - they created it | https://shopify.github.io/liquid/ | | It's very safe though, it cannot execute harmful code :) | bernardv wrote: | Simple is good. I like it. | SkyLinx wrote: | Thanks! Glad you like it :) | iamgopal wrote: | Nice Start. Just other day, I was thinking about a feature that | is missing here, and see if you can add it, is the possibilities | of the blog and site to be alive long after someone dies, | probably to the end of the internet. Even after their credit card | stops etc. ( Probably for a one time fee, add tech that is | distributed etc ). | SkyLinx wrote: | Hi! I like the idea actually. How much would you pay for this | feature? | inson wrote: | Great job, congrats on launching. Would you mind sharing the | software stack you're using for that? | SkyLinx wrote: | Thanks! Very happy so far with how it's going. The app is | written in Rails, and I use Postgres/Redis for the data and | memcached for a lot of caching. Everything is hosted in a | Kubernetes cluster than I manage entirely myself. Ask away if | you would like to know more :) | yuvalr1 wrote: | Why did you choose to manage the k8s cluster yourself and | didn't go with a managed service, that may arguably save time | and maintenance? | SkyLinx wrote: | For one it's a lot cheaper - I use Hetzner Cloud and I have | plenty of resources for just 70e/mo. But I also like devops | etc so I don't mind it :) Later of course I can switch | easily to a managed service if needed. | yuvalr1 wrote: | Indeed important :) I wonder what is the difference in | price. Thanks for sharing! | gtirloni wrote: | This looks very good, congratulations. | SkyLinx wrote: | Thanks a lot! I appreciate it :) Let me know if you have a | chance to give it a try and have any questions or I can help in | any way. | andrewfromx wrote: | pretty cool. The coolest idea I've seen recently with competition | to substack is https://subclout.com/ where they almost cloned | substack, down to the UI, but it runs on the clout system. | SkyLinx wrote: | Hi! And thanks :) I think I will likely need to add | subscriptions etc if I see that it is requested. But for now I | want to keep it simple :) | spullara wrote: | Luke W and I made a blog platform for him in an afternoon on a | Saturday years ago. Works pretty well. They aren't hard to build | IMHO and if you write it yourself it just does exactly what you | want it to do: | | https://www.lukew.com | SkyLinx wrote: | For me witb DynaBlogger the thing that took most of the time | was implementing the themes so that they can be edited by the | users. A blogging platform isn't rocket science but can be | challenging for some things. :) | spullara wrote: | In this case it isn't a blogging platform per se, it is a | single blog for one person. Luke's a designer that can also | make any changes necessary. | SkyLinx wrote: | Oh I see, I thought it was multitenancy etc :) | stanislavb wrote: | Can you see the revival of blogging and RSS? | SkyLinx wrote: | hi! I think that blogs won't "die" easily. Sure social media is | all the rage these days but most quality content is usually | found on blogs in my experience. I find help in blogs on | countless occasions in my job and I am sure that this is true | for many other people too :) | cpach wrote: | I really agree. For example in infosec, lots of valuable | texts are published on blogs. Then the author spread them via | e.g. Twitter. I don't see that way of publishing going away. | SkyLinx wrote: | Exactly! I find it funny that every now and then someone | says that blogging is dead and things like that. I don't | see it happening any time soon as well as I don't see | people publishing e.g. long form essays etc on Facebook. | dt3ft wrote: | Just something I noticed: the pricing information on the | frontpage and the pricing page does not seem to match. | SkyLinx wrote: | Hola! Just checked and am not sure what you mean :) Pricing is | $8/mo billed yearly ad $9/mo if monthly. Should I make this | clearer on the home page somehow? Thanks! | klausjensen wrote: | The pricing is clear to me. :) | SkyLinx wrote: | Thanks! | mastrsushi wrote: | This is cool and ambitious, but isn't it a bit like David vs five | Goliaths? | | What does this do exactly that the average blogger would choose | over WordPress, Ghost, Wix, Blogger, Tumblr, and many others? | | Is this aimed at the average blogger? If it's for tech people | then you have a chance for a niche platform. | SkyLinx wrote: | Hi! DynaBlogger targets mostly users who don't need WordPress | which is a beast and has a lot to offers because it's designed | to create many kinds of websites, but like I said in the OP | it's often overkill if you just want to publish content easily | and quickly. It has just the features that most people truly | need to publish content but it's not too "minimalist" at the | same time. It's a balanced option IMO :) I know that there are | several other options of course, but most of them are website | builders (so kinda different) or by companies like Google who | you pay with your privacy. So I am hoping that some people | share the same views :) | andmichael wrote: | Good job, functionality fits my needs and the UX is really good. | One suggestion, seeing as though the whole thing is cloud-based | and I can't really be sure dynablogger will be maintained | forever, it'd be nice to have an option to export the blog | content to your own machine. While I could just ctrl+c ctrl+v, I | think it's more convenient to be able to export all at once. | SkyLinx wrote: | Hi! Import and export is on my list already. It will be | possible to export both in json format (so for example you can | move content between blogs in DynaBlogger) and to plain HTML so | in the worst case scenario, the user can just export to static | pages and publish them quickly on Netlify or something. Having | said that, DynaBlogger doesn't cost me much to run now and it | will be even easier once I have a bunch of paying customers, so | I am definitely committed to keep it running for as long as I | can :) ___________________________________________________________________ (page generated 2021-05-23 23:01 UTC)