Started building Backlify.
A platform for automated PostgreSQL backups and restores, with background workers, scheduling, cloud storage, and recovery built in.
I'll be sharing the architecture, engineering decisions, and lessons as I build.
If you manage PostgreSQL databases, what feature would make a tool like this genuinely useful for you?
#buildinpublic #backend #nodejs #postgresql
🚀 The Backlify waitlist is now live.
I started building Backlify after losing data on a free-tier PostgreSQL database with no reliable backups.
I'm building Backlify to make database backups automatic, secure, and easy to restore.
If that sounds useful, I'd love for you to join the waitlist.
👉 https://t.co/ECeupfhQAS
Day 8 of building Backlify
Backlify's dashboard is finally starting to come together.
Every card answers one question:
• Are my backups working?
• How much storage am I using?
• What's backing up next?
• Is anything failing?
Still a few things to polish, but it's starting to feel like a real product.
What would you add to a backup dashboard?
Most backup tools tell you when a backup finishes.
They rarely tell you when your backup system is unhealthy.
Day 7 of building Backlify.
Started working on the dashboard today.
A backup platform shouldn't just run backups, it should make their health obvious at a glance.
Still a work in progress, but it's coming together.
Building in public.
#buildinpublic #backend #postgresql #saas
20 days to grad (1/20)
it’s a no brainer to start with gaining admission with 317 in utme and all distinctions in my ssce. first week in and i was appointed as a course rep. i worked with the most AMAZING people and went through a lotttt 😭. but it was all worth it in the end
Most backup tools tell you when a backup finishes.
They rarely tell you when your backup system is unhealthy.
Day 7 of building Backlify.
Started working on the dashboard today.
A backup platform shouldn't just run backups, it should make their health obvious at a glance.
Still a work in progress, but it's coming together.
Building in public.
#buildinpublic #backend #postgresql #saas
Day 6 of building Backlify.
One thing I learned while building a backup worker:
Retries alone aren't enough.
If a backup fails because the database is temporarily unavailable, retrying immediately can make the problem worse by adding even more load.
That's why I'm using exponential backoff; each retry waits a little longer before trying again.
It's a small design choice, but it makes the system much more resilient.
Building in public.
#buildinpublic #backend #nodejs #postgresql
Day 5 of building Backlify.
A backup worker does more than run pg_dump.
It needs to know exactly what's happening throughout the job, either its:
• Pending
• Running
• Uploading
• Completed
• Failed
Without proper job states, monitoring and debugging become much harder.
Small detail, but it makes a huge difference when building reliable systems.
Building in public.
#buildinpublic #backend #nodejs #postgresql
Day 4 of building Backlify.
One thing this project keeps reinforcing:
A backup isn't useful until you've proven you can restore it.
It's easy to automate backups.
The real challenge is making recovery predictable, reliable, and fast when something goes wrong.
That's why restore support is a core part of Backlify, not an afterthought.
Building in public.
#buildinpublic #backend #postgresql #nodejs
Day 4 of building Backlify.
One thing this project keeps reinforcing:
A backup isn't useful until you've proven you can restore it.
It's easy to automate backups.
The real challenge is making recovery predictable, reliable, and fast when something goes wrong.
That's why restore support is a core part of Backlify, not an afterthought.
Building in public.
#buildinpublic #backend #postgresql #nodejs
Day 3 of building Backlify.
Today I learned why child_process.spawn() is a better choice than exec() for long-running PostgreSQL backups.
exec() buffers the entire output in memory before returning.
spawn() streams the process output as it runs, making it a much better fit for tools like pg_dump, where backups can become large.
Small implementation detail, but an important one.
Building in public.
#buildinpublic #backend #nodejs #postgresql
Day 2 of building Backlify.
One decision I made early was to build the background worker before the API.
Database backups can take seconds—or even minutes. Keeping an HTTP request open that long is a bad idea.
Instead, the API just queues a job, and a worker handles the backup in the background.
It makes the system more reliable and scalable from the start.
Building in public.
#buildinpublic #backend #nodejs #postgresql
@GDGBabcock At student level, what do you think is more valuable for standing out to top companies like Microsoft, is it building many complete apps, or deeply engineering one project with concerns like scalability, caching, concurrency, or system design tradeoffs?
SYSTEM DESIGN PLAYBOOK
Giveaway Alert!!!
• System design fundamentals.
• Condensed notes to read before system design interview.
• Must know concepts from real-world software engineering case studies.
To get it for free:
1 Retweet & Follow @systemdesignone
2 Reply "Playbook"
Then I'll DM you the details.
Mapped out the full system before writing code.
ERD + data model for the e-commerce platform I’m building.
The hard part wasn’t the number of tables…
it was handling product variants across different device types.
That’s where the real complexity showed up.
Building in public