Glench
The above article was what convinced me to use SQLite in my new business. 5 years later, serving 120+ million requests per month and still working great. To be fair, most of those requests are served out of redis, but I’m still running off of cheap digital ocean droplets.
Haha yes I just saw a youtube video last night of a personal account that said something that seemed to directly contradict what the author of this post learned ("static stretches don't work" whereas this author is saying they worked for him).
I feel like for these kinds of cases where there is contradictory information that it is better to rely on direct experience in my own body rather than just scientific information about what's supposed to work. Use mindful awareness to feel directly what's happening in the muscles and tissues and how it changes over time using the different types of techniques. Then I don't really need to believe anything anyone says. The downside of this approach is that we may miss out on important information if we're ONLY relying on direct experience. But direct experience should be the foundation in my opinion.
And of course with iteration and feedback loops people can definitely learn how to specify what they want in a fairly precise way.
Zuckerman vs. Meta Platforms
Also, there doesn't seem to be an appreciation of the speed at which we need to stop emissions to meet 1.5C or even 2C of warming. It's at the point where if we don't replace almost every car, furnace, stove, etc with its electric counterpart and power them with clean electricity (due to the continuous emissions of those machines for their lifetime, assuming no early retirement), we can guarantee breaching the 1.5C limit. We need a World War 2 level buy-in from government, industry, and consumers. I wish this was more widely known.
I was convinced that SQLite could be a viable db option from this great post about it called Consider SQLite: https://blog.wesleyac.com/posts/consider-sqlite
Using SQLite with Litestream helped me to launch the site quickly without having to pay for or configure/manage a db server, especially when I didn't know if the site would make any money and didn't have any personal experience with running production databases. Litestream streams to blackblaze b2 for literally $0 per month which is great. I already had a backblaze account for personal backups and it was easy to just add b2 storage. I've never had to restore from backup so far.
There's a pleasing operational simplicity in this setup — one $14 DigitalOcean droplet serves my entire app (single-threaded still!) and it's been easy to scale vertically by just upgrading the server to the next tier when I started pushing the limits of a droplet (or doing some obvious SQLite config optimizations). DigitalOcean's "premium" intel and amd droplets use NVMe drives which seem to be especially good with SQLite.
One downside of using SQLite is that there's just not as much community knowledge about using and tuning it for web applications. For example, I'm using it with SvelteKit and there's not much written online about deploying multi-threaded SvelteKit apps with SQLite. Also, not many example configs to learn from. By far the biggest performance improvement I found was turning on memory mapping for SQLite.
That article, along with the ability to have streaming backups with Litestream and not wanting to pay for a separate DB server, inspired me to use SQLite in my SaaS four years ago. I've been enjoying the operational simplicity a lot although there is not a lot of community documentation currently about tuning SQLite for web app loads. My app does about 120m hits a month (mostly cached and not hitting the DB) on a $14/month single-processor DigitalOcean droplet.
That said, depression, fear, and lack of confidence are multi-faceted things with many different mitigating and exacerbating causes. Even diet and digestive ability can play a role! I find light exercise to mitigate the effects, too. But a sense of warm-heartedness toward yourself and others will be helpful no matter what.
I have the perfect solution for this. Keep a container in the freezer. Whenever you have an extra unusable vegetable bit from chopping, chuck it in the container. Once the container is full, simmer a big pot with all the bits for 30-45 minutes then strain all the solids.
Good veggie bits to use: onion skins and butts, garlic bits, broccoli stems, carrot greens or butts, celery leaves or those hard bottoms, kale stems, chard stems (although they can really color the stock), asparagus stems, fennel bits, the green leek leaves,
Bad veggie bits, don't use (adds weird/too much flavor): any nightshade bits (bell peppers, tomatoes, eggplant etc), green bean or peadpod tops, squashes, cucumber, zucchini.
Haven't tried other veggies.
Running a scheduled function on ValTown to import Atom feeds into Datasette
My SaaS uses SvelteKit, SQLite and Sequelize, but I would probably try Drizzle if I was starting today.
I'm wondering if it makes sense to think about your goals here. Why are you even thinking about starting a business? Are you trying to make money? To really serve people? Because it's a fun challenge? Because you want financial freedom? Because you see an opportunity? Because you've been told you should or want the status of someone who has "made it"? What's in your heart?
I'm extremely biased (see below) so take my opinion with a grain of salt, but I think browser extensions are a pretty neat way to break into indie hacking. They cost nothing to run because they're hosted by extension stores. They're often faster and easier to build than whole apps because you can just use them to fix or modify existing websites rather than create your own from scratch. They can get organic traffic from extension stores, especially if they're well-named.
The main piece that was a pain in the ass for me was adding payments, so I made a service to do it (https://extensionpay.com), and now I can just focus on making the extensions work well. Because of all my previous work I was able to build and submit my last extension (making over $500/month now) to the chrome store in four hours — no joke! It was a really cool moment. Plus, running an extension monetization API I'm able to see all the extension that make real money and learn from what works for them.
I use SQLite/Litestream for https://extensionpay.com! Serves about 120m requests per month (most of those are cached and don't hit the db), but it's been great!
I was convinced that SQLite could be a viable db option from this great post about it called Consider SQLite: https://blog.wesleyac.com/posts/consider-sqlite
Using SQLite with Litestream helped me to launch the site quickly without having to pay for or configure/manage a db server, especially when I didn't know if the site would make any money and didn't have any personal experience with running production databases. Litestream streams to blackblaze b2 for literally $0 per month which is great. I already had a backblaze account for personal backups and it was easy to just add b2 storage. I've never had to restore from backup so far.
There's a pleasing operational simplicity in this setup — one $14 DigitalOcean droplet serves my entire app (single-threaded still!) and it's been easy to scale vertically by just upgrading the server to the next tier when I started pushing the limits of a droplet (or doing some obvious SQLite config optimizations). DigitalOcean's "premium" intel and amd droplets use NVMe drives which seem to be especially good with SQLite.
One downside of using SQLite is that there's just not as much community knowledge about using and tuning it for web applications. For example, I'm using it with SvelteKit and there's not much written online about deploying multi-threaded SvelteKit apps with SQLite. Also, not many example configs to learn from. By far the biggest performance improvement I found was turning on memory mapping for SQLite.
Happy to answer any questions you might have!
Yep!
> I like my systems made such that the server can die, get scaled vertically and oops data disk wiped, forget to mount volume in a container, etc. without me lifting a finger. It looks like I can do that with litestream, but I always want to hear from people who have tried it in the real world.
I can't really help you there unfortunately, but I know fly.io is trying to offer something like that.