I originally made it a couple of years ago as a small proof of concept. A couple of weeks ago I started it over and have been using it as a project to work with Claude and learn approaches to coding with AI.
That's super awesome too, this is not so different under the hood, I used libxml for getting the content and pandoc for converting -- pandoc turned out to be by far the best of the tools I tried for that aspect.
It won't necessarily keep the URLs stable, they'll be made based on the title of the post.
That's a cool solution for the ?p=<id> issues, this doesn't handle it but when I've done it for for sites I host I usually use nginx's rewrite rules. I think for query rewriting you need to additionally use the map directive, but I was only handling directory vs .html and things like that.
It does put your files into a Hugo directory structure and includes the smol theme. It doesn't recreate your theme, plugins, or process your images, but I also have tried to be very explicit that it just converts your pages and posts and is the starting point for a conversion.
When you put an export file through it, you'll end up on this page: https://imgur.com/a/UUMB6ve where you can download a zip or tgz of the site and you'll clearly understand what you're getting before you can choose if you want to have the remaining pages/posts converted.
Really the reason I picked Hugo is because that's what the person I was talking to wanted. He'd only found contractors who would charge more than he wanted to pay to do a manual conversion, and said even something that just got his pages and posts over would be worthwhile to him.
I have more experience with Jekyll. In fact, I had tried to start a hosted platform with a CMS for it that I opened sourced a while back (https://github.com/symkat/MyJekyllBlog) but it never really got traction.
At this point I'm actively looking for a new job and figured getting this on Hacker News might be helpful for that.
In my case, at least a big part of it is I'm looking for a job again and doing something like this to get myself out there, I already had one person who was interested in this specific type of conversion so maybe there are others.
Thanks for the 413 note! I've just upped the client_max_body_size if you want to give it a try again.
It does not, it converts just the blog posts and pages to help you get started on a conversion. It gives you the smol theme by default and the page that gives you access to the downloads gives additional information for finding themes at https://themes.gohugo.io/
I’ve been working on building a web hosting platform.
https://github.com/symkat/MyJekyllBlog - It’s centered around hosting Jekyll blogs. It supports having paid user accounts (Stripe), building sites (uses podman containers), deploying built sites to web servers, obtaining SSL certificates for the sites it hosts.
GitHub Pages is a closed source hosting platform. MyJekyllBlog is open source and MIT licensed.
As far as I’m aware, you cannot spin up your own version of GitHub Pages to host things for yourself and offer those hosting services to others. MyJekyllBlog encourages this and has a guide (https://github.com/symkat/MyJekyllBlog#installation-guide) for setting it up yourself.
I’m very excited to show you MyJekyllBlog, a blog hosting platform I have been working on.
Two months ago I shared the GitHub link for the project, and since then I have introduced free demo accounts so you can try it out, improved the templates offered, and introduced import/export functionality so that you can download or upload a tgz of the Jekyll site. The development process is written about on https://tech.myjekyllblog.com/
Thanks, I’m really glad you like it! It’s been a lot of fun to work on.
It does use a few different IPs/servers, and I think some could be combined. If you do end up moving towards replacing yours with this, I’ve got an article written with more information on setting it up for doing development: https://tech.myjekyllblog.com/2022/12/14/setting-up-a-develo...
I want to show you something I’ve been working on: MyJekyllBlog.
It’s a multi-user CMS and hosting platform for Jekyll blogs. There is a web application that users can register on, and from that web app they can create Jekyll blogs, manage posts and media. When they make those updates, their blog is rebuilt with the Jekyll and the site is deployed to web servers.
The installation process is codified into the included ansible/ directory and instructions are included in the README for installation. So far I’ve been the only one working on it or installing it, so there is bound to be bugs and things I’ve missed, please feel free to open issues against the repository if you run into anything.
It supports three different user registration modes: open where anyone can sign up for an account, invite where anyone with an invite code can sign up for an account, and stripe where users must use a credit card to subscribe immediately after signing up for an account before they can access the site. You can enable more than one registration mode.
The entire system is open source and MIT licensed, including the installation process, devops tools, and billing code.
You're right -- the city required that taxi cars had medallions to be allowed to pick up passengers, and the one who owned the medallions on cars there was the owner. With a medallioned car you could pick people up in front of bars, night clubs, off a random street corner, etc.
I don't, however see it as any different from an LLC. At the end of the day the taxi drivers worked directly for themselves, had their own clients, optimized for themselves on finding places to get hailed customers. At least the one I talked to about money stuff had their own CPA, if they filed as self-employed or formed an LLC/C-Corp/S-Corp, I don't know. They were paid by people they picked up, directly, rather than the taxi company.
They had a B2B relationship with the taxi stand, they rented a car with a medallion rather than go through the process and cost of buying one, they earned money directly from the people they picked up, making themselves a B2C.
And if you bought a medallion, you didn't need to rent the car from the taxi stand, so you could do it totally yourself and cut them out. You gain maintaining the car, the capital expense of the medallion.
I believe this is the model for taxis -- at least it was about 20 years ago when I worked as a taxi dispatcher in a small town for a short time.
Drivers rented taxis, and the taxi company only made money based on renting out the fleet of cars. It was something like $80 for 12 hours.
Drivers were independent and made money from the customers directly. The drivers I talked to most were a husband/wife pair who rented the same taxi and they told me about having a CPA that wrote off basically everything. Haircuts, clothes, the majority of what they bought was written off their taxes because it was for business.
The dispatcher (what I did) answered the phone and got an origin/destination/name, and radioed drivers until one of them accepted it.
I think the whole operation was a couple dozen cars, a tiny rented building, 3-person rotation of dispatchers, a general manager, mechanic, and an owner.
I suppose it really depends on your perspective. It has pure static hosting, in that anything in the public directory is directly served, so static sites that are built with pre-processing have no at-serve-time processing other than the normal web server block.
For files in site/ that end in .md it does do rendering at the point of serving in some situations. Once it does, it both serves the file and spits out an .html file to serve for the next request. The way I thought about it is that the first request for the file generates it — like a mini hugo build or Jekyll build command running for just one path, and only running after a request has been made to it. This makes the compilation of the HTML just in time and saves processing for files that may never be rendered.
It does have draw backs, and could prove not to be the best path, and perhaps the preprocessing isn’t that big of a deal.
Last week I showed you the open source hosting platform I am working on, and got a lot of great comments and feedback.
There was some confusing over exactly what MarkdownSite is, and I made a lot of updates to the site and added a documentation system and blog to more effectively communicate this.
There was also a few issues with things not working out quite as intended with path resolution. A lot of folks who tried to build websites got 404 errors. This has been better addressed now, as well as a bunch of other fixes over the last week.
This blog post intends to make it easy for someone to build their own hosting platform with MarkdownSite. I hope someone finds it useful :)
I originally made it a couple of years ago as a small proof of concept. A couple of weeks ago I started it over and have been using it as a project to work with Claude and learn approaches to coding with AI.
It's been a lot of fun.