Startups are hard. One of our favorite startups, Snaplet, is shutting down. Despite that, they built an amazing team (some who now work at Supabase) and some incredible products.
One way to ensure that your products out-live your business is to open source what you've built. I'm a huge fan of what Snaplet built so I reached out to Peter to see if Snaplet were interested in open sourcing. He said yes:
I built Snaplet because I believe developers write better software when they have access to production-like data. Although the company is closing, my belief remains strong, so we are open-sourcing the tools we've built.
Peter Pistorius, Founder of Snaplet
Open source products
There are 3 main tools that they are releasing under the MIT license:
Copycat
Copycat generates fake data. It's like faker.js, but deterministic: for any given input it'll always produce the same output. For example, if you generate an email with the user ID user_1234
, the next time you generate an email with that email it will be the same, guaranteed:
Snaplet Seed
Seed generates realistic synthetic data based off a database schema. It automatically determines the values in your database so you don't have to define each value. For example, if you want to generate a 3 comments
for one of your posts
you simply point it at your schema and let it handle the rest:
- Repo: github.com/snaplet/seed
- Docs: docs.snaplet.dev/seed
Snapshot
Snapshot is for capturing, transforming, and restoring snapshots of your database. It's like an advanced version of pg_dump/pg_restore. It has a particularly neat feature called “subsetting”. Point it at a database table and it tell it how much data you need. To maintain referential integrity, subsetting traverses tables, selecting all the rows that are connected to the target table through foreign key relationships:
- Repo: github.com/snaplet/snapshot
- Docs: docs.snaplet.dev/snapshot
The future of Snaplet tech
The Snaplet team who joined Supabase have been helping Peter to migrate these projects to open source. Over the next few weeks we'll move these into the Supabase GitHub org and pick up the ongoing maintenance.
We prefer to keep products decoupled (it's one of our Principles), so you'll always be able to use these tools independently from Supabase. We can also see a lot of value providing a deep integration, so we've already started adding their Snaplet Seed to our official docs. This is just a start, watch this space!
Where's Peter now?
Peter is back at RedwoodJS, which he co-founded before Snaplet. He's been working on React Server Components, coming soon to Redwood.