Hacker News new | ask | show | jobs
by zamubafoo 1280 days ago
Generally for side projects I start with a simple PoC and then iterate into a better fit for the projects needs. Most projects start out with the following PoC stack.

PoC: Python + file system as a database

If I actually use it a lot or performance is bad then I tweak the stack. Usually persistence is the first thing upgraded to SQLite. Then, if it's an HTTP project, I usually throw in jinja2 templates to make editing the layout is easier. Finally, if it's something I expect to always be up I'll rewrite it in Rust.

PoC w/ web front end: Python + file system as a database + fastAPI/Flask + HTML/JS/CSS as python strings

Rust doesn't have everything under the sun, so sometimes I'll split the service into two: one which handles requests over a named pipe or unix socket in python and the front end in rust.

Rust Services w/ web front end: Rust + axum + askama + SQLite via tokio-rusqlite Python Services: Python + asyncio using asyncio.loop.add_reader and file descriptors to attach to the named pipe or unix socket.