diff --git a/apps/docs/content/guides/queues/quickstart.mdx b/apps/docs/content/guides/queues/quickstart.mdx index 065ef411fb16f..123553c82937e 100644 --- a/apps/docs/content/guides/queues/quickstart.mdx +++ b/apps/docs/content/guides/queues/quickstart.mdx @@ -157,7 +157,14 @@ Then enable the required roles permissions. Once your Queue has been created, you can begin enqueueing and dequeueing Messages. -Here's a TypeScript example using the official Supabase client library: + + ```tsx import { createClient } from '@supabase/supabase-js' @@ -205,3 +212,105 @@ const QueuesTest: React.FC = () => { export default QueuesTest ``` + + +<$Show if="sdk:dart"> + + +```dart +import 'package:supabase_flutter/supabase_flutter.dart'; + +final supabase = Supabase.instance.client; + +// Add a Message +Future sendToQueue() async { + final result = await supabase.schema('pgmq_public').rpc('send', params: { + 'queue_name': 'foo', + 'message': {'hello': 'world'}, + 'sleep_seconds': 30, + }); + print(result); +} + +// Dequeue Message +Future popFromQueue() async { + final result = await supabase.schema('pgmq_public').rpc('pop', params: { + 'queue_name': 'foo', + }); + print(result); +} +``` + + + +<$Show if="sdk:swift"> + + +```swift +import Supabase + +let supabase = SupabaseClient( + supabaseURL: URL(string: "supabaseURL")!, + supabaseKey: "supabaseKey" +) + +// Add a Message +func sendToQueue() async throws { + let result = try await supabase + .schema("pgmq_public") + .rpc("send", params: [ + "queue_name": AnyJSON.string("foo"), + "message": AnyJSON.object(["hello": "world"]), + "sleep_seconds": AnyJSON.integer(30) + ]) + .execute() + print(result) +} + +// Dequeue Message +func popFromQueue() async throws { + let result = try await supabase + .schema("pgmq_public") + .rpc("pop", params: ["queue_name": "foo"]) + .execute() + print(result) +} +``` + + + +<$Show if="sdk:python"> + + +```python +from supabase import create_client, Client + +supabase_url = "supabaseURL" +supabase_key = "supabaseKey" + +supabase: Client = create_client(supabase_url, supabase_key) + +# Add a Message +def send_to_queue(): + result = supabase.schema("pgmq_public").rpc( + "send", + { + "queue_name": "foo", + "message": {"hello": "world"}, + "sleep_seconds": 30, + } + ).execute() + print(result) + +# Dequeue Message +def pop_from_queue(): + result = supabase.schema("pgmq_public").rpc( + "pop", + {"queue_name": "foo"} + ).execute() + print(result) +``` + + + + diff --git a/apps/docs/content/troubleshooting/refresh-postgrest-schema.mdx b/apps/docs/content/troubleshooting/refresh-postgrest-schema.mdx index 94465972a60bc..f0924f532df65 100644 --- a/apps/docs/content/troubleshooting/refresh-postgrest-schema.mdx +++ b/apps/docs/content/troubleshooting/refresh-postgrest-schema.mdx @@ -1,19 +1,13 @@ --- title = "Reload/refresh postgrest schema" -topics = [ - "database", -] -keywords = [ - "schema", - "postgrest", -] +topics = [ "database" ] +keywords = [ "schema", "postgrest" ] +database_id = "b76ac13f-db24-4d19-9d00-af60c978cd26" -# Optionally, list the error messages associated with this issue. [[errors]] http_status_code = 400 code = "bad_request" message = "Could not find a relationship between X and Y in the schema cache" - --- To refresh your PostgREST schema, go to your project **Dashboard**, and open the **SQL Editor**. diff --git a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobTableCell.tsx b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobTableCell.tsx index 15b5ddaad32f2..1c43b1f139684 100644 --- a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobTableCell.tsx +++ b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobTableCell.tsx @@ -149,17 +149,25 @@ export const CronJobTableCell = ({ onClick={(e) => e.stopPropagation()} /> - - { - e.stopPropagation() - onRunCronJob() - }} - > - - Run command - + + + + { + e.stopPropagation() + onRunCronJob() + }} + > + + Run command + + + + Manual runs execute the command immediately and will not appear in the cron jobs + table. + + { diff --git a/apps/studio/components/interfaces/SignIn/SignInForm.tsx b/apps/studio/components/interfaces/SignIn/SignInForm.tsx index 92273af7afaff..80ebf5f4923e2 100644 --- a/apps/studio/components/interfaces/SignIn/SignInForm.tsx +++ b/apps/studio/components/interfaces/SignIn/SignInForm.tsx @@ -18,6 +18,7 @@ import { auth, buildPathWithParams, getReturnToPath } from 'lib/gotrue' import { Button, Form_Shadcn_, FormControl_Shadcn_, FormField_Shadcn_, Input_Shadcn_ } from 'ui' import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout' import { LastSignInWrapper } from './LastSignInWrapper' +import { Eye, EyeOff } from 'lucide-react' const schema = z.object({ email: z.string().min(1, 'Email is required').email('Must be a valid email'), @@ -31,6 +32,8 @@ export const SignInForm = () => { const queryClient = useQueryClient() const [_, setLastSignIn] = useLastSignIn() + const [passwordHidden, setPasswordHidden] = useState(true) + const [captchaToken, setCaptchaToken] = useState(null) const captchaRef = useRef(null) const [returnTo, setReturnTo] = useState(null) @@ -146,14 +149,26 @@ export const SignInForm = () => { render={({ field }) => ( - +
+ +
)} diff --git a/apps/www/_blog/2025-04-04-mcp-server.mdx b/apps/www/_blog/2025-04-04-mcp-server.mdx index e2e5dd88f088c..0635343898cd7 100644 --- a/apps/www/_blog/2025-04-04-mcp-server.mdx +++ b/apps/www/_blog/2025-04-04-mcp-server.mdx @@ -13,6 +13,12 @@ toc_depth: 3 launchweek: '14' --- + + Be sure to read our launch post about the [Supabase Remote MCP Server](/blog/remote-mcp-server), + and read our [MCP Server documentation](/docs/guides/getting-started/mcp) for the latest + information. + + We are launching an official [Supabase MCP server](https://github.com/supabase-community/supabase-mcp). You can use this server to connect your favorite AI tools (such as [Cursor](https://www.cursor.com/) or [Claude](https://claude.ai/download)) directly with Supabase.
diff --git a/apps/www/_blog/2025-10-08-triplit-joins-supabase.mdx b/apps/www/_blog/2025-10-08-triplit-joins-supabase.mdx index 2159ab2fbeb42..db59a0a0208a2 100644 --- a/apps/www/_blog/2025-10-08-triplit-joins-supabase.mdx +++ b/apps/www/_blog/2025-10-08-triplit-joins-supabase.mdx @@ -4,6 +4,8 @@ description: 'Matt Linkous is joining Supabase to expand third-party integration author: paul_copplestone image: triplit-joins-supabase/thumb.png thumb: triplit-joins-supabase/thumb.png +categories: + - company date: '2025-10-08:10:00:00' toc_depth: 2 --- diff --git a/apps/www/_blog/2025-10-16-snap-launches-snap-cloud.mdx b/apps/www/_blog/2025-10-16-snap-launches-snap-cloud.mdx new file mode 100644 index 0000000000000..23f072ada8083 --- /dev/null +++ b/apps/www/_blog/2025-10-16-snap-launches-snap-cloud.mdx @@ -0,0 +1,58 @@ +--- +title: 'Snap, Inc. Launches Snap Cloud, Powered by Supabase' +description: 'Snap Cloud is a new managed backend platform for developers building on Spectacles, powered by Supabase.' +author: inian +image: 2025-10-16-snap-launches-snap-cloud/og.png +thumb: 2025-10-16-snap-launches-snap-cloud/og.png +categories: + - product +date: '2025-10-16:10:00:00' +toc_depth: 2 +--- + +Today, Snap Inc. launched Snap Cloud, a new managed backend platform for developers building on Spectacles, powered by Supabase. Snap Cloud is a complete backend integrated directly into Snap's AR authoring tool, Lens Studio. + +Snap Cloud is the latest example of how organizations are using Supabase to power modern, data-driven experiences. Built on Supabase, Snap Cloud gives Spectacles developers instant access to a full Postgres [database](https://www.supabase.com/database), [real-time APIs](https://www.supabase.com/realtime), and globally distributed [Edge Functions](https://www.supabase.com/edge-functions) without any infrastructure setup. Supabase offers enterprise-grade security, compliance, and performance while preserving developer agility. + +For developers, this means they can store and query world data, sync live sessions across devices, and run AI-powered logic at the edge, all inside the same environment. + +## Lens Studio and Snap Cloud, powered by Supabase + +With Snap Cloud, Spectacles developers can now use backend capabilities directly inside Lens Studio, powered by Supabase. This integration makes it easier to build connected, data-driven AR experiences without needing to manage infrastructure. + +Supabase enables several key features in Lens Studio: + +- **Persistent data**: Save and query spatial anchors, object positions, and other world data in a managed Postgres database so experiences remain consistent across sessions and devices. +- **Realtime collaboration**: Sync shared scenes and user interactions with Supabase Realtime to create multiplayer or co-located AR experiences. +- **Authentication**: Manage user identities, permissions, and sessions. +- **Media storage**: Host and serve 3D assets, textures, and audio files with Supabase Storage for fast, scalable retrieval during runtime. +- **Edge compute**: Run server-side logic and AI models through Supabase Edge Functions to process input, perform inference, or trigger automations close to the user. +- **Analytics and telemetry**: Capture event data and sensor output in Postgres tables for performance tracking and real-time insight. + +Lens Studio, powered by Supabase + +Together, Lens Studio and Supabase form a full-stack platform for AR development on Spectacles. Snap provides the creative tools and hardware interface, while Supabase powers the data, logic, and scale behind every experience. + +## By the numbers + +Both Snap and Supabase operate at global scale, serving millions of developers and users each day. + +- Snapchatters use AR Lenses in the Snapchat camera 8 billion times per day, and over 400,000 developers have built more than 4 million Lenses with Snap's world-leading AR tools. +- 4,500,000+ developers building on Supabase +- 100,000+ API Calls / Second on Supabase +- 43,000+ Databases Launched Daily on Supabase +- 1,000,000+ Databases Managed on Supabase + +These metrics highlight the reliability and reach required for modern, data-intensive workloads. Whether running in Snap's Lens Studio or an enterprise control plane, Supabase delivers the performance, availability, and compliance developers expect from a production-grade platform. + +## Building the future together + +Snap Cloud is currently in alpha as part of Snap's upcoming Spectacles program and represents a new wave of applications that merge AI, data, and the physical world. Supabase is proud to provide the data platform behind it. + +At Supabase, we believe that every company, whether building AR glasses, smart devices, or next-generation applications, deserves the same foundation Snap is using for Spectacles: the power of Postgres, made simple, scalable, and ready for anything. diff --git a/apps/www/public/images/blog/2025-10-16-snap-launches-snap-cloud/lens-studio.jpg b/apps/www/public/images/blog/2025-10-16-snap-launches-snap-cloud/lens-studio.jpg new file mode 100644 index 0000000000000..0b924a77aeb3f Binary files /dev/null and b/apps/www/public/images/blog/2025-10-16-snap-launches-snap-cloud/lens-studio.jpg differ diff --git a/apps/www/public/images/blog/2025-10-16-snap-launches-snap-cloud/og.png b/apps/www/public/images/blog/2025-10-16-snap-launches-snap-cloud/og.png new file mode 100644 index 0000000000000..eb38e544daedb Binary files /dev/null and b/apps/www/public/images/blog/2025-10-16-snap-launches-snap-cloud/og.png differ