SQLite vs DynamoDB for Solo Developers
Comparing SQLite and DynamoDB for solo developers. Features, pricing, pros and cons, and which one to pick for your next project.
Quick Comparison
| Feature | SQLite | DynamoDB |
|---|---|---|
| Type | Embedded file-based relational database | AWS fully managed NoSQL database |
| Latest version | 3.53.1 (released 2026-05-05) | Managed service, no version to pin |
| License | Public domain, free for any purpose | Proprietary AWS service |
| Pricing | Free forever | On-demand from $0.625 per million writes and $0.125 per million reads, plus $0.25 per GB-month storage |
| Free tier | Not applicable, it is already free | 25 GB storage plus 25 provisioned RCUs and 25 WCUs always free, provisioned mode only |
| Max single item or row | Row up to 2 GB | Item capped at 400 KB |
| Max database or table size | About 281 TB theoretical | No practical table size limit |
| Concurrency | One writer at a time | 40,000 read and 40,000 write request units per table by default, adjustable higher |
| Learning Curve | Very Easy | Steep |
| Best For | Prototypes, low-to-medium traffic apps, embedded databases | AWS-native apps needing key-value storage at scale |
| Solo Dev Rating | 9/10 | 5/10 |
SQLite Overview
SQLite is the most deployed database on Earth and for good reason. It runs inside your application as a library. No server, no configuration, no daemon process. Your entire database is a single file sitting on disk. Copy it, back it up, delete it, share it. The developer experience is unmatched.
I reach for SQLite whenever I'm prototyping or building something that doesn't need to handle thousands of concurrent writers. Read performance is exceptional because there's zero network overhead. The data lives in your process memory. For content-driven sites, personal tools, and side projects, SQLite just works without you ever thinking about it.
The zero-ops nature of SQLite is what makes it special. No connection pooling to configure, no vacuuming schedules to manage, no credentials to rotate. You focus on your product, not your database infrastructure.
DynamoDB Overview
DynamoDB is AWS's fully managed NoSQL database. It delivers single-digit millisecond latency at any scale, handles virtually unlimited throughput, and you never manage a server. AWS takes care of replication, backups, and scaling. You define your tables, set your capacity mode, and start writing data.
The catch is that DynamoDB requires you to think about your access patterns upfront. Unlike SQL databases where you model your data and then write whatever queries you need, DynamoDB forces you to design your partition keys and sort keys around how you'll query the data. Get this wrong and you're stuck with expensive table scans or a complete data model redesign.
The free tier gives you 25GB of storage and enough read/write capacity for small applications. But pricing gets complicated fast once you exceed the free tier, especially if your access patterns aren't optimized.
Key Differences
Data model. SQLite is relational. Tables, rows, columns, joins, SQL. DynamoDB is a key-value and document store. Items, attributes, partition keys, sort keys, no joins. If your data is naturally relational (users have orders, orders have line items), SQLite lets you express that naturally. DynamoDB forces you to flatten and denormalize.
Query flexibility. SQLite lets you write any SQL query at any time. Need to join three tables, filter by date range, and aggregate results? Write the SQL. DynamoDB only efficiently supports queries that align with your key design. Ad-hoc queries require full table scans or secondary indexes that cost extra money and add complexity.
Operational complexity. SQLite has zero operational overhead. DynamoDB has zero server management but significant design complexity. You'll spend time learning about partition keys, sort keys, GSIs, LSIs, capacity modes, and the DynamoDB-specific way of thinking about data. For a solo developer, that's cognitive load that SQLite doesn't impose.
Scaling. DynamoDB scales to virtually infinite throughput and storage. SQLite is limited to a single server and a single writer at a time. If you're building something that genuinely needs to handle millions of requests per second, DynamoDB handles that. But let's be honest, most solo developer projects will never reach SQLite's limits.
Cost predictability. SQLite is free forever. DynamoDB's pricing depends on your read/write patterns, storage, and whether you're using on-demand or provisioned capacity. I've seen developers get surprised by DynamoDB bills because their access patterns weren't optimized. SQLite will never surprise you with a bill.
Portability. SQLite is a file. Move it anywhere, use it with any language, on any platform. DynamoDB locks you into AWS. Your data model, your queries, your application logic all become AWS-specific. Migrating away from DynamoDB is a significant engineering effort.
By the Numbers (2026)
Here is the verified state of both options as of late May 2026.
SQLite
- Current release is 3.53.1, shipped on 2026-05-05.
- The source code is in the public domain, free to use for any purpose with no license fee.
- A single database file can theoretically grow to roughly 281 TB, calculated from 4,294,967,294 pages at the maximum 65,536-byte page size. The SQLite team notes this ceiling is untested because they lack hardware large enough to reach it.
- A single row can hold up to 2,147,483,645 bytes, just under 2 GB.
- Tables default to 2,000 columns and can be compiled to allow up to 32,767.
- The hard constraint for solo work is concurrency. SQLite allows many simultaneous readers but only one writer at a time.
- Adoption signal from the npm ecosystem: the popular native binding better-sqlite3 (latest 12.10.0, published 2026-05-12) pulled about 6.5 million downloads in the week ending 2026-05-28, and the older sqlite3 binding added about 2.3 million more.
DynamoDB
- It is a managed service, so there is no version number to track. The official AWS JavaScript SDK client (@aws-sdk/client-dynamodb) sat at 3.1057.0 on 2026-05-29 and saw about 7.1 million weekly downloads through 2026-05-28.
- On-demand pricing in US East is $0.625 per million standard write request units and $0.125 per million strongly consistent read request units, with storage at $0.25 per GB-month.
- A write request unit covers a write up to 1 KB. A read request unit covers a strongly consistent read up to 4 KB, or two eventually consistent reads of the same size, so eventually consistent reads cost half as much.
- The free tier gives 25 GB of storage plus 25 read and 25 write capacity units per region, always free. Important caveat for serverless builders: that free tier applies to provisioned capacity mode, not on-demand mode.
- A single item is capped at 400 KB. There is no practical limit on total table size.
- Each table defaults to 40,000 read request units and 40,000 write request units per second, and a single physical partition tops out near 3,000 read units and 1,000 write units per second. Both table quotas are adjustable upward by request.
Real Cost at Solo-Dev Scale
SQLite costs nothing. The interesting question is what DynamoDB actually costs a solo project, because the answer is often less scary than people fear at small scale and gets unpredictable as you grow.
Take a concrete workload in US East on-demand mode. Say your app does 5 million reads and 2 million writes per month against small items under 4 KB, with 10 GB of stored data, and you use eventually consistent reads where you can.
- Reads: 5 million eventually consistent reads consume about 2.5 million read request units. At $0.125 per million, that is roughly $0.31.
- Writes: 2 million writes on sub-1-KB items consume 2 million write request units. At $0.625 per million, that is $1.25.
- Storage: 10 GB at $0.25 per GB-month is $2.50, but the first 25 GB is free under the provisioned-mode allowance, so storage is effectively $0 if you stay under it.
At that scale you are looking at under $2 per month, which is genuinely cheap. The trap is the shape of the curve, not the starting point. Multiply traffic by 50 and you are at roughly 125 million reads and 50 million writes per month, which works out to about $15.63 for reads plus $31.25 for writes, before storage, secondary indexes, backups, or cross-region replication. Strongly consistent reads double the read cost, transactional writes double the write cost, and a single mis-sized partition key can force expensive scans. SQLite over that same growth stays at exactly $0 in database fees, and your only cost is the disk on the box you were already paying for.
When to Choose SQLite
- You're building a prototype, side project, or personal tool
- Your application is read-heavy with moderate write volume
- You want zero configuration and zero operational overhead
- You value portability and don't want cloud vendor lock-in
- Your data is naturally relational
When to Choose DynamoDB
- You're already deep in the AWS ecosystem
- Your application genuinely needs virtually unlimited scale
- Your access patterns are well-defined and won't change much
- You need global tables with multi-region replication
- You're building a serverless application on AWS Lambda
The Verdict
For solo developers, SQLite wins this comparison and it's not close. The 9/10 vs 5/10 rating gap reflects reality.
SQLite gives you a database that requires zero thought about infrastructure. No AWS account, no IAM policies, no capacity planning, no billing surprises. You write SQL, your data lives in a file, and your application runs. The cognitive overhead is near zero.
DynamoDB is a powerful tool, but it's built for teams at AWS scale. The data modeling constraints, the AWS lock-in, and the pricing complexity make it a poor fit for most solo developer projects. Unless you're building specifically on AWS Lambda and need the tight integration, DynamoDB adds complexity without proportional benefit.
My recommendation: use SQLite for everything you can. If you genuinely outgrow it (which most solo projects won't), migrate to PostgreSQL. DynamoDB solves problems that most solo developers don't have.
Sources
All figures above were checked on 2026-05-29 against the following sources.
- SQLite home page, current version and public-domain license: https://www.sqlite.org/index.html
- SQLite implementation limits, database size, row size, column count: https://www.sqlite.org/limits.html
- DynamoDB on-demand pricing, per-request rates and storage: https://aws.amazon.com/dynamodb/pricing/on-demand/
- DynamoDB pricing and free-tier terms (provisioned-mode allowance): https://aws.amazon.com/dynamodb/pricing/
- DynamoDB service quotas, item size, table size, throughput defaults: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ServiceQuotas.html
- DynamoDB partition throughput limits, 3,000 read and 1,000 write units per partition: https://www.alexdebrie.com/posts/dynamodb-limits/
- better-sqlite3 latest version and publish date: https://registry.npmjs.org/better-sqlite3
- @aws-sdk/client-dynamodb latest version and publish date: https://registry.npmjs.org/@aws-sdk/client-dynamodb
- npm weekly download counts (better-sqlite3, sqlite3, @aws-sdk/client-dynamodb), week ending 2026-05-28: https://api.npmjs.org/downloads/point/last-week/better-sqlite3
Like this? You'll like what I'm building too.
Two ways to support and get more of this work.
HEARTH
A privacy-first Life OS for your desktop. Journal, tasks, and notes that stay on your machine. Coming soon, direct download from this site.
Read moreMY TOOLKITS
Receipts-first toolkits for shipping after hours, building Claude agents, publishing on Amazon, and more. The exact methods I used, not theory.
Browse on WhopRelated Articles
Angular vs HTMX for Solo Developers
Comparing Angular and HTMX for solo developers. Features, pricing, pros and cons, and which one to pick for your next project.
Angular vs Qwik for Solo Developers
Comparing Angular and Qwik for solo developers. Features, pricing, pros and cons, and which one to pick for your next project.
Angular vs SolidJS for Solo Developers
Comparing Angular and SolidJS for solo developers. Features, pricing, pros and cons, and which one to pick for your next project.