It would also be the code behind the web page where I write the words.
You'd load a static editor page, write your content, and then post it to a lambda endpoint. That lambda would then generate static pages for your content and push it to s3 or wherever.
Not much to show yet but you can follow us on Twitter for updates in a couple of months: https://twitter.com/plumacloud
We're also considering providing our CMS as headless via an API so that you can connect it to your SSG and make your own template, host it wherever you want, etc, but we haven't decided yet on the pricing for that but it would be much cheaper than our main product.
Assuming it was wrapped up in a nice UI, would that be missing any features you need?
EDIT: Put more concretely, if you had a site hosted on S3, all you need is a way to modify the source files of that site, either directly or by modifying files in another directory and running a transform step to produce the final result?
This sucks compared to wordpress because the UX in wordpress is much better than github and especially because there is no "preview".
There's also no easy way to upload images etc. Certainly not as easy as wordpress.
I'm not going back. I'm just saying "modify the remote file system and trigger a build" is far from what I want.
It needs to have some sort of awareness of file changes to expire items from the CDN too.
People think a static site is enough without realizing SEO, RSS feeds, comments, etc, are all things you might need and would have to rebuild yourself.
I don’t want to pay $5/mo for a VPS when I can run my whole site on AWS for 32 cents a month.
With self hosting I can control the code, what it does, the cost, where it stores data, how backups are made, when new versions and updates are deployed, etc.
It’s always a trade off on control, and my comfort point is “on AWS”.
For some people they want their own servers. Some people want to own the network block. It’s just what level of comfort you have with each type of control.
I don’t know what CMS I’m going to use, that was my question. Which one operates the way I want?
It’ll run on AWS lambda or an equivalent.
It's a single-file app. You can host it yourself, and it edits static files in a github/gitlab repo. The deployment after push and hosting with custom domains and CDN is already handled by Netlify. And it's all free.
If you use Jekyl then you can skip Netlify and Github will build and serve your site.
* load a web page
* write words
* hit submit
* this triggers a lambda function that generates a static website and puts it on s3
* this triggers another lambda function that pokes the CDN and expires anything that changed
By self-hosted I mean I control all the parts. I can change the generation code, the CDN upload/expiration code, I can change the output, I can view the logs, all within my own account.
* Hit save
* Let Hugo/Jekyll/Pelican/whatever compile
* FTP/SCP onto a server
* It's a blog, nobody needs a CDN for that
Where? On my iPhone?
* Hit save
Where does it save it to?
* Let Hugo/Jekyll/Pelican/whatever compile
Where does that happen? If I want to write on my phone it won't compile on my phone.
* FTP/SCP onto a server
From my phone? Also I specifically don't want to run a server, or more specifically, I don't want to pay for a server to run all the time.
* It's a blog, nobody needs a CDN for that
If you're writing about high scalability, it's a bit embarrassing and ruins your credibility if your site isn't speedy worldwide.
Ok that part's easy.
> commit to git
How? I've never seen a good git client for the phone
> have some CI build it and deploy.
Step one, draw a circle. Step two, draw the rest of the owl. :)
While this might be a fun exercise, it's more involved than deploying some code to Lambda.
That coupled with Working Copy could be a pretty good mobile workflow.
For me, this was much easier than deploying Lambda code and managing How all of that worked together. Using Github Actions wasn’t much more than setting up a deploy script.
Managing posts also sucks. I can pre-date posts but I can't at a glance get a list of posts with data about each one. Instead I just get a file listing and have to open each file and read its headers to see its metadata (date, title). Publish vs unpublished also suck. I have folders for my posts and another folder for drafts but moving something from one to the other is no fun compared to just checking a box in wordpress.
I could very well be wrong though.
Also, to your specific example, does there exist a Flask app that runs on AWS lambda that can listen for a webhook and then build a static website?
Does there exist code that I can put into Github actions that builds a static website and uploads it to a CDN?
That's basically what I'm looking for.
Of course I could write my own solution or cobble it together with a bunch of moving parts, but my whole point is that I'm looking for an existing package that already does it.
PHP for example used to be a "big patchwork" of seperate files working together, but the right tooling came along to think of it as "a unified system". Same thing with Serverless and the Serverless Framework
https://github.com/marketplace/actions/s3-sync
Shouldn't be too difficult to hook this up to a build command for hugo, jekyll, or whichever static site generator you'd prefer. But this gets away from the self-hosted part of what you were saying a bit.
I can't remember the name, but it's commercial and targets major companies for making their landing pages.
gohugo.io
With self hosting I can control the code, what it does, the cost, where it stores data, how backups are made, etc.
It’s always a trade off on control, and my comfort point is “on AWS”.
For some people they want their own servers. Some people want to own the network block. It’s just what level of comfort you have with each type of control.
What if your content doesn't have enough views / you get bored / life changes so can't afford server costs anymore / die. Your server will expire eventually, and there goes your content. web.archive.org might have some sites archived, but many blogs won't have been archived so their content is just gone forever.
I've self-hosted many platforms, and many have died, perhaps due to running costs or lack of need anymore. It's partially why I'd never self-host my email, for example.
You can't know the future, and if your content is gone, it's gone for all of your audience (or potential future audience). Perhaps an ideal solution is some kind of self-hosted platform that mirrors content into a forever-public external repository, and hence preserves it, even if your hosting ceases to exist.
I also have a bunch of old blogs that I've just given up on at some point and now they're gone forever.
Your last point is kind of what archive.org's Wayback Machine does. Haven't checked whether they have an API where you can submit URL's you publish* or if you'd have to submit new posts manually, but this could be a decent solution. It wouldn't cover non-tech people though.
*) I just now quickly browsed through their API doc but couldn't find anything clear, other than uploading random files
* Generate lightweight static website
* Good clean default CSS so I don't have to mess with it
* Automatically upload website to CDN and trigger expirations as necessary.
* Self-hosted
* Runs on AWS Lambda or any other Function as a Service equivilient
* Has a super lightweight CMS that I can easily use on both desktop and mobile, so if I have ideas I can start writing anywhere, and can also make minor corrections to existing posts while on the go.
* The CMS can be a frontend to git, but git is hard to use on mobile, so I don't want the CMS to just be git.
If anyone knows of something that meets these requirements I'd be super grateful!