Snaplet supercharges your development database by giving you production-like data that you're in control of
This is how:
Do I have access to data?
Snappy, the cute Snaplet cat mascot is smiling while working on a computer
Yes
No
Do I have access to data?
Yes
No
An image of a postgres production database
Snappy, the cute Snaplet cat mascot is smiling while working on a computer
An illustration of a database schema
In image that shows how a config is controlled
snaplet.config.ts
Snapshot: {
Generate: {
Select, subset, transform and copy data into a snapshot
Select
Select or exclude data to copy.
Read more
Subset
Smaller snapshots are faster and less data is easier to work with. You can capture a defined subset of data in your snapshot.
Read more

Transform
Automatically transform sensitive values like names, email addresses and phone numbers to make your snapshot safe to share.
Read more
Snaplet automatically generates data based on your schema
Using Typescript, you tell us just the parts of your schema you want to see generated.



We'll use AI to generate data matching the types and names in your schema.

Any related data needed will be generated automatically.
Read more
Snappy, the cute Snaplet cat mascot, is whistling
Snapshot: {
In image that shows how a config is controlled
snaplet.config.ts
Seed: {
Select, subset, transform and copy data into a snapshot
Select
Select or exclude data to copy. Read more
Subset
Smaller snapshots are faster and less data is easier to work with. You can capture a defined subset of data in your snapshot. Read more
Transform
Automatically transform sensitive values like names, email addresses and phone numbers to make your snapshot safe to share. Read more
}
Snaplet seed automatically creates data based on your schema
Using Typescript, you tell us just the parts of your schema you want to see generated.



We'll use AI to seed data matching the types and names in your schema.

Any related data needed will be seeded automatically. Read more
}
Snappy, the cute Snaplet cat mascot, is whistling
An illustration of a snapshot
Snapshot data
"A better database dump"
-> Try Snapshot
An image that illustrates the generate concept
Generate data
"A better seed script"
-> Try Generate
an illustration of production-like data
Snaplet Snapshot is a safer and better database dump. Exclude, subset and anonymize sensitive information in a snap
Snapshot data
"A better database dump"
-> Try out Snapshot
an illustration of production-like data with arrows pointing to it
Snaplet Generate is a better seed script that uses generative AI for relational data.
"A better seed script"
-> Try out Seed
Now that you have production data you can restore it in your development environment via the Snaplet CLI
To install the CLI
npm install --dev snaplet
a copy icon
An image of a local development environment

Local development environment

Restore to your local development database.
An illustration of a test and preview environment

Test & preview environment

Get isolated deployment environments with unique, isolated databases for each preview deployment.
An illustration of a CI/CD environment

CI/CD

Automate your CI/CD development infra-structure requirements with Snaplet. Use GitHub Actions to automatically restore snapshots to your target environment.
Now that you have production data you can use a Snaplet Client to restore it in your development environment
An illustration of a CLI
CLI or VS Code
VS Code logo
An image of a local development environment

Local development environment

Restore to your local development database, or use Snaplet's VS Code extension for a managed developer database.
An illustration of a test and preview environment

Test & preview environment

Get isolated deployment environments with unique, isolated databases for each preview deployment.
An illustration of a CI/CD environment

CI/CD

Automate your CI/CD development infra-structure requirements with Snaplet. Use GitHub Actions to automatically restore snapshots to your target environment.
CLI
To install the CLI
npm install --dev snaplet
a copy icon
– OR –
VS Code Extension
Not sure which flow is right for you?
There are many ways to use Snaplet,  for example, you could take a production snapshot and add seeded data on top of it. Or you might want to trial Snaplet against your local development database, which might contain a dated/sanitized version of production data. In other cases you might want to start with Seed, and later, as your company grows, use Snapshot. You could use both or only use one or the other.


Here are some possible use case examples ->
Case 1: Not enough data yet (e.g. very early stage startup)
You don’t have enough production data for it to be valuable to code against it (yet), try Seed.

Case 2: Has enough existing production data, can access it, wants to use it
If it is more valuable to you to code against "realistic data" from your production db, and you're able to risk making use of production data, try Snapshots.

Case 3: Has enough existing data, but no production access (e.g. non-lead member of team)
You are interested in ways of getting better dev data, but don't have / can't give Snaplet access to production. You might want to use snapshots eventually, but want to trial Snaplet first, using Seed.

Case 4: Has enough existing data, has production access, but cannot risk it being in develoopment
You are interested in ways of getting better dev data, but cannot /or do not want to risk exposing sensitive data, use Seed.

Case 5: Add predefined users to your app for local dev, like admin admin.
Say you have a bunch of staff accounts tied to specific emails with social login, like john@doe.dev, pat@doe.dev on production and in dev, you might want to have access to an admin account for development testing. The easiest way to do that might be to specify an always-existing account with credentials like admin@dow.dev, password admin.