Free static site generator for small restaurants and cafes

Posted by fullstacking 7 days ago

Counter194Comment102OpenOriginal

Comments

Comment by SchemaLoad 7 days ago

It's pretty sad how there doesn't seem to be any decent free options for websites which are easy to use. Squarespace and such cost a fortune which isn't worth it if you aren't trying to run a full ecommerce site. Plenty of services offer free hosting of static content but don't have any way a normal person can use them. Having to use a static site generator is too hard for non programmers.

I'm just surprised we haven't seem some app that can act like a wordpress admin page but generating a static output you can host for free or very cheap somewhere.

Comment by fckgw 7 days ago

Squarespace is like $20/mo for a basic site promoting your Brick and Mortar business. That includes domain, hosting, and a template/CMS. It's not that pricey.

Comment by SchemaLoad 7 days ago

It's not pricey if you are a serious business making good money. It's a huge price if you are say a part time artist just wanting somewhere to store a price list, gallery and contact form.

I'm just surprised there is nothing that fills the gap between github pages and a full hosted solution with a ton of junk you don't need. All it really needs is maybe a locally running app that can handle generating the static pages and uploading them for you.

Comment by Kerrick 7 days ago

Macs used to come with iWeb. https://www.apple.com/welcomescreen/ilife/iweb-3/

These days you can buy paid software to do this:

- $110 https://blocsapp.com

- $90 https://realmacsoftware.com/rapidweaver-classic/

- $80 https://sitely.app

- $30 https://bootstrapstudio.io

- $0 https://www.silex.me

- $0 https://wordpress.org/plugins/simply-static/

- $0 until recently, https://web.archive.org/web/20240410200646/https://grapesjs....

RapidWeaver Classic calls itself a subscription and sets up autopay, but you can immediately cancel and keep that version forever, like Jetbrains.

Comment by cutler 7 days ago

iWeb was an utter monstrosity. Worse than MS Front Page, which I didn't think was possible.

Comment by pif 6 days ago

If you can't afford $20 per month, you are not in business.

Comment by bryanhogan 7 days ago

The barrier to create a website using Astro + a Template + telling an LLM like Gemini what you want is very low nowadays. So still, if you work with code some technical knowledge is required, but it will only get easier, probably.

Comment by SchemaLoad 7 days ago

There is very little chance a non developer would make it through that. The current options are Instagram/Facebook page which is free and easy. Or a website which is either expensive or requires you to be a developer.

Comment by mukhtharcm 6 days ago

What about tools like lovable/base44 etc?

I'm a developer (so I prefer Astro and all) but was thinking of the barrier of entry for creating new websites is very low now.

Comment by simonbolivar 7 days ago

[dead]

Comment by 6 days ago

Comment by davidmurphy 6 days ago

nope, been there as an entrepreneur where you have NO available funds when the Squarespace renewal hits.

It's a lot.

Comment by gnz11 6 days ago

Let's be honest -- at that point you don't have a business anymore and aren't an "entrepreneur".

Comment by IAmBroom 6 days ago

Let's be more honest: if the power is on, the sheriff isn't locking your doors, but customers can't reach your web presence, the problem isn't really "the entrepreneur".

Comment by miladyincontrol 7 days ago

A webapp or gui WYSIWYG static generator with basic git support abstracted away would go far for many. Just let it push to some private repo which cloudflare pages or similar would deploy off of.

It really feels like the only part of a non-static site most want is an editor. I absolutely loathe the matter but I do see why some restaurants only maintain a facebook page for their online presence.

Comment by manuelmoreale 7 days ago

Not exactly what you’re asking for, but this is nonetheless an interesting approach: https://getpublii.com/

Comment by burningChrome 7 days ago

This is what Netlify does. Hook up a private repo and deploy. Make a commit and it auto builds and you have a CI/CD pipeline. This is what I build all of my static sites with. You can do almost any JS framework like React, Angular, Vue, etc.

Netlify does way more than this, but it makes hosting static stuff super easy.

https://www.netlify.com/

Comment by m-p-3 6 days ago

Some don't even bother, and the only thing they update (when they remember about it) is their business hours on Google Maps.

Comment by jarofgreen 7 days ago

> I'm just surprised we haven't seem some app that can act like a wordpress admin page but generating a static output you can host for free or very cheap somewhere.

https://news.ycombinator.com/item?id=44391535

(I'm not affiliated with it)

Comment by simonbolivar 7 days ago

[dead]

Comment by syntheticnature 7 days ago

Google Sites exists. Buy a domain, point it at a free Google site. So easy a religion major can make a site that looks pretty decent (ha ha, only serious; I thought he'd used Wordpress at first) for just the cost of domain registration.

Comment by pidgeon_lover 6 days ago

Frontmatter CMS is a VSCodium plugin that works as a somewhat user-friendly CMS for the likes of Hugo. https://frontmatter.codes/

I set it up for my brother to run his static blog, and it's quite good if you like that kind of thing. There are some quirks where it gets confused if you rename mycoolarticle.md, so I still prefer using notepad++ and git and CLI for mine.

Comment by WorldMaker 6 days ago

There are at least a few CMS editors for static sites intended for non-technical/less-technical users. They often still require someone technical to setup (config files and OAuth connections to GitHub, for example) but then provide an experience somewhat like what one would expect from the WordPress Admin Page.

Two examples I've briefly worked with:

Decap CMS (formerly Netlify CMS): https://decapcms.org/

Lume CMS: https://lume.land/cms/

Comment by bryanhogan 7 days ago

Honestly, there are some easier ways out there now, although of course no solution is perfect.

For non-technical people I'd recommend the Hostinger Website Builder, Obsidian Quartz or Astro Starlight.

Although as a front-end dev I'd choose building a custom page with Astro, which has now become much easier though with good templates available + LLM assistance.

I wrote a comparison of less-technical ways to build a website here with more details: https://webdev.bryanhogan.com/start/ways-to-build/

Comment by elemdos 7 days ago

That’s what I’ve been working on for the last few years: https://palacms.com (MIT) Not ready to announce the V3 RC yet (need to fill out the starter sites) but it’s working well if you wanna give it a spin - runs & deploys on Railway’s free tier.

Comment by fullstacking 5 days ago

I've updated, this now has Zero Runtime js, Not a single line of js runs when this page loads in your browser.

Comment by 7 days ago

Comment by chiefalchemist 7 days ago

Have you looked at micro.blog? Plans start at $1 per month.

Comment by rrr_oh_man 7 days ago

I’m building something like this…

NextJS + Git + Vercel.

Comment by tomp 7 days ago

how about something like feather.so? publish a website / blog from your Notion...

haven't used it, but looks like a great idea!

Comment by weitendorf 7 days ago

This is exactly what we're trying to build with https://github.com/accretional/statue - you can email me or hit me up on Linkedin to get early access to our free static site hosting (which our new site for the project at https://statue.dev runs on, and which will Soon™ have a public-facing product doing exactly what you just asked for)

Basically you'll be able to edit the markdown for your site in a souped up version of our lightly reskinned vscode IDE at https://brilliant.mplode.dev and instantly publish/preview the changes in the same browser tab in a pane. Brilliant comes with a full Linux environment running in a container on our cloud platform, and building a Statue static site is already a one-command operation. The little UI we're working on let's nontechnical people skip that and just edit files and click buttons to make changes and publish it, though.

Here's a one-liner that will get you an entire static site with content (not the landing page yet, though) you can edit via markdown:

yes | npx sv create . --template minimal --types ts --no-add-ons --install npm && npm install statue-ssg && npx statue init && npm install && npm run dev

Comment by kindawinda 7 days ago

This isn't exactly the point. He said easy to use. Yours requires developer skills which is not what he is looking for.

Comment by davisr 7 days ago

No one should need JS to see the soups when that could be handled perfectly fine with CSS. I wish restaurants would just make their homepage a PDF of the menu.

Comment by venturecruelty 7 days ago

No one should need an entire PostScript interpreter to see the soup of the day, either. A restaurant menu is text and images. HTML and CSS are perfect for text and images.

Comment by andai 7 days ago

Nobody should need 60 million lines of code (Linux Kernel 30M + Chromium 30M) to render some text and images ;)

Comment by BrenBarn 7 days ago

640K ought to be enough for anybody.

Comment by lioeters 6 days ago

I bet that's part of the reason why microcontrollers, embedded programming, and retro computing are all popular hobbies these days. A return to a simpler time, when programs are compiled to a few kilobytes and run as fast as the hardware allows. Graphics? Unicode? Who needs 'em, just a stream of ASCII and integers for me thanks.

Comment by pif 6 days ago

Unicode is a must in a human facing application, even in those countries where English is spoken by the majority of people.

Comment by ale42 6 days ago

I'm waiting for restaurants I can telnet into to get the menu (because SSH is too heavy).

Comment by IAmBroom 6 days ago

640K is enough to read a menu.

Comment by hunter2_ 7 days ago

I agree with no JS, but why PDF over HTML? Hard-wrapping for letter-sized paper (ok, a PDF doesn't need to be letter-sized, but most menus are approximately that) with crapshoot reflow options for soft-wrapping in certain viewer apps is pretty dicey on a phone, mitigated only slightly by rotating the phone sideways.

The only benefit I can think of is if it leads to more frequent updates by the restaurant, due to limited skillset.

Comment by ok123456 7 days ago

If the restaurant doesn't have anything besides a menu, /index.pdf is fine—no web design required; reuse the menu they're printing anyway.

The trade-off is that they'll have to pinch/zoom if they have a small display. It's a minor inconvenience to make the exact information they want available instantly.

Comment by vector_spaces 7 days ago

index.pdf won't tend to play nicely with screen readers and also sucks for people on crappy mobile networks, so it's a minor inconvenience for some, and straight up unusable for others

Comment by ok123456 7 days ago

> index.pdf won't tend to play nicely with screen readers

The horrible Wix sites most restaurants end up using are likely less accessible than a PDF. The Adobe PDF reader can reflow text.

> also sucks for people on crappy mobile networks

The average wysiwyg site builder produces bundles that are an order of magnitude larger than a PDF menu. Also, the PDF is easier to cache correctly and can be easily saved for offline access.

Comment by mpweiher 7 days ago

Why is Wix horrible...or why does it create horrible sites by default?

Curious, I haven't tried it.

Comment by hyperhello 7 days ago

But you can easily serve a desktop version or a small screen version.

Comment by neuroelectron 7 days ago

The complexity between the modern web and a pdf is marginal. PDFs do get printed for menus. Editing a PDF and uploading it to the site, integrating prices and syncing between the site, online ordering, PDF menus is just part of the business. There are lots of platforms that help with this such as Slice.

Comment by parpfish 7 days ago

Because they can make one nice pdf formatted to get printed out in the restaurant and then reuse it to display on the website

Comment by pastel8739 7 days ago

I vastly prefer looking at a PDF menu over an HTML one nearly all the time. PDFs are usually nicely formatted, and I don’t mind zooming and panning to see everything. HTML is frequently terribly formatted, interspersed with ads, slow, etc

Comment by foogazi 7 days ago

> HTML is frequently terribly formatted, interspersed with ads, slow, etc

You can put ads into terribly formatted PDFs too

Comment by saghm 7 days ago

In theory, yes, but the parent comment is talking about what they've frequently encountered in practice. Maybe there's reason to expect that having a lot more PDFs of menus might not result in a similar experience, but it doesn't seem obvious to me at least

Comment by IAmBroom 6 days ago

Yes, and you can strap jet engines onto horses at the race track.

No one does either of those, IRL.

Comment by ErroneousBosh 7 days ago

PDF is an enormous pain in the tits to view on a phone and has significant accessibility issues for people using assistive technologies.

It's not even about blind people. People with ADHD or dyslexia use assistive technology, which frequently makes an absolute horlicks of interpreting PDF. It's one of the reasons I'm trying to move a lot of documentation at work away from PDF and onto just straight HTML.

Plain old HTML, with thin CSS on it to make it not be black-and-white Times New Roman. Kicking it oldschool.

Comment by nottorp 7 days ago

> People with ADHD or dyslexia use assistive technology

Wait for 2 more iOS redesigns and everyone will use assistive technology on Apple devices :)

Comment by victorbjorklund 7 days ago

PDF:s are not great on mobile. And you can’t easily translate them (I often translate restaurant menus when they are on a website with just 2 clicks)

Comment by AlotOfReading 7 days ago

Translating anything that renders on my screen is the same two clicks to open an LLM with the screen contents. I expect that will become an increasingly universal experience as LLM features get shoved into every nook and cranny of tech.

Comment by refactor_master 7 days ago

There's been a translate button for years which hooks deep into every nook and cranny of the website's HTML. It works great, it's built in and many restaurants even advertise it for tourists, because it's a zero-effort translation of their existing menu. Plus, it's low-data when you're inside a 1-bar basement restaurant.

Using an LLM to translate the visible part of a PDF on a mobile... seems like the worst possible solution to the problem.

Comment by noosphr 7 days ago

It's the worst solution, apart from the fact it works better than all the other solutions.

Comment by jmyeet 7 days ago

Translating PDFs is more complicated than that because the strcture of a PDF document doesn't lend itself well to this kind of thing.

For example: if there's a dish name with a 2 line description below it and some allergy symbols below that, in HTML you can imagine the document structure that produces that. In PDF terms that might be 4 separate objects and, in particular, the eyes can see the two lines are adjacent so they fit together but the document structure doesn't really represent it taht way, necessarily.

This might also not work with translation because the lines are set for the size of the text they contain. Same for resizing the font.

Put another waay, PDF should be viewed as a typeset and layout format, not a document format.

Comment by AlotOfReading 7 days ago

I think you're misunderstanding what I'm describing. It's getting a screenshot of the visible portion of the rendered document, not the document itself with all the tags and nastiness inside. The same feature works with a photo of handwritten text, where obviously no digital document exists. It's not perfect, but usually adequate for menu translation.

Comment by victorbjorklund 6 days ago

With a website you don’t need to switch an LLM. You just press translate.

Comment by fullstacking 7 days ago

To be fair this project uses zero 3rd party npm modules for runtime. The total runtime JS it uses is 1.76kB in size.

Comment by Groxx 7 days ago

It also works just fine without JavaScript, so I'm not sure what they're trying to do with that comment.

Comment by hunter2_ 7 days ago

No, the comment correctly points out that the "Soup" button (and all of its siblings... the food categories) is inoperable when JavaScript is disabled. You're stuck with "All" instead of nice filtering. There are ways to achieve this without JavaScript.

Comment by Groxx 6 days ago

ah, gotcha. that would be nice, but tbh it seems rather minor? anyone who knows how to disable javascript (an extremely-clear "power user" signal) can probably be expected to know how to search a page too.

Comment by hunter2_ 6 days ago

It's just peculiar especially since the repo readme [0] specifically says "Minimal JavaScript - Only when truly needed" and yet it's used for this food category filtering, a feature for which JS is certainly not truly needed.

[0] https://github.com/Local-Cafe/localcafe-lite?tab=readme-ov-f...

Comment by dugmartin 7 days ago

I agree. There are lots of free AstroJS themes for restaurants that generate static html that you can host somewhere like Firebase hosting for free.

- https://astro.build/themes/details/astropie/

- https://astro.build/themes/details/astrorante/

- https://astro.build/themes/details/tastyyy-restaurant-websit...

Comment by burningChrome 7 days ago

All of my static sites that I've built lately have been done on Netlify. Super easy to hook up to Github and the form handling is a breeze. I've known Mathias going back to when he was personally answering emails and promoting JAMSTACK so you can say I'm a bit biased. lol

Netlify is a great company that I'll always support.

Comment by adzm 7 days ago

I love Astro; there is so much you can do with it.

Comment by bryanhogan 7 days ago

I was going to recommend the same! Astro + Astro theme + an LLM will get you very far these days.

Comment by riveralabs 7 days ago

I used to be all in on Jekyll. Now all I use is Astro + Tailwind + Claude, and it’s magic. No need for a theme with this combination.

Comment by DoctorOW 7 days ago

What an exhausting solution to a made-up problem. This is exactly the kind of functionality JS was made to provide. There's a lot more JS in the PDF.js renderer modern browsers, and if you're not using a modern browser it likely wouldn't render at all. As others have pointed out, you're asking restaurants to throw away mobile traffic, screen readers, anyone not on a mainstream desktop browser to save ~20 lines of code in a programming language you don't like.

Comment by glxxyz 7 days ago

Remember during Covid where every restaurant's menu was a QR code on the table that linked to a PDF in S3?

Comment by yieldcrv 7 days ago

Remember how after Covid that didn't go away in tons of places

Comment by foresto 7 days ago

Covid ended?

Comment by stronglikedan 7 days ago

A PDF can't get the user halfway through the delivery process before seeing the soups.

Comment by 7 days ago

Comment by mvdtnz 7 days ago

No one is browsing the internet without JS today (within margin of error). Whether or not this "should" be the case, it is.

Comment by spartanatreyu 7 days ago

This is the wrong way of looking at it.

Making a website's basic functionality work without JS isn't just for the random users who switch off their browser's JS runtime.

It's also for the people who have a random network dropout or slowdown on a random file (in this case a JS file).

Comment by handoflixue 7 days ago

> It's also for the people who have a random network dropout or slowdown on a random file (in this case a JS file).

Does that really apply when the javascript is only ~2kb?

Comment by justsomehnguy 7 days ago

Do the end user should troubleshoot if that was a network dropout, some browser incompatibility or just a crappy code by a crappy coder?

> the javascript is only ~2kb?

It can be even 200Mb if it's not loaded properly and now a website doesn't even function.

Comment by spartanatreyu 7 days ago

Yes, any request can get stuck at any time.

That is what's happening any time you've seen a website that randomly decides to load without styles, or with a missing image.

The good thing is that it's very apparent when that happens and you can just reload the page.

But it's not immediately obvious when it happens with a JS file.

That's half the reason why you shouldn't re-implement css features in a js file. (the other half is performance)

Comment by lmm 7 days ago

Then why does that same logic not apply to the CSS file?

Comment by spartanatreyu 6 days ago

I mentioned that in my other comment.

When CSS doesn't load, it's immediately apparent and the user knows they need to reload the page.

Comment by lmm 6 days ago

Isn't that exactly the opposite of the "progressive enhancement" philosophy anti-Javascript people tend to claim to subscribe to?

Comment by spartanatreyu 5 days ago

How?

It doesn't have anything to do with progressive enhancement.

Comment by lmm 5 days ago

> How

You're saying that when the enhancement doesn't work, it's desirable that "it's immediately apparent and the user knows they need to reload the page". That's the opposite of what progressive enhancement people normally argue for.

Comment by lmm 7 days ago

From a business perspective you can go further: the people who are browsing the internet without JS are people who are going to cost you more to support than they'll ever bring you in revenue. Just like trying to support Linux gamers, excluding them is a net positive.

Comment by ThomasMidgley 7 days ago

I wish restaurants would just make a homepage with menu _and_ opening hours.

In my area most restaurants have no website.

If they have a website it's often very hard to find their opening hours. Under 'contact'? Nope! At the footer? Nay! Maybe somewhere hidden in the menu PDF? With luck... Outside their homepage at google maps? Maybe. On their Tripadvisor page? Hahaha! Funny! Not.

Comment by pimlottc 7 days ago

PDF is a terrible experience on mobile

Comment by cess11 7 days ago

The soup shows for me without JS.

Comment by samdoesnothing 7 days ago

Nobody should need a PDF renderer to see the soups.

Actually, nobody should need an XML parser to see the soups either.

Comment by ChrisRR 6 days ago

As an embdded engineer I'm always disappointed at how much processing power and RAM is needed just to display websites with just images and text. The vast majority of them do not need javascript

Comment by fullstacking 7 days ago

No one should need PDFs to see the soups when they can be handled perfectly fine with CSS scoped to print and save to PDF....

/s

Comment by codewritinfool 7 days ago

Link at the bottom of your example page results in 404. For me, anyway.

Comment by fullstacking 7 days ago

ah yeah, sorry work in progress. There is a link to the repo https://github.com/Local-Cafe/localcafe-lite

Comment by hunter2_ 7 days ago

I'm getting NXDOMAIN, and various online resolution tools [0] show the same.

[0] https://mxtoolbox.com/SuperTool.aspx?action=a%3alocalcafe.or...

Comment by captn3m0 7 days ago

I'm not seeing anything very specific in the code - feels like this could be just another Jekyll theme and still work the same. There's some custom front-matter in markdown files, but change that to regular YAML and it will just work.

Comment by fullstacking 7 days ago

There is some code for looking up the geo lat/log of locations at compile. not sure how you would do that. But yeah outside of that your are mostly correct.

I used elixir because thats what I know and love so it was mostly just a personal choice rather than a technical one.

Comment by bhelkey 7 days ago

A couple of things:

First, the site generator is MIT licensed but I don't see a link to the license. If someone forks this generator, would they be in compliance with MIT license requirements?

Second, the images linked in this site are quite nice. I can imagine someone choosing to use some of them as is. Are they yours to share?

Third, it appears that you are targeting non-developers. I would think about how to make it as easy as possible to customize. Decisions like putting images in "priv/output/images" seems a bit confusing.

Comment by fullstacking 7 days ago

First: https://github.com/Local-Cafe/localcafe-lite/blob/main/LICEN...

Second: pixabay

Third: Yeah that's the challenge I'm working on at the moment. Thanks for the feed back.

I do plan on cleaning up the repo so that you are not starting with the example and also plan on making a small tutorial video to show how much effort it takes to setup.

Comment by mrasong 7 days ago

How should the menu be adjusted then? Baristas aren’t into code, no one’s gonna learn programming just to tweak a menu.

Comment by fullstacking 6 days ago

They are markdown files, if you can't manage a markdown file then you are not likely gonna have any easier of a time working in wordpress or anything for that matter.

We assume people are so stupid, its not they are stupid, they have to learn wordpress admin, square space's admin, wixx, they all have a learning curve. The issue is time and effort. If the process is simple even if not elegant its still simple.

In my case you are logging into github and navigating to a folder vs an admin and navigating to a specific section. Editing file directly in github vs hitting save on some form and site deploys via github actions without any other need. If anything my system offers version control baked in with about the same level of effort.

Comment by busssard 6 days ago

this is my biggest issue. if i think about my sister who is running a small patissery, she has issues even with a laptop. she lives almost entirely on her phone. so either the documentation has to be come a whole lot better. Wordpress was started this way.

Comment by zoobab 7 days ago

Paper menu, no QR code or internet for me.

Comment by ChrisRR 6 days ago

Why not both? If you're deciding where to go for lunch, it's very useful to have the menu online

Comment by 7 days ago

Comment by trmdttr 6 days ago

[dead]