Supabase, an open-source alternative to Firebase, has raised $200 million in Series D funding, bringing its valuation to $2 billion. This latest round, led by Lightspeed Venture Partners, will fuel the company's growth as it aims to build the best developer experience for Postgres. Supabase offers a suite of tools including a database, authentication, edge functions, and storage, all based on open-source technologies. The company plans to use the funding to expand its team and further develop its platform, focusing on enterprise-grade features and improving the developer experience.
The blog post "Hacking the Postgres Wire Protocol" details a low-level exploration of PostgreSQL's client-server communication. The author reverse-engineered the protocol by establishing a simple connection and analyzing the network traffic, deciphering message formats for startup, authentication, and simple queries. This involved interpreting various data types and structures within the messages, ultimately allowing the author to construct and send their own custom protocol messages to execute SQL queries directly, bypassing existing client libraries. This hands-on approach provided valuable insights into the inner workings of PostgreSQL and demonstrated the feasibility of interacting with the database at a fundamental level.
Several Hacker News commenters praised the blog post for its clear explanation of the Postgres wire protocol, with some highlighting the helpful use of Wireshark screenshots. One commenter pointed out a potential simplification in the code by directly using the pq
library's Parse
function for extended query messages. Another commenter expressed interest in a similar exploration of the MySQL protocol, while another mentioned using a similar approach for testing database drivers. Some discussion revolved around the practical applications of understanding the wire protocol, with commenters suggesting uses like debugging network issues, building custom proxies, and developing specialized database clients. One user noted the importance of such low-level knowledge for tasks like optimizing database performance.
PostgreSQL's full-text search functionality is often unfairly labeled as slow. This perception stems from common misconfigurations and inefficient usage. The blog post demonstrates that with proper setup, including using appropriate data types (like tsvector
for indexed documents and tsquery
for search terms), utilizing GIN indexes on tsvector
columns, and leveraging stemming and other linguistic features, PostgreSQL's full-text search can be extremely performant, even on large datasets. Furthermore, optimizing queries by using appropriate operators and understanding how ranking works can significantly improve search speed. The post emphasizes that understanding and correctly implementing these techniques are key to unlocking PostgreSQL's full-text search potential.
Hacker News users generally agreed with the article's premise that PostgreSQL full-text search can be performant if implemented correctly. Several commenters shared their own positive experiences, highlighting the importance of proper indexing and configuration. Some pointed out that while PostgreSQL's full-text search might not outperform specialized solutions like Elasticsearch or Algolia for very large datasets or complex queries, it's more than adequate for many use cases. A few cautioned against using stemming without careful consideration, as it can lead to unexpected results. The discussion also touched upon the benefits of using pg_trgm for fuzzy matching and the trade-offs between different indexing strategies.
Hatchet v1 is a new open-source task orchestration platform built on top of Postgres. It aims to provide a reliable and scalable way to define, execute, and manage complex workflows, leveraging the robustness and transactional guarantees of Postgres as its backend. Hatchet uses SQL for defining workflows and Python for task logic, allowing developers to manage their orchestration entirely within their existing Postgres infrastructure. This eliminates the need for external dependencies like Redis or RabbitMQ, simplifying deployment and maintenance. The project is designed with an emphasis on observability and debuggability, featuring a built-in web UI and integration with logging and monitoring tools.
Hacker News users discussed Hatchet's reliance on Postgres for task orchestration, expressing both interest and skepticism. Some praised the simplicity and the clever use of Postgres features like LISTEN/NOTIFY for real-time updates. Others questioned the scalability and performance compared to dedicated workflow engines like Temporal or Airflow, particularly for complex workflows and high throughput. Several comments focused on the potential limitations of using SQL for defining workflows, contrasting it with the flexibility of code-based approaches. The maintainability and debuggability of SQL-based workflows were also raised as potential concerns. Finally, some commenters appreciated the transparency of the architecture and the potential for easier integration with existing Postgres-based systems.
pg-mcp is a cloud-ready Postgres Minimum Controllable Postgres (MCP) server designed for testing and experimentation. It simplifies Postgres setup and management by providing a pre-built, containerized environment that can be easily deployed with Docker. This allows developers to quickly spin up a disposable Postgres instance for tasks like testing migrations, experimenting with different configurations, or reproducing bugs, without the overhead of managing a full-fledged database server.
HN commenters generally expressed interest in the project, praising its potential for simplifying multi-primary PostgreSQL setups. Several users questioned the performance implications, particularly regarding conflict resolution and latency. Some pointed out existing solutions like BDR and Patroni, suggesting comparisons would be beneficial. The discussion also touched on the complexities of handling schema changes in a multi-primary environment and the need for robust conflict resolution strategies. A few commenters expressed concerns about the project's early stage of development, emphasizing the importance of thorough testing and documentation. The overall sentiment leaned towards cautious optimism, acknowledging the project's ambition while recognizing the inherent challenges of multi-primary databases.
The Postgres Language Server, now in its initial release, brings rich IDE features like auto-completion, hover hints, go-to-definition, and diagnostics to PostgreSQL development. Built using Rust and Tree-sitter, it parses SQL and PL/pgSQL, offering improved developer experience within various code editors and IDEs via the Language Server Protocol (LSP). While still early in its development, the project aims to enhance PostgreSQL coding workflows with intelligent assistance and real-time feedback.
Hacker News users generally expressed enthusiasm for the Postgres Language Server, praising its potential and the effort put into its development. Some highlighted its usefulness for features like auto-completion, go-to-definition, and hover information within SQL editors. A few commenters compared it favorably to existing tools, suggesting it could be a superior alternative. Others discussed specific desired features, such as integration with pgTAP for testing and improved support for PL/pgSQL. There was also interest in the project's roadmap, with inquiries about planned support for other PostgreSQL features.
Sharding pgvector
, a PostgreSQL extension for vector embeddings, requires careful consideration of query patterns. The blog post explores various sharding strategies, highlighting the trade-offs between query performance and complexity. Sharding by ID, while simple to implement, necessitates querying all shards for similarity searches, impacting performance. Alternatively, sharding by embedding value using locality-sensitive hashing (LSH) or clustering algorithms can improve search speed by limiting the number of shards queried, but introduces complexity in managing data distribution and handling edge cases like data skew and updates to embeddings. Ultimately, the optimal approach depends on the specific application's requirements and query patterns.
Hacker News users discussed potential issues and alternatives to the author's sharding approach for pgvector, a PostgreSQL extension for vector embeddings. Some commenters highlighted the complexity and performance implications of sharding, suggesting that using a specialized vector database might be simpler and more efficient. Others questioned the choice of pgvector itself, recommending alternatives like Weaviate or Faiss. The discussion also touched upon the difficulties of distance calculations in high-dimensional spaces and the potential benefits of quantization and approximate nearest neighbor search. Several users shared their own experiences and approaches to managing vector embeddings, offering alternative libraries and techniques for similarity search.
DiceDB is a decentralized, verifiable, and tamper-proof database built on the Internet Computer. It leverages blockchain technology to ensure data integrity and transparency, allowing developers to build applications with enhanced trust and security. It offers familiar SQL queries and ACID transactions, making it easy to integrate into existing workflows while providing the benefits of decentralization, including censorship resistance and data immutability. DiceDB aims to eliminate single points of failure and vendor lock-in, empowering developers with greater control over their data.
Hacker News users discussed DiceDB's novelty and potential use cases. Some questioned its practical applications beyond niche scenarios, doubting the need for a specialized database for dice rolling mechanics. Others expressed interest in its potential for game development, simulations, and educational tools, praising its focus on a specific problem domain. A few commenters delved into technical aspects, discussing the implementation of probability distributions and the efficiency of the chosen database technology. Overall, the reception was mixed, with some intrigued by the concept and others skeptical of its broader relevance. Several users requested clarification on the actual implementation details and performance benchmarks.
PG-Capture offers an efficient and reliable way to synchronize PostgreSQL data with search indexes like Algolia or Elasticsearch. By capturing changes directly from the PostgreSQL write-ahead log (WAL), it avoids the performance overhead of traditional methods like logical replication slots. This approach minimizes database load and ensures near real-time synchronization, making it ideal for applications requiring up-to-date search functionality. PG-Capture simplifies the process with a single, easy-to-configure binary and supports various output formats, including JSON and Protobuf, allowing flexible integration with different indexing platforms.
Hacker News users generally expressed interest in PG-Capture, praising its simplicity and potential usefulness. Some questioned the need for another Postgres change data capture (CDC) tool given existing options like Debezium and logical replication, but the author clarified that PG-Capture focuses specifically on syncing indexed data with search services, offering a more targeted solution. Concerns were raised about handling schema changes and the robustness of the single-threaded architecture, prompting the author to explain their mitigation strategies. Several commenters appreciated the project's MIT license and the provided Docker image for easy testing. Others suggested potential improvements like supporting other search backends and offering different output formats beyond JSON. Overall, the reception was positive, with many seeing PG-Capture as a valuable tool for specific use cases.
This blog post explores different ways to represent graph data within PostgreSQL. It primarily focuses on the adjacency list model, using a simple table with "source" and "target" columns to define relationships between nodes. The author demonstrates how to perform common graph operations like finding neighbors and traversing paths using recursive CTEs (Common Table Expressions). While acknowledging other models like adjacency matrix and nested sets, the post emphasizes the adjacency list's simplicity and efficiency for many graph use cases within a relational database context. It also briefly touches on performance considerations and the potential for using materialized views for complex or frequently executed queries.
Hacker News users discussed the practicality and performance implications of representing graphs in PostgreSQL. Several commenters highlighted the existence of specialized graph databases like Neo4j and questioned the suitability of PostgreSQL for complex graph operations, especially at scale. Concerns were raised about the performance of recursive queries and the difficulty of managing deeply nested relationships. Some suggested that while PostgreSQL can handle simpler graph scenarios, dedicated graph databases offer better performance and features for more complex graph use cases. A few commenters mentioned alternative approaches within PostgreSQL, such as using JSON fields or the extension pg_graphql
. Others pointed out the benefits of using PostgreSQL for graphs when the graph aspect is secondary to other relational data needs already served by the database.
Wger is a free and open-source (FLOSS) web application for tracking fitness activities. It allows users to log exercises, create custom workouts, manage their weight and body measurements, and analyze progress with charts and graphs. Wger also includes a large database of exercises with images and instructions, nutritional information, and the ability to create training plans. The application can be self-hosted, offering users full control over their data and privacy.
Hacker News users discussed the self-hosted Wger fitness tracker, primarily focusing on its utility and features. Several commenters expressed interest in using it or already using it successfully, praising its simplicity and the control it offers over their fitness data. Some desired more advanced features like workout suggestions, exercise variations, and progress tracking visualizations. The ability to import/export data was also a key concern. A few users questioned the sustainability of the project, particularly regarding updates and bug fixes, and suggested incorporating routines from sources like Reddit's r/fitness. Overall, the sentiment was positive, with users appreciating the existence of a FLOSS alternative to commercial fitness trackers.
PgAssistant is an open-source command-line tool designed to simplify PostgreSQL performance analysis and optimization. It collects key performance indicators, configuration settings, and schema details, presenting them in a user-friendly format. PgAssistant then provides tailored recommendations for improvement based on best practices and identified bottlenecks. This allows developers to quickly diagnose issues related to slow queries, inefficient indexing, or suboptimal configuration parameters without deep PostgreSQL expertise.
HN users generally praised pgAssistant, calling it a "great tool" and highlighting its usefulness for visualizing PostgreSQL performance. Several commenters appreciated its ability to present complex information in a user-friendly way, particularly for developers less experienced with database administration. Some suggested potential improvements, such as adding support for more metrics, integrating with other tools, and providing deeper analysis capabilities. A few users mentioned similar existing tools, like pganalyze and pgHero, drawing comparisons and discussing their respective strengths and weaknesses. The discussion also touched on the importance of query optimization and the challenges of managing PostgreSQL performance in general.
This post outlines essential PostgreSQL best practices for improved database performance and maintainability. It emphasizes using appropriate data types, including choosing smaller integer types when possible and avoiding generic text
fields in favor of more specific types like varchar
or domain types. Indexing is crucial, advocating for indexes on frequently queried columns and foreign keys, while cautioning against over-indexing. For queries, the guide recommends using EXPLAIN
to analyze performance, leveraging the power of WHERE
clauses effectively, and avoiding wildcard leading characters in LIKE
queries. The post also champions prepared statements for security and performance gains and suggests connection pooling for efficient resource utilization. Finally, it underscores the importance of vacuuming regularly to reclaim dead tuples and prevent bloat.
Hacker News users generally praised the linked PostgreSQL best practices article for its clarity and conciseness, covering important points relevant to real-world usage. Several commenters highlighted the advice on indexing as particularly useful, especially the emphasis on partial indexes and understanding query plans. Some discussed the trade-offs of using UUIDs as primary keys, acknowledging their benefits for distributed systems but also pointing out potential performance downsides. Others appreciated the recommendations on using ENUM
types and the caution against overusing triggers. A few users added further suggestions, such as using pg_stat_statements
for performance analysis and considering connection pooling for improved efficiency.
plrust is a PostgreSQL extension that allows developers to write stored procedures and functions in Rust. It leverages the PostgreSQL procedural language handler framework and offers safe, performant execution within the database. By compiling Rust code into shared libraries, plrust provides direct access to PostgreSQL internals and avoids the overhead of external processes or interpreters. This allows developers to harness Rust's speed and safety for complex database tasks while integrating seamlessly with existing PostgreSQL infrastructure.
HN users discuss the complexities and potential benefits of writing PostgreSQL extensions in Rust. Several express interest in the project (plrust), citing Rust's performance advantages and memory safety as key motivators for moving away from C. Concerns are raised about the overhead of crossing the FFI boundary between Rust and PostgreSQL, and the potential difficulties in debugging. Some commenters suggest comparing plrust's performance to existing solutions like PL/pgSQL and C extensions, while others highlight the potential for improved developer experience and safety that Rust offers. The maintainability of generated Rust code from PostgreSQL queries is also questioned. Overall, the comments reflect cautious optimism about plrust's potential, tempered by a pragmatic awareness of the challenges involved in integrating Rust into the PostgreSQL ecosystem.
Mathesar is an open-source tool providing a spreadsheet-like interface for interacting with Postgres databases. It allows users to visually explore, query, and edit data within their database tables using a familiar and intuitive spreadsheet paradigm. Features include filtering, sorting, aggregation, and the ability to create and execute SQL queries directly within the interface. Mathesar aims to make database management more accessible to non-technical users while still offering the power and flexibility of SQL for more advanced operations.
HN commenters generally express enthusiasm for Mathesar, praising its intuitive spreadsheet interface for database interaction. Some compare it favorably to Airtable, while others highlight potential benefits for non-technical users and data exploration. Concerns raised include performance with large datasets, the potential learning curve despite aiming for simplicity, and competition from existing tools. Several users suggest integrations and features like better charting, pivot tables, and scripting capabilities. The project's open-source nature is also lauded, with some offering contributions or expressing interest in the underlying technology. A few commenters mention the challenge of balancing spreadsheet simplicity with database power.
This blog post details how to enhance vector similarity search performance within PostgreSQL using ColBERT reranking. The authors demonstrate that while approximate nearest neighbor (ANN) search methods like HNSW are fast for initial retrieval, they can sometimes miss relevant results due to their inherent approximations. By employing ColBERT, a late-stage re-ranking model that performs fine-grained contextual comparisons between the query and the top-K results from the ANN search, they achieve significant improvements in search accuracy. The post walks through the process of integrating ColBERT into a PostgreSQL setup using the pgvector extension and provides benchmark results showcasing the effectiveness of this approach, highlighting the trade-off between speed and accuracy.
HN users generally expressed interest in the approach of using PostgreSQL for vector search, particularly with the Colbert reranking method. Some questioned the performance compared to specialized vector databases, wondering about scalability and the overhead of the JSONB field. Others appreciated the accessibility and familiarity of using PostgreSQL, highlighting its potential for smaller projects or those already relying on it. A few users suggested alternative approaches like pgvector, discussing its relative strengths and weaknesses. The maintainability and understandability of using a standard database were also seen as advantages.
The blog post details an experiment integrating AI-powered recommendations into an existing application using pgvector, a PostgreSQL extension for vector similarity search. The author outlines the process of storing user interaction data (likes and dislikes) and item embeddings (generated by OpenAI) within PostgreSQL. Using pgvector, they implemented a recommendation system that retrieves items similar to a user's liked items and dissimilar to their disliked items, effectively personalizing the recommendations. The experiment demonstrates the feasibility and relative simplicity of building a recommendation engine directly within the database using readily available tools, minimizing external dependencies.
Hacker News users discussed the practicality and performance of using pgvector for a recommendation engine. Some commenters questioned the scalability of pgvector for large datasets, suggesting alternatives like FAISS or specialized vector databases. Others highlighted the benefits of pgvector's simplicity and integration with PostgreSQL, especially for smaller projects. A few shared their own experiences with pgvector, noting its ease of use but also acknowledging potential performance bottlenecks. The discussion also touched upon the importance of choosing the right distance metric for similarity search and the need to carefully evaluate the trade-offs between different vector search solutions. A compelling comment thread explored the nuances of using cosine similarity versus inner product similarity, particularly in the context of normalized vectors. Another interesting point raised was the possibility of combining pgvector with other tools like Redis for caching frequently accessed vectors.
Summary of Comments ( 126 )
https://news.ycombinator.com/item?id=43763225
Hacker News commenters discuss Supabase's impressive fundraising round, with some expressing excitement about its potential to disrupt the cloud market and become a viable Firebase alternative. Skepticism arises around the high valuation and whether Supabase can truly differentiate itself long-term, especially given the competitive landscape. Several commenters question the sustainability of its open-source approach and the potential challenges of scaling while remaining developer-friendly. Others delve into specific technical aspects, comparing Supabase's features and performance to existing solutions and pondering its long-term strategy for handling edge cases and complex deployments. A few highlight the rapid growth and strong community as positive indicators, while others caution against over-hyping the platform and emphasize the need for continued execution.
The Hacker News post discussing Supabase's $200M Series D funding round at a $2B valuation generated a moderate number of comments, mostly focusing on Supabase's business model, open-source nature, and comparisons to other database solutions.
Several commenters questioned Supabase's path to profitability, particularly given its open-source core. One commenter wondered how Supabase plans to monetize its open-source offerings, pointing out that simply offering hosting services might not be enough to sustain a $2B valuation. They expressed concern about the long-term viability of a business relying heavily on open-source components. Another commenter echoed this concern, suggesting that the abundance of open-source alternatives in the database space could make it challenging for Supabase to differentiate itself and generate substantial revenue.
A recurring theme was the comparison of Supabase to Firebase. Some commenters highlighted Supabase's positioning as an open-source alternative to Firebase, emphasizing the benefits of avoiding vendor lock-in. They appreciated the flexibility and control that Supabase offers compared to Firebase's closed-source nature. One user, apparently familiar with both platforms, described Supabase as offering a superior developer experience, particularly praising its intuitive interface and ease of use.
There was also discussion about the complexities of building and scaling database solutions. One commenter, identifying as a database engineer, acknowledged the inherent challenges of creating a robust and scalable database system. They expressed skepticism about Supabase's ability to compete with established players in the market long-term, suggesting that the technical hurdles involved in building and maintaining a high-performance database are significant.
Furthermore, there was some debate about the valuation itself. Some commenters questioned whether a $2B valuation was justified, given the competitive landscape and the challenges inherent in the database market. However, others pointed to the rapid growth and popularity of Supabase as potential justification for the high valuation.
Finally, a few commenters shared their positive experiences with Supabase, praising its ease of use and developer-friendly features. They highlighted the speed and efficiency of the platform, suggesting it is a viable alternative to traditional database solutions. One user specifically mentioned using Supabase for hobby projects, suggesting its accessibility and ease of setup make it appealing to a wider range of developers beyond just enterprise users.