4 ms·
Not to refute your claim, but this is my 3-line bash script in order to build and upload a static bundle: """ #!/usr/bin/env bash rm -rf public hugo --verbo
by yingw787 7y ago
Not to refute your claim, but this is my 3-line bash script in order to build and upload a static bundle:
"""
#!/usr/bin/env bash
rm -rf public
hugo --verbose
aws s3 sync ./public s3://$BUCKET_NAME --profile s3_personal
"""
You can set custom TTL for CloudFront to 0 for instant refresh in production. Dev server is `hugo server`, `hugo` is a single Go binary you can Dockerize with --net=host and --volume=$(pwd):/app to use your own dev environment. If you don't maintain too many large static assets, your cost is like 5 cents a month, and I think that's a competitive price, not AWS being generous. $12 / year for a custom domain via ICANN, and Route 53 manages A/AAAA/CNAME/MX records for free.
Again, not to refute your claim. I'm a single author, who publishes as a hobby, with a single dev and a single prod environment, so if things break down (it hasn't for years), it's easy to fix. It's much different than content marketing and enterprise use cases. Even so, I would rather start here and add a static CMS like Forestry before considering a custom solution like Netlify (which is probably built on top of AWS anyways).
- koolba 7y agoAdd a “set -e” unless you want to publish a failed build.
- yingw787 7y agoI actually noticed I had a few incorrect dates, about two weeks after I published the posts. One annoying thing about hugo server is that you can't see draft posts timestamped in the future, which makes it hard to schedule things. My stack definitely could use improvement in a real-life production setting :)
- earthboundkid 7y agoThere’s a Hugo flag for buildFuture. I have it turned on in Netlify branch deploys and off in prod. ;-)
- uffe5 7y agoWhether that helps or not depends on how the script is called. Unfortunately. Better to check the result of the command and call exit explicitly if you want to be sure.
- chickenpotpie 7y agoAlso Netlify doesn't scale in pricing as well. 3 developers is $45 a month, but 4 developers is $1000 a month. There's also no SLA until the $1000 a month tier. They charge almost double for extra bandwidth. It's great for small teams, but they're not objectively better.
- cactus2093 7y agoNever used Netlify, but that seems odd. Isn't it a hosting provider? Unless you're really tiny team, usually you'd want a centralized process for running the build & deploy (rather than having any developer that wants to release something running the build on their slightly different local environment and deploying it directly), possibly hooked into a CD pipeline. Why do you need to pay per developer?
- chickenpotpie 7y agoHere's their pricing page: https://www.netlify.com/pricing/ https://www.netlify.com/pricing/ Looks like you can add extra developers on the lower tiers for $15/user/month, but they're still charging way more per GB than AWS does.
- yingw787 7y agoThat's pretty cray-cray. I feel like you could just create a CloudFormation template, have a "Launch Stack" button, and get people to pay you to maintain it for $10 / user / month and have a company easy-peasy. Throw in backups via Batch, I think they use EC2 Spot instances so its crazy cheap. I get that you should always charge more if possible, but I'm much more concerned with surviving during hard times, and there's just less to ablate away if you stick more or less to first principles.
- zomglings 7y agoMy script looks very similar to yours, but with an additional (and optional) CloudFront cache invalidation step (on `/*`).
- earthboundkid 7y agoNetlify does branch deploys. I’ve hosted on S3+CF and Netlify. Both have their place, but Netlify has a great developer UX. S3 does not.
- gen220 7y agoNot refuting the UX point. It’s possible (at most an hour of work) to set up webhook-based deploys to s3. Not as turnkey as Netlify, but it is very possible to build your own great developer UX with a bit of elbow grease and pipes :). If your time frame for hosting is 10+ years, I’d personally recommend to put your eggs in s3, (or the “s3 interface”, to be specific; whether it’s with AWS, DO, etc).
- earthboundkid 7y agoThat's not hard. What I'm talking about is giving each PR its own unique domain URL. That's a much bigger pain in the ass with S3+CF. I'm not even sure it can be done quickly because starting a new CF distribution takes like 10 minutes. I guess you'd need to hook into Route 53 somewhere or something?
- bunsenhoneydew 7y agoS3+CF static hosting has a great interface, they just wrapped it in nice UI and called it Amplify Console.
- earthboundkid 7y agoI could never figure out the Amplify docs. Maybe I was stuck in the marketing part of it, but I never saw something that stated clearly what it is or how it works. It was like "just click a, then b, then c" which is not useful for understanding what it's actually doing. So, is Amplify just a simplified interface to S3+CF?
- Cthulhu_ 7y agoOne benefit Netlify has is that it keeps a reference to multiple deploys, so you can always go back or deploy a development branch separately from production. Plus it does the building for you, which for a Hugo site is not really important but in our case (product website + shop) we used Gatsby which pulled data from several data sources (= secure access keys that ideally don't linger on dev machines).
- LunaSea 7y agoYou can already build automatically in GitHub Actions and Git saves your previous versions as well. No need for Netlify.