Made a SvelteKit blog that runs on Deno Serverless
Just converted and deployed this blog on Netlify. So I've been exploring svelte, and svelteKit, and I was looking to refresh my old blog that is in a neglected state. When I started this blog was 2007, and then it was of course, a WordPress blog, but I deleted most of the old articles partly because a lot of them were in my native language and also because I didn't feel like they should still be accessible like I said I can admit content was always low frequency and low effort.
So this blog has very few dependencies that's why it can mostly leverage the core JS so that it has the ability to run in many different environments. Now there's not yet a public repo, but this source was written so that it can be used by anybody provided they change the theme.
Many today use a statically generated blog from markdown files, which has ups and downs. There are a few svelteKit blog engines like that out there. But compared to this blog source, they are very simplistic as this source includes an Admin panel, authentication, management of all kinds of blog resources ( post, categories, tags, users), full-text search, pagination, multi-lang, and other stuff yet is not complete and still missing a bit here and there.
In terms of what is under the hood at the moment, it is probably around ~200 files with 15 to 20 routes; I will definitely share the source after I squash all my WIP commits into a new branch.
The source also has a deno script to convert a WordPress XML export into the new structure, which depending on your blog size should run pretty fast. I guess something like 200 articles may take less than 10-20 seconds to convert and insert.
Most DB stuff is done with SupaBase, though I had to do some minor Postgress RPC for stuff that can't easily be done with the SupaBase JS lib.
To be honest when I tried to use Svelte a few years back after I started a small personal project I quickly jumped to the conclusion that it wasn't very usable. For me, it looked like it was full of bugs, but now in 2023 when I tried it a second time, the experience was much smoother.
Now that doesn't mean I didn't quickly reach some limitations, like for example the inability to compute partial templates or the inability to force a component to not be rehydrated or have a server component without passing down data through props. But I guess many things will be added in the future. There is no reason to think that many more advanced features won't be available in the future. This has happened with all meta-js frameworks as they generally evolved to satisfy the most common needs.
So my guess is that SvelteKit is a "solid" choice if you want to run more stuff on the server( like we used to do in the past), which you should, especially if that "server" is actually a serverless function.
And also, if you want to have 0 dependencies when you build your project SvelteKit is the way to go this won't be possible with other frameworks, but with sveletKit, you can ship code that becomes pure JS. I guess this is perfect if you want to have a higher degree of control over what's happening, but it will also mean more effort if you want to make everything yourself.
I guess when I release this source after a week or something similar because I don't think I need to add much more features to it I'll write a new post detailing all the features.
Tags
Related Articles
Clear EVM Wallet
I made this wallet in the course of two weeks based on Ethers, Ionic and Vue. Right now, it is built solely as a chrome extension wallet, but I used Ionic in case I will make later from the same code base a mobile/desktop variant. It implements Metamask API a...
Read moreDeno Deploy Thoughts
This is some old draft article that I didn't want to trash, so I'll try to at least partially salvage it. I played a bit with Deno deploy a while back, and I must say quite impressive that using Deno deploy is very easy to fast spawn a serverless worker, simi...
Read moreAt last no more FART Chrome 93+
For those who like to implement both light and dark themes and want to do that in the most optimized way I have good news for you Google Recently implemented in Chrome > 93 the ability to get the user preference using server-side technologies. Why is that ...
Read moreEVM Signature