More projects on the Free plan

We've increased the Free plan project limit again! The Neon Free plan now includes:

  • 30 projects
  • 50 projects

This gives you even more room for side projects, prototypes, experiments, and learning new stacks.

Dashboard page showing 50 Free Plan projects

This change applies automatically to all Free plan users. No action required. For more information about plan limits, see Neon plans.

Branch anonymization APIs

Last week, we announced Data masking for creating anonymized branches (see the November 14 changelog). This week, you'll find the APIs for this feature available in the Neon API reference.

Example request:

curl -X POST \
  'https://console.neon.tech/api/v2/projects/{project_id}/branch_anonymized' \
  -H 'Authorization: Bearer $NEON_API_KEY' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "masking_rules": [
      {
        "database_name": "neondb",
        "schema_name": "public",
        "table_name": "users",
        "column_name": "email",
        "masking_function": "anon.dummy_free_email()"
      },
      {
        "database_name": "neondb",
        "schema_name": "public",
        "table_name": "users",
        "column_name": "age",
        "masking_function": "anon.random_int_between(25,65)"
      }
    ],
    "start_anonymization": true
  }'

The new APIs include:

For usage examples and request/response details, see Data anonymization APIs.

Neon status page migration

We've migrated neonstatus.com to a new provider. The domain remains the same and all historical incident data has been preserved.

If you've previously subscribed to the Neon Status page via RSS, you'll need to update your feed. For instructions, see Neon status.

API parameter deprecation
  • A redundant name query parameter in the Restore snapshot API endpoint has been deprecated. Use the name field in the request body instead.
Data masking
  • The Apply masking rules button on the Data masking page is now disabled when no masking rules have been changed, preventing unnecessary reapplication of masking rules.
  • Added placeholder text to the search field on the Data masking page to clarify that it searches for columns to anonymize.
Drizzle Studio
  • The Drizzle Studio integration that powers the Tables page in the Neon Console has been updated to version 1.2.9. For the latest improvements and fixes, see the Neon Drizzle Studio Integration Changelog.
Fixes
  • The Restore branch from modal displayed before completing a restore operation now only shows an expiration date extension message for branches that have an expiration date set. Previously, the message was shown for all branches, even those without an expiration date.
  • Fixed an issue where timestamps shown on the Restore branch from modal were formatted inconsistently, alternating between UTC and local timezone. Timestamps now consistently display in your local timezone.
  • For the Neon Data API, we fixed an issue where PostgreSQL custom types (such as ENUMs) containing capital letters in their names were not handled correctly.