simonw 11 hours ago

I tried this out and found it useful for exploring Cloudflare workers. One thing I learned: KV and durable objects are not the same thing. KV is eventually consistent, durable objects is the thing where all traffic has to be routed to the same node since it's dealing with a read/write store that has read-after-write guarantees.

Also Cloudflare KV provides a simple dashboard interface for adding and removing KV entries: https://gist.github.com/simonw/1e072d04960616970381a433bfca7...

jagadeeshposni 14 hours ago

I have been working on something similar this morning. I want to create a simple blog to document my thoughts without having to deal much about technical stuff and maintenance and spend a few hours diving the rabbit hole of jekyll blogs.

While their documentation(https://jekyllrb.com/docs/) is one of the best resources to learn, I have found my job much more straightforward using one of the pre-built themes that is available on the internet. With deployment to github pages almost instantaneous, I can see myself updating the blog much more often.

The blog which I am currently working on: https://jagadeeshposni.github.io The theme I have used: minimal mistakes

  • pyeri 7 hours ago

    Minimal mistakes is a great theme. I had almost decided on minimal mistakes when I wanted to upgrade my blog from a simple two column Hyde theme. But then I wrote the template from scratch using bootstrap-5 as I felt that gave me more control and I took it as opportunity to develop my frontend skills. Here is my blog:

    https://prahladyeri.github.io/

  • LtdJorge 7 hours ago

    Same happened to me with Astro. Yes, it’s much more involved initially because you have to set up the entire layout, but after that, adding content only pages is just writing Markdown. And for the layout, with the help of Tailwind and TailwindUI, it’s pretty easy for a non-designer.

simonw 12 hours ago

6 comments already complaining that this isn't "simple".

I suggest we instead treat this post as if the title was "Show HN: a simple text blog demonstrating how to use Cloudflare workers and KV store" - that way we get to have a more interesting conversation.

  • dang 11 hours ago

    Thanks—we've put that (more or less) in the title above.

    (Submitted title was 'Show HN: Simple Text Blog")

    • jonutah 7 hours ago

      Sorry and thanks for fixing. I'd put more detail in the description but didn't realise it didn't show. Thanks for making the title more accurate.

  • Xeoncross 7 hours ago

    I'm honestly not sure what the problem with "simple" is either.

    It's literally a single file with 80 lines of code. At this point the only thing easier is a linux one-liner to serve a file directory over HTTP.

    Like, has anyone ever used Jekyll, Hugo, Ghost, Jr, Wordpress or any other blog system? None of them are anything close to 80 lines of code.

jumping_frog 11 hours ago

I think what would be amazing is if WhatsApp creates a mobile number based website which anyone can access if they know the mobile number. Access through whatsapp mobile app.

  • bravura 9 hours ago

    That's called a Telegram bot and you can write one yourself.

eggfriedrice 10 hours ago

This is nice, apart from a quick play when they were new I've never really looked at CF Workers and KV again. This made me go and have a look at the docs and find that it's actually looks quite useful. I didn't know they'd added Python and other languages, so that's cool in itself.

I like Jon's example here, a single and fairly short file that does just enough to demo this all, nice.

  • Super_Jambo 9 hours ago

    I'd have thought the SQLite database (D1) would be a more obvious fit for a blog?

    • jonutah 7 hours ago

      Good point, I'm making my way through exploring more of CF so I'll likely try a D1 variant of this. Ta

ThinkBeat 8 hours ago

What is the pricing structure on this?

I am sure there is a free-tier, but if we skip that and pretend we are paying for it from the beginning.

How would much 100.000 hits be?

I presume it would be a tiny number, A esp given the current content in the blog. so lets imagine some photos and heavier content.

How difficult would it be to extend with with CF CDN?

  • LtdJorge 7 hours ago

    For workers, free is 100k hits per day and 10ms of CPU per hit. KV is 100k reads, 1k writes, 1k deletes, 1k lists and 1GB storage.

    The subscription is 5 USD a month, including 10M hits at 30ms each, 10M w, 1M r, 1M d, 1M l, and also 1GB.

    One of the examples in their page (for a fully dynamic website, which is worst case) is: Subscription $5.00

    Requests $1.50 (15,000,000 requests - 10,000,000 included requests) / 1,000,000 * $0.30

    CPU time $1.50 ((7 ms per request * 15,000,000) - 30,000,000 included CPU ms) / 1,000,000 * $0.02

    Total $8.00

    • sigio 6 hours ago

      I'll stick my static website on a $3.50 VPS then, and have no practical limits and a fixed price. Also soo much simpler.

stavros 10 hours ago

This is great, thanks! It's always useful to see these "here's how to do something useful with a new technology" demos, and I've been wondering how Cloudflare's offerings work exactly, so thanks!

Now we need the equivalent thing for Durable Objects! Maybe a chat room, hm.

hk1337 9 hours ago

I like it but not that enthusiastic about JavaScript echoing html. What about having simple html templates that call back to the worker for the posts and the worker return json?

  • jonutah 7 hours ago

    Yeah it is gross interweaving html fragments randomly but I wanted to see if I could do it and keep it all constrained to one file. Thanks for the feedback.

bigs 7 hours ago

[dead]

dang 11 hours ago

[stub for offtopicness]

  • Eikon 13 hours ago

    What's simpler about this than just uploading .html files?

    This seems actually very complicated for what it does.

    • simonw 13 hours ago

      Just uploading HTML files won't teach you how to use Cloudflare workers and their KV store.

      • krapp 12 hours ago

        A "simple text blog" shouldn't need to use anything of the sort.

        • simonw 12 hours ago

          Sure, but you're getting hung up on the link title and not the actual substance.

          Imagine if the title was this instead: "Show HN: a simple text blog demonstrating how to use Cloudflare workers and KV store"

        • evbogue 12 hours ago

          Would simple text chatroom demand the kv?

          • krapp 12 hours ago

            No.

            • evbogue 11 hours ago

              Yah, I guess you could use WebRTC or some other way of exchanging messages now that I think about it.

              • krapp 11 hours ago

                You don't even need realtime. You can get away with just having people POST to a backend, updating a database and letting people refresh the page.

                • evbogue 11 hours ago

                  Why do all that when you could have the server write simple text files to the disk?

                  • krapp 5 hours ago

                    You need interaction for a chatroom, so you at least need a form somewhere.

                    • evbogue an hour ago

                      This is genius. But can we add an input field for the username?

    • deafpolygon 13 hours ago

      I was going to say, just upload .txt

  • kissgyorgy 12 hours ago

    How is that simple?

    Simple would be if you would just write text files, drop it somewhere simple, either a webserver or GitHub pages or some hosted service, and be done with it.

  • yakshaving_jgt 12 hours ago

    This is anything but simple.

    • lhousa 12 hours ago

      Suggestion: "plain text blog"

  • zeroq 12 hours ago

    [flagged]

    • dang 11 hours ago

      "Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something."

      https://news.ycombinator.com/newsguidelines.html

      • zeroq 9 hours ago

        I'm sorry Dan, but whose work? His or the entire JS community as a whole? If the latter then yes, I'm guilty as charged, because I deeply believe that we went way too far and the fact that a few years old smartphone can't handle sites like LinkedIn is just ridiculous. If the former, then, like I've stated in my opening statement it's a cool experiment you can do over a weekend if you want to learn something new or brush off your skills but is it really worth calling a "blog engine" or place on 1st page of HN?

        • bravura 9 hours ago

          It's quite a smear to write "He's probably unemployed at the moment or just brushing off before the next interview.". Cheap smears are a form of casual dismissal and devalue this site.