Show HN: A simple blogging platform I built out of frustration with other tools
dynablogger.com
dynablogger.com
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.
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!
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!
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!
Thank you! And all the best for DynaBlogger!! :)
$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.
"From" headers on emails are easy to spoof, and it doesn't look like you're requiring digital signatures.
Otherwise, requiring a digital signature doesn't seem like a huge usability hurdle to me, most email clients support this pretty routinely.
If the barrier is technical abilities, trying to set up public/private keys and/or signing the emails could hinder adoption.
Cool thing, man.
[1] https://github.com/spc476/mod_blog
[2] I could check the From: field, but the majority of the email processing is shared with the "local file submission" feature.
I'm not sure how they do this under the hood, but if anyone knows, please let us know.
The Evernote feature has an additional layer of awesomeness... As it is mainly used to email items into a specific Evernote notebook, you can choose which notebook to send this magic email to, by adding @notebookname to the email subject. Hashtags that follow the notebook are added to the note as well.
Dynablogger is really cool! I'm signing up now and look forward to diving in. Great work!
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!
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.
It's very safe though, it cannot execute harmful code :)
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?
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.
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.
But is the added complexity worth the whole thing? For a personal blog?
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.
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.
Other (probably more important things):
"About" seems to be the history of the project, but maybe it could be a high-level overview of the experience one might have using this blogging platform. Maybe a some screenshots to make clear how editing works and how close it is to the (more expensive) Wordpress experience.
The export feature is high on my list. It will be possible to export the content both as json and as plain static HTML that can be deployed as is on some static site host.
Backups: for the data, I have in place 3 levels of backups stored in two locations, including point in time recovery. Even in the worst case when something major happens say to the datacenter and I need to migrate somewhere else, I can do that with no to minimal data loss very quickly. The assets (images etc) are stored in two object storage buckets with mirroring with two different providers.
Before launching I have been testing backups and disaster recovery throughly while I was testing various providers, so I have migrated the platform a number of times even with no downtime. Therefore I am pretty confident that it works :)
Thanks for the suggestions on the About page. I thought that people might be interested in knowing the "why" I built this given that there are some wildly popular options already. I will take a look at adding some info about the user experience. Thanks!
Or just make the title “untitled” then add some CSS to hide it :-)
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?
I personally love the devil I know too much: Wordpress, but if I was less techie, and frankly tightass (Wordpress hosting for unlimited sites is $60/y or so) I’d use something like this
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.
Yes. Regardless of how common it is or how many other companies do the same thing, "$X per month billed yearly" is a really stupid way to say "$12X per year".
Cut the bullshit. $96 per year. That's what the subscription costs.
There was a clearly stated argument, which was opinionated, and which you might agree or disagree with, but ad hominem remarks (like "you sound angry") are not a substitute for disagreeing or agreeing with substance.
Only slight downside i can see is that it deters the person to publish content since it costs to do so, but i think if you are driven enough to publish anyway, a minor fee is not something you'd mind, esp if you are choosing this over some of the free platforms.
or should that be