> 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.
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?
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.
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 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)
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.
+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.
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.
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.
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.
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.
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
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!
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.
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.
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
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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 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.
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.
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.
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 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.
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).
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.
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.
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.
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.
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.)
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.
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/
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.
- 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.
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.
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.
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.
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.
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.
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.
>> 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
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.
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
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.
> 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"