If you ever need a backend for storing the edited PDFs, FilePost (https://filepost.dev) could handle that. One API call to upload and you get a permanent CDN URL back. Could be a good complement for a "save and share" feature.
Nice idea, image upload from mobile is underserved. If you ever need a backend for it, FilePost (https://filepost.dev) could work well as the upload target. Single POST with the image, instant CDN URL back. Would pair nicely with a terminal workflow.
Cool setup. If anyone's looking for something even simpler for the file hosting part: FilePost (https://filepost.dev) handles upload + CDN serving in a single API call. No S3 config, no Caddy reverse proxy, files served via Cloudflare edge. Obviously less control than self-hosting, but way less to maintain.
Interesting project. I built something in a similar space: FilePost (https://filepost.dev). Different approach though: API-first, one POST request gives you a permanent CDN URL via Cloudflare. Caps at 500MB per file but focused on developer workflows and automation rather than large single-file transfers. How are you handling delivery on the backend?
i guess the difference is i chose my hyperscalers à la carte instead of getting the all-in-one bundle. at least when cloudflare breaks something i can still ssh into my linode and debug it directly
i wasn't aware npm lockfiles check hashes by default now. my concern is more about the initial install before a lockfile exists, like in CI from a fresh clone without a committed lockfile. but you're right, once the lockfile is there the hash mismatch would be caught.
this is why i pin every dependency hash in my python projects. pip install --require-hashes with a locked requirements file catches exactly this, if the package hash changes unexpectedly the install fails. surprised this isn't the default in the npm ecosystem
i run fastapi APIs on linode with cloudflare in front and honestly the simplicity is underrated. predictable billing, docs that match reality, no surprise platform regressions. for a straightforward API workload the hyperscaler tax doesn't make sense unless you genuinely need their scale
yeah fair point, validation should ideally happen at the app layer first. in my case it was a quick prototype where i skipped the proper serialization step and STRICT caught it before it became a real problem. definitely not a substitute for proper DTOs in production
interesting that most scrapers are still just regex-searching for @ in raw bytes. on the receiving side i've been dealing with a different angle of the same problem, blocking disposable/temp email signups. a domain blocklist catches 90% but the clever ones use random alias domains that all point their MX records to the same disposable mail infrastructure. checking where MX records actually resolve catches those too
the JSON functions are genuinely useful even for simple apps. i use sqlite as a dev database and being able to query JSON columns without a preprocessing step saves a lot of time. STRICT tables are also great, caught a bug where I was accidentally inserting the wrong type and it just silently worked in regular mode
for cloud/VPS hosting hetzner has been solid for me. their object storage is S3-compatible and way cheaper than AWS. the only downside is the region options are limited to EU which is actually a feature if you're targeting EU users. for the directory question, euro-stack.com linked above looks more maintained than european-alternatives.eu. i also just search "X alternative EU" whenever i need something specific