Feed aggregator
Show HN: Spawn – PostgreSQL migrate/test build system with minijinja (not vibed)
Hi! Very excited to share my project spawn, a db migration/build system. For now, it supports PostgreSQL via psql to create and apply migrations, as well as write golden file tests. It has some innovations that I think make it very useful relative to other options I've tried.
GitHub: https://github.com/saward/spawn
Docs: https://docs.spawn.dev/
Shout out to minijinja (https://docs.rs/minijinja/latest/minijinja/) which has made a lot of the awesomeness possible!
Some features (PostgreSQL via psql only for now):
- Store functions/views/data in separate files
- Git diff shows exactly what changed in a function in new migrations
- Easy writing of tests for functions/views/triggers
- Env specific variables, so migrations apply test data to dev/local db targets only
- Generate data from JSON files
- Macros for easily generating repeatable SQL, and other cool tricks (e.g., view tear-down and re-create)
I started this project around two years ago. Finally have been able to get it to an MVP state I am happy with. I love using PostgreSQL and all its features, but current available tooling makes utilising some of those features more challenging
I created spawn to solve my own personal pain points. The main one was, how to manage updates for things like views and functions? There's a few challenges (and spawn doesn't solve all), but the main one was creating and reviewing the migration. The typical (without spawn) approach is one of:
1. Copy function into new migration and edit. This makes PR reviews hard because all you see is a big blob of new changes.
2. Repeatable migrations. This breaks old migrations when building from scratch, if those migrations depend on DDL or DML from repeatable migrations.
3. Sqitch rework. Works, but is a bit cumbersome overall with the DAG, and I hit limitations with sqitch's variables support (and Perl) for other things I wanted to do.
Spawn is my attempt to solve this, along with an easy (single binary) way to write and run tests. You:
- Store view or function in its own separate file.
- Include it in your migration with a template (e.g., {% include "functions/hello.sql" %})
- Build migration to see the final SQL, or apply to database.
- Pin migration to forever lock it to the component as it is now. This is very similar to 'git commit', allowing the old migration to run the same as when it was first created, even if you later change functions/hello.sql.
- Update the function later by editing functions/hello.sql in place and importing it into your new migration. Git diff shows exactly what changed in hello.sql.
Please check it out, let me know what you think, and hopefully it's as useful for you as it has been for me. Thanks!
(AI disclosure: around 90% of non-test code by me, AI was used more once the core architecture was in place, and for assisting in generating docs)
Comments URL: https://news.ycombinator.com/item?id=47055579
Points: 1
# Comments: 0
Did Gemini just give me someone's personal information?
Article URL: https://old.reddit.com/r/GeminiAI/comments/1r7dn80/did_gemini_just_give_me_someones_personal/
Comments URL: https://news.ycombinator.com/item?id=47055525
Points: 1
# Comments: 0
Show HN: Instagram Saved Collection Exporter
Export, Download, and Backup Your Instagram Saved Collections Effortlessly
Comments URL: https://news.ycombinator.com/item?id=47055520
Points: 1
# Comments: 0
Join the Python Security Response Team
Article URL: https://pyfound.blogspot.com/2026/02/join-the-python-security-response-team.html
Comments URL: https://news.ycombinator.com/item?id=47055518
Points: 1
# Comments: 0
Convert Audi to 432Hz
Article URL: https://kaizoku.digital/tools/retune/index.html
Comments URL: https://news.ycombinator.com/item?id=47055517
Points: 1
# Comments: 0
The Final Bottleneck
Article URL: https://lucumr.pocoo.org/2026/2/13/the-final-bottleneck/
Comments URL: https://news.ycombinator.com/item?id=47055516
Points: 2
# Comments: 0
Frederick Wiseman, 96, Penetrating Documentarian of Institutions, Dies
Article URL: https://www.nytimes.com/2026/02/16/movies/frederick-wiseman-dead.html
Comments URL: https://news.ycombinator.com/item?id=47055513
Points: 1
# Comments: 1
Safe VSP
Article URL: https://linusakesson.net/scene/safevsp/index.php
Comments URL: https://news.ycombinator.com/item?id=47055485
Points: 1
# Comments: 0
Tesla Robotaxis Reportedly Crashing at a Rate That's 4x Higher Than Humans
Article URL: https://gizmodo.com/tesla-robotaxis-reportedly-crashing-at-a-rate-thats-4x-higher-than-humans-2000722989
Comments URL: https://news.ycombinator.com/item?id=47055467
Points: 4
# Comments: 0
Open-source game engine Godot is drowning in 'AI slop' code contributions
Why an A.I. Video of Tom Cruise Battling Brad Pitt Spooked Hollywood
Article URL: https://www.nytimes.com/2026/02/16/movies/tom-cruise-brad-pitt-artificial-intelligence-seedance.html
Comments URL: https://news.ycombinator.com/item?id=47055453
Points: 3
# Comments: 0
Ask HN: How do you overcome imposter syndrome?
I’ve been working at YC-backed startups since graduating from university. I’m now at a company building a deeply distributed systems product, and I’m surrounded by incredibly talented engineers who seem exceptionally strong at what they do. They often have knowledge and intuition about things I barely understand.
Lately, I’ve been feeling inadequate — like I’m contributing more to the less exciting parts of the product rather than the “cool” or core engineering challenges.
On top of that, I’m an immigrant and my wife and I are expecting. Balancing that with a fully remote job has been difficult, and at times I feel like I’ve lost some of my competence or sharpness. I’m taking steps to address this — I’ll be speaking with a psychologist soon — but I genuinely wonder: how does someone overcome these feelings while working within a high-functioning engineering team?
Comments URL: https://news.ycombinator.com/item?id=47055450
Points: 3
# Comments: 0
The most practical, fast, tiny command sandboxing for AI agents
Article URL: https://dw1.io/blog/2026/02/17/sandboxec/
Comments URL: https://news.ycombinator.com/item?id=47055446
Points: 2
# Comments: 0
An assembler that compiles to a printf loop
Article URL: https://git.sr.ht/~sebsite/printfasm
Comments URL: https://news.ycombinator.com/item?id=47055439
Points: 1
# Comments: 0
The mathematical mystery inside the shooter Quake 3
Article URL: https://www.scientificamerican.com/article/the-mathematical-mystery-inside-the-legendary-90s-shooter-quake-3/
Comments URL: https://news.ycombinator.com/item?id=47055436
Points: 1
# Comments: 1
Adam Mastroianni of Experimental History Interviews Gwern (2025)
Article URL: https://gwern.net/interview-inkhaven
Comments URL: https://news.ycombinator.com/item?id=47055430
Points: 2
# Comments: 0
First Agent Skills Hackathon by the Authors of SkillsBench
Article URL: https://www.skillathon.ai/
Comments URL: https://news.ycombinator.com/item?id=47055428
Points: 1
# Comments: 1
Rathbun's Operator
Article URL: https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/rathbuns-operator.html
Comments URL: https://news.ycombinator.com/item?id=47055424
Points: 3
# Comments: 0
How Jet Engines Are Powering Data Centers
Article URL: https://www.wsj.com/business/energy-oil/how-jet-engines-are-powering-data-centers-b1c587a9
Comments URL: https://news.ycombinator.com/item?id=47055423
Points: 2
# Comments: 0
