Hacker News new | past | comments | ask | show | jobs | submit login
It Took Me a Decade to Find the Perfect Personal Website Stack – Ghost+Fathom (davidgomes.com)
136 points by davidgomes on July 9, 2023 | hide | past | favorite | 181 comments



> I actually pay Ghost roughly 200 euros per year

> I just write them in Notion, and then I copy-paste them into the Ghost editor

> every now and then I have to hack some CSS together to fix some bugs

> the theme can only be compiled with an ancient version of npm

> the code is really messy, so at some point I won’t be able to maintain it any longer

> images don’t work very well with my theme

To each their own, but to me this sounds like an absolutely terrible "website stack"


Well and later they admit:

> So, all in all, I’m paying almost 400 euros per year to host a personal blog.

Seems...a bit much. But what do I know? I've just been using Jekyll since 2013. For a long time now Github has had first-class support for Jekyll and so I haven't even had to mess with Ruby for many years now, I usually just edit it online in the Github UI. I pay $0 a year for this service so my only cost is DNS.


Why is this even on HN? It seems like a terribly confused blog post, about a terribly inefficient stack.

To create any static site, including blogs, I just use hugo, maybe a custom theme, edit it in any editor, including the online one at github/gitlab, once it merges/pushes the CI/CD script is just 3 lines and 2 of those deal with aws.

And of course the pricing depends on the traffic but s3 and cloudfront can handle a lot of traffic before it starts getting out of hand.


Because that link to ghost has a ?ref=


It seems that quite often the article itself is pretty irrelevant if the topic is interesting. Aka "nobody reads the article, only the headline".


Hey, I do the same but using Jekyll instead of Hugo, using S3 and CloudFront, I have only been charged 0.00 so far but why do you say that the pricing would get out of hand? Isn’t CloudFront there to cache the results so that the pricing would not get out of hand?

This is my blog post about how I set up my blog: https://blog.burakcankus.com/2023/04/23/getting-a-blog-runni...


Well I'm speaking theoretically because I haven't reached that point with any of my sites. Of course you should have a budget alert in AWS first of all.

But theoretically there is no such thing as a free lunch, and bandwidth costs money. Even cache hits in cloudfront generate bandwidth. A cache can't magically transfer text to your clients, it's still using transfer cost outgoing from cloudfront cache servers.


> Why is this even on HN?

I'm no authority on this topic, but maybe because it still sparks interesting conversations.


I pay $0 a year to host my Next.js website on S3.

I use MDX to write posts. I have CI/CD set up to auto publish when I push a new post. It's a simple set up (for a developer).

I don't get why one would want to or need to pay hundreds of dollars each year to host a simple blog, especially if that person is technically inclined. There are cheaper/free options.

Even your average Squarespace/Wordpress/Wix user will pay less than 400 euros a year. This sounds like the exact opposite of "perfect" to me.


> I pay $0 a year to host my Next.js website on S3.

It's only free while you have no traffic. Getting a single post on the top of HN could cost you e.g. $10.


I find the idea of using AWS for personal use absolutely terrifying. You are signing up for literally unlimited costs. If my site gets ddosed, I don’t want a $100,000 bill, I want the site to go offline.


Honestly this is a valid concern. I am not knocking AWS and they are working with us but $100000 in one week from bad code in a Java service is really nerve racking. For the record the only reason I use AWS over other clouds is because they actually work with you when stuff like this happens. ( Its taking a long time but we are hopeful)


then use Lightsail or set a maximum size for your ec2 autoscaling group


Or stop overengineering and use a PaaS like Netlify.


But outbound traffic


Cloudflare Pages is free.


It's very odd that AWS doesn't support spending caps. A lot of other services and paid APIs I use have them, and they save me a ton of stress.


As long as enough people use AWS despite the lack of spending caps and the stress it causes, it just means Amazon effectively monetizing your risk tolerance.


I would prefer to pay like this, especially since I'm not writing a ton of blog posts. To me it's better to pay $10 for a viral post than pay $10/month continuously with little traffic. It depends on your use case though. Low traffic sites like mine are great for hosting on S3.


Same but Astro on Vercel's free tier. If my traffic suddenly spikes 1000000x, my site might go down temporarily. That's ok.

Paying $400/year to get some static html based on markdown for a personal website seems insane to me.


Jekyll is great.

Fashions with things come and go, but Jekyll is still around.

Much faster now too, thanks to improvements to Jekyll and importantly Ruby!

Compile times used to be painful, especially with inclusions and data files, but now I don’t have any noticeable build time pain!

Cloud Cannon is a great service to run Jekyll on, but not free I don’t think.


+1 for Jekyll, I just recently came back to it after giving up on trying to upgrade my Gatsby 3 theme. It's a beautifully scoped project. A script that spits out HTML from templates, and some markdown. It's all you really need.

I'm sure Hugo is also great for the same reason, just haven't had a chance to mess with it.


especially on top of GitHub pages. it's free, as far as I can tell, and lets you have a custom domain


Same with other services like netlify and vercel


I use jekyll for many sites, most aren't even blogs. But it's really slow to compile and there's not many plugin options so you have to try to write them yourself in ruby except documentation for writing your own is scarce and insufficient.

I also wish there were an easier way up make an api call to get data to use within the template.

I tried migrating to hugo for these reasons but i'm not a fan of hugo syntax and i couldn't figure out how to setup a non-blog site.


As someone who's manually setup Ghost blog, I'd heavily advise towards just paying for Ghost hosting. I wasted hours setting it up, and I gave up when it came time to configure emailing.

Anyway, here's my blog post on it. I actually pay 20$ to AWS to host my Captain Rover server, but I have multiple web apps running.

https://rhymesworldwide.com/self-hosting-this-blog/


I had a heck of a time setting it up to self host myself and I am technically inclined. There was one thing misconfigured by default that took me a few hours to catch. Now I’m trying to figure out why the VM stops responding randomly…free sounded better to me at the time


As a long time happy Ghost user, self hosting is far easier than most stacks, and I just configured a new self-hosted instance for a friend this past week (5.x). Aside from a bug with the Let’s Encrypt auto-config (I had to fix the path to the cert in the generated nginx config), it was otherwise an extremely straightforward process.

I used the mailgun integration for mail, which involved adding a few lines to a config file and typing `ghost restart`.

Self hosting will always involve some fiddling, but I’ve fiddled less with Ghost than almost every other thing I’ve self hosted over the decades. Maybe I’m just lucky.


I had the same experience. I've been self-hosting Ghost sites for years now. Cloudflare + Ghost is a really great combination, you can cache your whole site and set up a webhook to invalidate when you update/add something.


No wonder people still use wordpress.


I don't think it would be too much to say something like a low-end VPS on AWS or Digital Ocean for a personal blog is too much, which would end up running somewhere between $5-10/mo depending on resources/automated backups. At 400 euros, though, they're quite a bit beyond that. I'm a bit curious what their cost per page-served ratio looks like.


If his stats are correct the numbers are right there. It’s roughly 100k views in around 2800 days. So that 36 views/day. If it’s 400€/year then it’s 1.10€/day to serve those 36 views so we’re looking at around .03€ per view? That seems like a lot.


> I've just been using Jekyll since 2013. For a long time now Github has had first-class support for Jekyll and so I haven't even had to mess with Ruby for many years now, I usually just edit it online in the Github UI. I pay $0 a year for this service so my only cost is DNS.

Jekyll remains one of the most robust solutions for small projects and blogs.


> just edit it online in the Github UI

I do the same but I wish there was a easier way to make a blog post as it's still a bit fiddly. It would be great if it was as simple as sending an email or writing a message in a messaging app.


Seems...a bit much.

I'd bet that a side effect of paying that money is that you're significantly more likely to write posts. That would make it worth the money.


Seemingly the only point of this article about this dreadful process and stack is to gain referrals and make the author money. I'm not sure why its getting upvoted on HN

https://ghost.org/?ref=davidgomes.com

https://ghost.org/referrals/


Why make life so complicated? it is a simple blog. if you don't want to host it just use wordpress. It works.


This. The hilarity of the HN crew when it comes to personal blogging is just endlessly behind compare. “I just boot up a new Docker instance, grunt the next.js out of my Hugo, netlify the MD files and sync my media using my homegrown jamstack media server. It only takes me 25 minutes to publish a post”.

JUST USE WORDPRESS!

If you genuinely find it too hard to self host (and I’m banging my head against the table cos this is HN where people apparently know what they’re doing with tech, and it’s a LAMP stack ffs), then do it on Wordpress.com. Free! Easy! Simple to migrate if you do one day want to self host! No blockers to exporting your content as XML! Or CSV! Or hit up the API!

Funny old lark.


Yep, I agree there. So much stuff to forget. If you wanted to focus on writing, you can open up a notion document to the internet [0] if you want. Just as janky but at least there's only one idiosyncratic off-label thing to forget.

[0] https://www.notion.so/help/public-pages-and-web-publishing


Pelican running on Nginx + cheap £3.50pm vps + £15 annual domain registration. Rebuild and rsync my blog any time there is a new post.

Works out approx. £57 per year.


I just migrated from Ghost because many of these problems, and lack of basic features like an integrated referral system for my newsletter.


Or in my case Sphinx + Material Design + [ my magical list of 10+ extensions ] + VS Code + sphinx-autobuild + tox + GitLab Pages = magic

Send help pls


Lol and I just don't host a public forum of identifiable info anymore. Why give future LLMs any more training data


the "wordpress" button on your old-school $5/mo hosting's CPanel is right there my dude

right there

at any time you could have hit that button and spent a while poking around its immense collection of default themes and installed the "I do not like the block site editor, please give me the old editor" plugin and had a big, empty text box just begging for you to fill it with words, all the time you spent faffing about with jekyll and hugo and ghost and your custom style looking for the absolutely perfect version of the the same black text on white ground style that a zillion templates have been made of could have been spent writing blog posts instead

but I guess you gained some experience fooling around with the technologies underlying Hugo and Jekyll and maybe that was surprisingly useful in other parts of your life, and maybe that was better in the long run?

anyway, good luck putting words in that big blank text box you have finally perfected.


I bounced off the WordPress ecosystem. Most of the themes are targeted towards commercial websites including web shops, rather than blogs, and charge money to buy or unlock features (while making a token effort towards GPL compliance). The Gutenberg editor was dreadfully buggy, IIRC I still prefer a more semantic/Markdown-style editor (like writing blog posts in Obsidian) over the presentational HTML Wordpress classic editor, and converting posts between the two types was a disaster. And static HTML export was tricky to get working as well.


you don't need static html export, you just need a cache plugin

gutenberg sucks though


What's cpanel?


didn't know a hackernews comment could make me feel old with two words


Why? Shared/managed hosting solutions (read: not a VPS) are almost universally running cPanel, Plesk, or Webmin. I guess it was more well known in the days before AWS, when that was how almost all webhosting ran lol


One click Admin page for your server. Install a library of programs, setup email accounts, landing pages, 404,etc. stats


> One click Admin page

Understatement of the year. cPanel feels janky but it works, and works very well. OP could’ve one clicked a Wordpress installation and hammered away with the default theme (which is quite readable already).

My $20 DNS hosting comes with cPanel and I never had to lift a finger on sysadmin.


And Wordpress can do automatic updates.


I have been using Wordpress auto updates for many years now, works great. Once in a while I have to also `docker compose pull` to update the PHP version (~once a year?) Hosting up to date Wordpress instance requires no effort. And Wordpress has a really nice editor.


They stuck their prices up massively in 2019. Put me off having a fun blog. Still not EUR400/year though.


Just to add, it’s included with most shared hosting providers.


I've tried so many different stacks over the years but I always ended up in the same cycle:

- Spend a lot of time finalizing the stack

- Spend a lot of time styling the new blog

- Migrate some of the posts from the old stack to the new stack

- Write a 1-2 new posts in the new blog

- Stop writing

- After a few months, I come back to writing a post and realize there are dependencies to upgrade, scripts to run, and what not. I give up for at least a year.

After 10 years of having gone into this cycle over and over again, I'm currently using the following setup:

- IA Writer -> Gitlab -> Cloudflare pages

To write a new post, I just have to create a new file in IA Writer and save it. That's all.

A bare bones shell script blog.sh converts markdown into HTML (locally on my mac), invokes git push to Gitlab. And there's a 'Pages' project in Cloudflare which listens to changes to my Gitlab repo, and just statically publishes whatever's in the 'site' directory.

I've written more posts in this new stack than ever before. And I think the best part is that I just need to 'create new file' and 'save'.


> After a few months, I come back to writing a post and realize there are dependencies to upgrade, scripts to run, and what not. I give up for at least a year.

What dependencies? If it's just a matter of simple html and css, why not just run a minimal configuration of apache or nginx? Publishing from markdown is not part of your stack. It's your publishing process and independent of the hosting.


I don't think they are complaining about the hosting, but the publication process being brittle.

For example, I use pelican (pretty much 'what if jekyll but in python and more flexible'), and found that every time i wanted to update my site there was a problem with some unmaintained plugin not working with the latest python standard library, or similar.

It's also easy to set up what feels like good process for publishing, only to find that it wasn't as well documented or obvious as you thought the next time around. This is natural for anything semi-complicated that you only do once every 6 months, when you're really trying to get something else done (writing the damn content).

If you already know how to use it, nix is a good solution to this, as you can pin all dependencies (including languages and external tools), and they will still be there and working in a few years.


What if you also didn't use plugins, but a simple script that appends <section> tags to your blog's "index.html" and chunks and links them into whatever number of those you want per page? It's a blog after all. I agree it should be simple. I haven't met a blog "framework"/"platform" I didn't hate from the moment I saw it. Maybe I'm a dinosaur, but this seems trivial. Write this in whatever language you want.


Yeah what I ended up doing was just writing plain HTML files directly in a text editor and hosting everything as plain old static files on my Synology NAS on my home internet connection. Works fine for what I need.


May as well push them up to Github Pages. It's free, source controlled, won't go down if you get a spike in traffic, and most importantly doesn't expose your Synology NAS to the internet which has resulted in many security compromises over the years.


Thanks for the post, I will attempt a similar thing using PowerShell.


Cool, care to share your blog?


This genre of post is really the internet equivalent of being an audiophile.


The difference is audiophiles invariably have good results after spending all that money.


Do they really? A lot of it is snake oil.


Not really. You just end up paying more and more money for equipment that delivers what it promises but the relative improvement becomes harder and harder to discern because you begin to approach the limits of the upper end of audio fidelity.


And by the time you can afford all the expensive gear, you're old enough that your hearing has degraded so you can't hear the difference.


How do you mean? With age, one can hear less and less very high frequencies (above 10kHz), but those are not that critical for music. There are lots of old conductors who can hear 100x more details that I ever had. Many studio engineers for super popular pop records are above 50. Most of the listening is actually in the brain.


Sort of. (I kind of am, or used to be, an audiophile, so I'm naturally very biased on the subject.) Going from low-end to mid-range is a big jump and mid-range to high-end is a modest jump, but high-end to ultra-expensive is typically "not really better, just (slightly) different".

If you're a moderate audiophile then you'll end up with a system that sounds a lot better than what most people will have by default, and then you'll be happy with it and won't change it for years. Given the years of value you get out of it you're not spending that much money.

If you're a stereotypical "religious audiophile" maximalist then you'll be chasing the top of the top and buying obscenely expensive things every month or two for years and years without any perceivable improvement over what the moderate has. This can sometimes manifest as the notorious $1000 audio cables but more commonly it's like spending $3000 on some headphones that aren't really better than a $350 pair. And then doing that over and over and over.


Or any type of connoisseur


I’ve noticed the “connoisseur” types seem to always be miserable. No product is ever good enough, everything has flaws and you always have to spend top dollar to still receive a flawed product.

I fell in to this trap previously. Spent $4000AUD on a huge OLED tv, then when I had to move it was too big to bring so I sold it and bought a similar sized IPS tv for $900. Realised that, yes, I can see the difference between an oled and an IPS tv, but I do not enjoy using it any less. I had spent an extra $3000 and got no extra enjoyment from it.


I've gone this path with audio. Spent some time and effort on a good system (nothing crazy, but I was happy), had to move, just got a sonos system for convenience and because placement of speakers was hard in our new place. Can definitely hear the difference, but I've been happy enough that I've lived with Sonos for 2 years now.


No, I found an exception: cheesoisseur - that is, cheese appreciator. At least in my experience.

From years 0 to 25 I kept my taste in cheese simple. Then, one day at 25 I went to a wedding and tasted a couple strong cheeses that carved a path in my neurons for the rest of my life: Epoisses, Cabrales, Stilton, Queijo Serra da Estrela.

I've been enjoying that stuff for 20 years now. Some of the cheeses are somehow expensive but nothing stupid if compared to gadgets, audiophile equipment, wine or clothing brands.

I can buy 250gr Epoisses at £8, 10$ USD, or 9.5 EUR at a couple major supermarkets in the UK. And let me tell you, all I need in life is a long run in the morning and eating Epoisses at any point in the day. That's the description of heaven to me... the rest is superfluous.


You just sound like someone who enjoys cheese!

A wine connoisseur wouldn't be seen dead picking their wines from the upper mid-range section of a supermarket and would try to avoid actually drinking the stuff where possible, and I assume cheese works on the same principle. To be a true connoisseur you should probably go to an artisanal cheese maker, ask lots of questions about churning process then take a very small piece, tap it lightly to your tongue and mutter "bad mould pairing, not as well aged as the 2019 variety"


I settled on my perfect stack 2 decades ago. nginx with .html and .jpg/.png/etc files in directories on a file system on my home computer with port 80 forwarded (20 years ago it was thttp). For templating I use server side includes which are the perfect balance of utility/expressiveness and a minimal attack surface with no mantainance burden.

Having it on my home computer also gives me massive storage space and ease of editing. The only cost is ~$10/yr for the .com domain. DNS hosting is free from zoneedit (they've been great the last 20 years).


So you have to have your computer always on?

How does the DNS thing work? They use a DynDNS client on your computer or what


Comcast only changes my IP once every 2-3 years. I just manually update it. But zoneedit does have a free dyndns endpoint if your IP does change often.

Yes, I leave my computer on 24/7/365. The webserver/my primary desktop is on a Core2Duo build from 2007 and it still chugging along just fine.


That's nuts. I assume you at least have an SSD now?


I copied the boot and OS partitions to a SSD and swapped it in in 2018. It's nice enough. This machine actually has something like 25TB storage total. I'll probably have to swap that 2018 SDD out soon since SSD don't have indefinite lifespans like the occasional lucky HDD.


Is it? Most people at work just leave their workstations on 24/7 everywhere I’ve worked.


The fact that most people where you've worked have workstations instead of laptops is kind of strange...


Wall Street. The work didn’t come home with you…


I meant the age of the CPU etc. A used $100 cpu from 5 years ago is 10x more powerful...


I have plenty of newer computers in the shared keyboard/mouse span of monitors in my array of desktop computers. It's just that they run newer software and newer software is worse software. Things have been mostly downhill in linux UI since "convergence" with mobile, IBM/Red Hat's dumbing down of Gtk, and the take-over of containers over actually running applications on your OS.


Well, I'm using Linux mint with XFCE on a 2018 $300 laptop and don't have any performance or UI issues...


Try copying a file path to clipboard then using a Gtk3/4 program and opening a File->Open dialog and pasting the file path in. There'll be no text-input area there to paste in to and it will give an error. https://gitlab.gnome.org/GNOME/gtk/-/issues/5872 This has been a known issue since they caused it in 2014 by removing the gsettings to allow for having text entry bars.


declient cron job. No more DNS manual edits.


I do similar but with hugo markdown and a git repo linked with cloudfare - then it’s hosted on their static free hosting.


My recent / favorite stack is Hugo, built by a Lambda function on git merge to the master branch.

I merge a change to master. Webhook triggers. Lambda builds the static site from a fixed version (for consistency) of Hugo (static site generator) and pushes the files to a CloudFront / S3 Website.

I can revisit my site after a year of non-maintenance and can add something without worrying about version changes breaking the site.. I don't even need any special software -- a text editor and git.

(For Rapid development, I generally run Hugo locally, but I can do a typo or link update from any computer very quickly)


Another vote for Hugo from me, except I use GitHub Actions to handle deployments: both on merge and scheduled so we can forward-date posts and not have to remember to publish them.


I also run Hugo via GitHub Actions. It took me about 2 hours of setting up; could've sped the process up enormously if I would've just copy-pasted the hugo-theme's example blog.

https://gohugo.io/hosting-and-deployment/hosting-on-github/

Example blog from one of the popular themes: https://github.com/hugo-sid/hugo-blog-awesome/tree/main/exam...


I did the same... originally, I wanted to use Netlify (just to learn it), but ended up using GitHub because I wanted to do the GitHub Actions deployment stuff on my own, just for fun. Overall, I find Hugo really good. It is easy to set up and has a significantly faster building time compared to Jekyll, Gatsby, and NextJs...


I use Hugo plus Netlify. It’s free and they handle setting up the build step for you. I just push to GitHub/Gitlab and it all happens on its own.


Netlify is superb for this


I found all the common frameworks to be “too much”. I ended up creating Bear Blog which is pretty opinionated, but all you need for a super speedy blog. It’s developer centric and all posts are written in Markdown.

https://bearblog.dev


Super speedy is right. Wow. Loading GitHub after loading the docs was a true case of whiplash. Really goes to show how bloated and inefficient the Internet currently is.


I mean, Github is doing a lot more than the documentation page for Bear, so it's a pretty meaningless comparison.

I'm also a fan of the "only as complex as needed, and no more" approach, but part of applying that approach is admitting when problems have a level of inherent complexity that calls for tools / frameworks to help manage it. The antidote to framework bloat is not the absence of frameworks, it's applying the right amount of them in the right places.


It’s not meaningless at all. GH is not optimized to load quickly. In fact it has so much meaningless fluff abstracting you from working that I would argue it’s a detriment not just to load speeds but use speeds.

While I agree you have to apply the right amount in the right places, the reality is most websites don’t follow this and use many multiples more than they need. Which is why the Internet is so needlessly bloated.


Your character posing tool looks great!


400€ per year on a personal blog? To each their own, I guess.

I host my blogs on GH pages or Netlify. Additionally, I dump the notes I want to share with the world on GH pages as well with the excellent Obsidian Github Publisher [0] Plugin. I don't really care about analytics for a personal blog though.

Works for me, and costs nothing.

[0]: https://github.com/ObsidianPublisher/obsidian-github-publish...


You might want analytics when your personal blog is a medium for pushing referral links though.


I briefly used Fathom and think they are great, especially if you are hosting a static site on something like Github pages, or some other equivalent. Yet I regret that I can't get free server-side analytics. My pages are being served by a server, I just want it to count logs for me. If I ever move back to a self-hosted solution, I'd definitely love to give something like goaccess[1] a try.

Any static hosting sites that provide this for free today?

[1]: https://brandur.org/minimal-analytics


Have a look at shynet maybe? I've yet to use it myself but I'm planning on trying it.

https://github.com/milesmcc/shynet


+1 on shynet! I use it for my personal website and my blog, and it's been working great.

I got it up and running with Podman, so no need to install and run the Docker daemon. I also fixed SQLite support [1], so no need for an additional DB server.

I analyzed available open-source web analytics tools [2] and AFAIK there is simpler solution for web analytics that doesn't involve a third party.

[1] https://github.com/milesmcc/shynet/issues/208

[2] https://blog.fidelramos.net/software/privacy-respecting-self...


I've been looking for this as well (edit: meaning I want HTTP traffic info without running my own server). The closest I've found so far (for low traffic sites) is NearlyFreeSpeech.net, which provides HTTP logs. It's cheap, but not free (edit: roughly $2/month--and I think you can go even lower for a single personal site).


for just tracking visits on a toy site, i use OpenResty + a bit of Lua and Redis, doesn't require cookies or javascript. never stress tested it tho


Not a traditional blog, but i was looking at a service for my photography. I eventually almost went with squarespace. But felt pricing was too high if you wanted to add your own custom CSS etc. Also felt bit bloat and I wasn't happy with the templates.

In the end I just made my own from scratch and just use S3 for hosting [manual uploads, as i don't update it often]

simple HTML responsive grid, using tailwind CDN. No build steps.

https://www.stayanotherminute.com/ [yet to compress images, currently 14mb worth of images so mobile data users be warned]


Beautiful photos really shine with this simple layout!


Love your photos!


That is a lot of money. I’m glad this guy has the income to sustain that. Pray tell: why spend so much on analytics? I have some analytics for my blog, but it’s little more than something to satisfy my curiosity, so I can get away with simple page counts.


He runs a personal blog and that’s already great. I’m baffled by a few choices though. Why bothering with analytics, especially paid ones, if according to his screen the website does less than 50 visitors a day? That seems like an odd choice.

As for the cost, I mean, could a site like this be run for a lot less than that? Absolutely. But if he’s happy paying those money then who cares.

It’s certainly not a setup I’d personally recommend.


At first I thought no way it can be so low, but 99.5k views since 2017 is indeed around 50 views per day. For 400 euros and all this effort... I get similar hits on a free neocities site with zero effort put into search indexing, styling, usability or promotion. Crazy how views add up, just looking at the 99k number I’d think it’s huge!


And if you look at the screenshot he shared, almost a third are hits on a single post which I assume was featured on HN and another good chunk are hits on the homepage. Those two combined are almost half of the total page views according to his stats.

So if you ignore those two, you're looking at ~20 page views a day.

$14/month for analytics on a site with that level of traffic sounds wild to me but again, it's not my money and if he's happy then that's all that matters.


Correct me if I am wrong but what is wrong with WordPress? Takes seconds to install, can run on a $3 a month hosting without additional effort. Tech is to make life easier, not harder.


> Tech is to make life easier, not harder.

Yes, and on top of that a blog is made to post articles, not to spend days tinkering on. Some people just like to make their life complicated to be able to brag about how hard it is.


There is a possibility that the tinkering itself is the hobby.

Of course there is problem if these tinkerers ask everyone to value tinkering to the level that they do. But it's a perspective.


Plus if it matters to you, the Roots stack makes the whole Wordpress experience much more coder-y.

https://roots.io/


It's a bloated mess and a security nightmare.


Another great thing about WordPress is that you can use it purely as a CMS and SSG. And FWIW, WordPress at 20 is far different than it was at 10.


I have settled on hugo with generated content served from GitHub pages some years ago. Last week I disconnected from Google Analytics in favor of umami self-hosted in Hetzner, and Google Fonts which I now serve directly from my own domain.

Next step is to offboard from GitHub pages and move the blog directly to Hetzner where my analytics are hosted.


It took me about two decades to settle on a personal website stack. It started off as a Classic ASP website back in 2001 but I eventually moved to Common Lisp.

A Common Lisp program generates static HTML files from handwritten HTML content. The website has minimal dynamic elements in the form of comment and subscriber forms, implemented using Common Lisp + Hunchentoot. All content is written in simple HTML, facilitated by Emacs' HTML+ mode. The CSS is basic, offering support for light and dark modes. I host the website on a virtual private server (VPS) running Debian and Nginx. The CSS and HTML layout change very rarely, so it allows me to focus on content.

This stack has proven to be stable and cost-effective, with the server handling low traffic of 1 request every 5-10 seconds or so on normal days. During occasional spikes, like when a page reaches the front page of HN, the traffic increases to about 10-20 requests per second but this is still a piece of cake for the $5/month VPS the website is running on.

"Analytics" is just a handful of make targets in a Makefile that invokes commands like zgrep, sort, uniq, etc. to filter the access logs and show me which posts are getting the most hits, which days are the busiest, etc. That's all. I'm quite happy with this stack and I think this will serve me well for the next few decades.


Ghost is ridiculously good out of the box. Part of that comes from the opinionated stack it demands - support for only one database server, very specific and minimal config options.

I self-host Ghost and Plausible Analytics (along with several other services,) on an Unraid box at home, fronted by Cloudflare, and it holds up well to load. Costs next to nothing, too, since it inherits hand-me-down parts from my main desktop PC.


What is your internet speed? Do you host any videos?

I'm self hosting a family blog frontend by Cloudflare but using wordpress instead. The media seems to be a bottleneck for me and I've kept most at 480p. Family a few states away report it takes quite a long time to get anything to load except for the html.


1Gbit symmetrical. That’s the standard residential connection in my part of Japan.

In theory I could get up to double that with a different ISP, but my router doesn’t handle those kind of speeds.


I am trying to host on 40 mbps down and 5 mbps up, pretty tough. I might need to add a CDN but wanted to diy as much as possible.


Just deployed Plausible. It's blocked by default on Ublock Origin, but I've been looking for a good simple solution. This seems good enough for now.

My preference would be to do something with nginx log analysis in Loki to get a broader perspective of all traffic flowing through nginx, but this will do for now.


I took a more traditional approach, focusing on something that's "good enough", which in my case was a cheap VPS and an install of Grav: https://getgrav.org/

Some optional customization for page templates/fonts/CSS, some CI so I can build and deploy it inside of a Docker container, Matomo for analytics that respect privacy (which I already use elsewhere) and some additional web server configuration to hide anything interesting behind an additional login and I'm good. Maybe backups and uptime monitoring if I'm feeling brave, which is what most sites should also have (so copy + paste there).

All of that for under 100 euros per year (could also pay half of that if I didn't host anything else on the server), the blog has actually survived getting on the front page of HN once or twice and requires relatively little maintenance, at least less than a proper install of WordPress, due to its larger surface area.

The best thing is that it's simple enough for me to understand how it works, to be able to move it anywhere as needed and use more or less plain Markdown for writing the blog posts. Here's a quick example of a recent post: https://blog.kronis.dev/articles/ever-wanted-to-read-thousan...

Now all that's left is to find motivation to write more, but at least 90% of my time doesn't go into tinkering with custom fancy solutions, no matter how much I'd love that. Then again, nothing wrong with the alternatives either: 400 euros might be perfectly worth it for some, whereas working with static site generators or even custom CMSes would be a fun experience for others!


A total of 400 € per annum for a personal website? Did I read that right? That's an impressive expense!

For me, domain registration $16.99 CAD + about $1.00 CAD/month in S3 storage and bandwidth costs ~ $29 CAD per annum. I could probably drive the hosting down to zero deploying on Github; but I'm too lazy to deal with it. And _vide infra_.

Truly though, the biggest cost to me over the years, keeping my little weblog is the time/churn created by the quest for the "Perfect Personal Website Stack." At some point, I realized that migrating from platform-to-platform comes with its own costs and "good-enough" is my new watchword. (It's just Hugo deployed to S3.)


I have been using same tech stack for last 10 years happily. LAMP. And can’t be happier. And I use it for everything I do


Which P?


The best stack was wordpress.com but that's not sexy enough these days. I get it, my blog is hosted on Hashnode with a custom domain.

My very first blog, from waaaaaay back in the day on free wordpress? Still up and functioning perfectly. Including the image uploads.

I should move back and just pay these dudes. https://lostinthegc.wordpress.com/2011/05/06/the-25-pc-comin...


Over the years I've used tons of software to do blogs. WordPress, Ghost (I Kickstarter it), and many others.

I have settled in Hugo + Cloudflare Pages. I just write markdown, and commit it. Cloudflare does the rest.

Though I am building my own static site generator / server for my blog just for fun that I might switch to. Simple, tailored. And it's written in a way that instead of static files, it's a go app, with all my of my blog posts are embedded and the site lives in an in-memory filesystem.

Most of this was because I wanted to add webmentions.


I have been fighting a lot with Ghost.

It is good if the provided features are good and enough for you.. but if they aren't, then you are in trouble. I would like to note that Ghost is meant mostly for making content behind subscriptions, since they prioritize adding and improving their subscription features.

The content is meant to be written by hand, with some limitations.

Templating engine is limited, if you want to have some static pages. It is very difficult to generate something from custom data, other than your posts or pages. I wish Ghost had some custom key-value endpoint with their API, but instead if you want to add anything custom, it must be set to the custom configuration file, and it is very limited.

Eventually, you need to embed JSON into JS and then generate some parts of the HTML on client side, what you would instead like to do these in server side. E.g. if you would like to show for example a table with data. Or you need to use some other static site generator to build the HTML table from JSON.

Something very simple, but yet so difficult.

I liked that it was possible to use SQLite3 in production for Ghost. It worked very well and scales as well since it is mostly read operation, but they are officially dropping support for production and using only MySQL. I guess the one argument was, that sending emails for many subscribers was too much for SQLite.

There is also another good analytics service, without cookies and also fully GDPR compliant: https://plausible.io/


I don’t do a ton of blogging anymore but I’ve been impressed with Publii. You can piggyback it in GitHub so the incremental cost is very low/nothing.


My blogging/journalling setup is simple. I've been doing it for 10 years and it really encourages me to write. It's also all in the open and public.

I just use GitHub. I just rely on the default repository view on GitHub.com. I edit in Typora on Windows or on the web interface on GitHub website.

I create a README.md and add markdown headings to the bottom or to the top (bottom if its a journal, top if it's a blog) and then when I get to 100-800 I create a new repository and repeat.

https://github.com/samsquire/ideas (2013)

https://github.com/samsquire/ideas4

https://github.com/samsquire/ideas3

https://github.com/samsquire/ideas5

https://github.com/samsquire/ideas2


I just discovered my favorite stack...

  - I write everything in Notion, and "publish to web"
  - Cloudflare Workers API pulls Notion data and does a bit of SWR, w/ a block
  - Sveltekit on Vercel grabs the Notion data, serves the pages
  - Everything's up as soon as I type it in Notion!
Pros:

  - Free
  - Low maintenance / just works
  - Easy to write. I like to plop my thoughts down in short posts, rather than long bursts of well-written essays
  - Renders almost all Notion blocks, so what I see is what I get
Cons:

  - Slow, because Notion, but I'm fine with that
Probably won't work for most people who want blazingly fast pages, or perfect static sites. I can pull the data on build and completely serve it as static, but then I have to redeploy, which only takes a few seconds but still takes me out of the flow. It fits my needs.

Happy to share the code too if anyone cares!


I'd actually be interested to know more/get at that sweet sweet code!


I just switched to this a few days ago; everything's still very very in flux: https://github.com/janzheng/janzheng-2

I'll have to do a better writeup of it once it's stable and fixed. (Sorry in advance; everything is in Svelte)


I like Pelican. It's Python and has been around for forever so I don't have to roll my own. I realized after a while that I was rewriting Pelican for no particular benefit and the things I thought were limitations of the tool were just my inability to see how to interface with it.

There is no benefit whatsoever in me rolling my own tech unless it actually allows me to do something I can't do otherwise, and a lack of imagination has been my biggest limiting factor.

Once I saw this I also stopped trying to reimplement Django from scratch too. But, doing these custom and also abandoned own website rolling projects did teach me a lot about how Django and Pelican work!


Is writing a simple CSS file and some HTML code really too much effort for a personal blog? Clicking around this site the only non-trivial things are the RSS feed and the paginated scrolling (which seems wholly unnecessary) on the homepage.


Static site generation with low-code integrations for various forms etc do not take much time to set up and host with Github Pages.

Only $4/mo for a personal account upgrade if you want the repo to be private too.

I moved to Obsidian Publish recently for my blog - so I can keep my knowledgebase, notes, and writing all in one place. $10/mo ($8 on yearly plan).

Carrd.co premium (something like $45/year) for one-pager sites for most other uses - how many small project sites actually need more than one page?

The most time I've spent with this "stack" is reading documentation to decide to move from pages to Obsidian+Carrd.

Definitely cost me less than 400 euro of my own time.


Django (specifically Watail) and nginx for me. Very cheap hosting, good security, and a lot of freedom and extensibility. If I didn't rely on some of the Django apps/packages like django-machina for a forum, Flask would suffice.


For a $4/month VPS I can install wordpress and it worked like a charm. I own all my contents and can migrate them to anywhere at will whenever I feel like it.

replace wordpress with whatever open source blogging software you like.


It’s funny given the content of this blog because one of the open source blogging engines you can use is… Ghost.


I'm practically technologically illiterate compared to everyone here (I don't work in tech whatsoever) and I figured out Traefik and Hugo in docker containers on a VPS that costs me a few bucks a year.


I have been using Hugo with markdown for the last couple of weeks and I am happy with it. Although I wish I could paste images to my editor see them. I use a vscode extension that helps but it doesn't hit the spot as instead of an image there is a link even though I have the development preview running. I feel more write-y in notion compared to plaim markdown if that makes any sense.

I don't want to have a full Notion CMS but I do like the Notion UI a lot. Maybe I should look into the Notion integration stuff.

Shoutout to goatcounter, if you are looking for a cool web analytics solutiom.


Have you considered using https://obsidian.md for the markdown preview?


This makes sense. Even though I have installed obsidian I haven't used it. Have you used it with Hugo?


I haven't used it with Hugo myself unfortunately. I have used it with the regular git clients for readme.mds with the git plugin and it has been decent there.


VS Code also has a Markdown preview that shows images.


Google Docs > Docs to Markdown > Github Pages = Free, simple, good.


This needs to have $400/year disclaimer added to the title.

Paying even half that much, as someone with development skills as described by OP, is absolutely insane to me. Is this a sponsored post?


Glad the author found a working solution they can stick with. I moved to hosted Ghost about a month ago and have been very happy with it. For me, traffic is super low so their lowest tier plan at $108/year works. It’s pricier than having a $5/mo Wordpress install on DigitalOcean but I never have to think about maintenance or some plug-in not working. My old Wordpress setup requires updating plugins and themes once a week or something.


The problem with ghost as far as personal blogs go, is that you need to host the ghost process somewhere (or pay them, fwiw).

I think for personal pages (though honestly for other stuff, too) static pages are much easier to host - you just put them on GitHub Pages / S3 + Cloudfront / CloudFlare Pages and you've got cheap and easy scalability, with almost zero passive costs.

So yeah, I prefer Hugo / Docusaurus.


I've been using Nikola[1] to run my personal blog lately which is basically perfect.

Easy to configure (just python) and capable of Markdown or Jupyter notebook publishing. The latter was why I wanted it since it gives drag+drop image inserts.

[1] https://getnikola.com/handbook.html#deploying-to-github


>> For some reason, the theme can only be compiled with an ancient version of npm and the code is really messy, so at some point I won’t be able to maintain it any longer. Moreover, images don’t work very well with my theme, so I might have a look at Ghost’s marketplace soon to purchase a better theme.

Wow. I wonder what an imperfect stack looks like to OP


I recently made WorstPress exactly for this reason :)

[0] https://github.com/surprisetalk/worstpress

It's ~50 lines of bash that builds websites. I hook it up to Cloudflare, and bam, I've got a free and easy blog written with markdown.


Not going to judge, but personal blog.. You can do this at scale for $0 with any decent SSG like Gatsby, NextJS or Hugo with a good theme or custom CSS and markdown rendering support.

With that said, I know some people like Ghost, but to pay that much is nuts. I pay less than that for my homelab that runs ~20 services 24/7.


As a web dev who enjoys frontend web dev, I think I found the perfect personal website stack for building personal websites for other people.

Astro as SSG, UnoCSS / TailwindCSS for CSS, DecapCMS for CMS. Everything can be hosted for free out of Netlify, auth is handled for free, I can create custom content types for any sort of page or blog or portfolio wanted. Analytics can be done with Google or any amount of paid analytics services.

I recently used that stack for the first time and created a simple portfolio (+ cv & bio) website in a single day, closely mimicking the client's previous Wordpress site which was a broken mess, with a few design tweaks.

If I spent a while figuring out how automatic image compression works, then created a template for it, I'm pretty sure I could bring down the time for creating a totally new unique website down to maybe half a day, or sprinkle in some cooler stuff like a custom interactive frontpage element or something and get it done in the original timeframe.

Edit: Stack for my own website is very similar. But instead of a CMS I write everything straight into HTML.


For me it's Pelican and cloudflare pages. I've got a GitHub action that rebuilds the site whenever I commit changes. Completely free. Super fast. Pelican is easy to theme and my site is one of the fastest out there.

Now if only I ever felt like writing anything. It's been five years.


This has a lot of similarities to the setup I use: org-mode which lets me write my blog posts in markdown, and GitHub pages which hosts it for me. Except I don't have to pay 200 euros/year!

I guess I am missing analytics, but I don't use those anyway out of respect for my readers' privacy.


I used Ghost but ultimately it couldn’t easily support complex content.

My blog is now artisinal HTML+CSS +JS. It’s hosted on Netlify which costs me… I dunno but some number so small I don’t care. Maybe $10/mo on the high end? Plus whatever I pay per year for a domain.


I just wish Movable Type was still maintained under the GPL. It was basically perfect.


I vaguely remember that movable type was difficult to set up and deploy. Why did it lose to Wordpress?


It was proprietary and around the same time WP became popular they changed their license terms to become way worse.

I suggested the GPL in person to one of the founders (perhaps not very nicely at the time) and eventually it happened. Not for long, but by then the founders had left and SixApart was run from their Japanese subsidiary


That's too bad.


Just use plain HTML + a little bit of basic CSS. No need to overcomplicate things


> I’ve dabbled with a few other things as well, including building it entirely from scratch in raw HTML/CSS.

At times I feel tempted to do the same, but ironically enough HTML is not a particularly convenient document format.


Why has every external link on this site a "?ref=davidgomes.com"? What is the point of that? It's obviously done automatically, but it's kind of ridiculous.


I tried out a ton of static site builders, including writing my own, before I gave up and landed on Ghost. From a tech standpoint, static sites are amazing. But when you think about it, it doesn't make sense to optimize for a simple tech stack, since that's a fixed cost. The unit-cost is the difficulty in writing and updating posts on your website. Writing in a font designed for code in a text editor on my computer and then committing and pushing to trigger a rebuild and deploy is significantly more overhead than logging into the ghost admin interface and creating a new post.


Why is everyone complaining about 200 eur per year, it's just a Starbucks coffee per month!

[If you need tags imagine this is a sarcasm tag]


What's wrong with Wordpress and the likes? You don't have to spend $400 / year and it takes minutes to setup.


zola + free oracle tier for me

https://github.com/getzola/zola


Ghost's telemetry is a no-go for me.


I predict you’ll give up using this after a year or so due to the cost/value and move on to the next fad.


I just self host Ghost, super easy. Don't even need analytics tbh.


When in doubt, just use Jekyll or WordPress tbh


vercel hosts my next.js blog with mdx files for $0/year


fwiw my perfect website stack is Jekyll and rsync.


What if you want to post something when you’re not at your computer? What do you do in those situations?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: