11 ms·
Prisma Raises $12M Series A
- sorenbs 6y agoPrisma co-founder here. I’m really excited to put this to good use and roll out many new futures in the coming months. Happy to answer any questions :-)
- poluyanov 6y agoProposal: Please do E2E framework where i can write the same code on client and on server side. For client side is very important to have Models for further rendering.
- sorenbs 6y agoThis is a really interesting area with lots of development. Have you tried https://redwoodjs.com/ https://redwoodjs.com/ or https://blitzjs.com/ https://blitzjs.com/ ? They both build on Prisma core data abstractions and provide a more full-featured experience. There will be talks later today at prisma.io/day
- 3327 6y agoHey, i have a great backend automation tools team, super senior crew, one of our projects fell through so if you need a solid team to build automation build systems etc. Happy to talk.
- XCSme 6y agoIs this meant for the average developer or for highly-scalable enterprises only? What is the problem with the current vast number of databases? I personally still use MySQL and MongoDB and don't have many complaints in regards to usability or performance.
- sorenbs 6y agoPrisma is not a database. It is a modern way for application developers to work with all the databases they already use. The main benefit is improved developer experience due to automatic generation of types, which gives you full code-cpmpletion for your database queries in JavaScript and TypeScript.
- XCSme 6y agoThank you, I noticed this soon after I wrote my comment. It took a while to understand that from the blog posts.
- dkhenry 6y agoI have been working with integrating Prisma with Vitess and it is a very nice platform. Of all the ORM's I have been working with testing I think it gets what I want out of an ORM better then almost every other ORM. I am excited to see how it matures and I think the combo of Rust for the engine and Typescript for the userspace is really a killer feature.
- hypewatch 6y agoWhy fundraise against the Prisma open source project instead of creating a new brand for the premium / enterprise product? Like how Confluent is separate from Kafka. As a developer, I prefer the Confluent/Kafka model because it’s crystal clear where the separation is between premium and open source.
- skrebbel 6y agoHow do you make money?
- poluyanov 6y agoPrisma 2.0 is Awesome! Just watched their's webinar.
- nikolasburk 6y agoFor everyone reading this, our Prisma Day conference is currently happening online! Join live here: https://prisma.io/day https://prisma.io/day
- sorenbs 6y agoYou can also join the dedicated Slack to ask questions for the live Q&A: https://slack.prisma.io https://slack.prisma.io
- addandsubtract 6y agoHow does Prisma compare to Objection?
- hervelabas 6y agoPrisma is a Query Builder, not an ORM (like Objection). We chose this approach since ORM suffer from the object-relational impedance mismatch problem (described here: https://en.wikipedia.org/wiki/Object-relational_impedance_mismatch https://en.wikipedia.org/wiki/Object-relational_impedance_mi...) We explain this in more details here: https://www.prisma.io/docs/understand-prisma/why-prisma#orms-less-control-better-productivity https://www.prisma.io/docs/understand-prisma/why-prisma#orms... or there: https://dataguide.prisma.io/types/relational/comparing-sql-query-builders-and-orms https://dataguide.prisma.io/types/relational/comparing-sql-q...
- cragsify 6y agoWhy do we need another generation of DB tools, what is wrong with what we have?
- sorenbs 6y agoThe way I think about this is that the old generation of DB tools make it possible for application developers to use databases. With Prisma we want to make it a delight. There are an order of magnitude more application developers today than just 10 years ago. This enable us to invest much more in the tools we all use, resulting in higher quality and a much better experience. So to turn it around - why _not_ build new and better tools?
- kevas 6y agoBecause someone will build tools off yours and then someone will build tools off theirs. Abstractions on abstractions on abstractions.
- sorenbs 6y agoI believe this is normally called innovation :-P
- dragonwriter 6y ago> Because someone will build tools off yours and then someone will build tools off theirs. Is that supposed to be a reason against? Enabling further progress sounds more like a reason for, not a reason against.
- gsvclass 6y agoLooking for something similar but not VC backed checkout Super Graph. It's very similar and in GO. Also it's not VC funded or even a startup just a good old open source project with a fast growing community. Super Graph can learn your DB schema and relationships and automatically compile GraphQL to a single efficient SQL query. Use it as a standalone service or a library in your own code. It also works with Rails auth, JWT, Firebase auth, supports OpenCensus tracking and tracing, designed to be high-performance and startup in few milliseconds fro scale to zero environments. It works with all kinds of DB relationships including polymorphic associations, JSON and Array columns, and much more. https://github.com/dosco/super-graph https://github.com/dosco/super-graph
- gsvclass 6y agoFYI Super Graph has a built-in migrations framework and you can write seed scripts in javascript with built-in fake data functions. https://supergraph.dev/docs/seed https://supergraph.dev/docs/seed
- gsvclass 6y agoAlso we currently expose a `GraphQL` function that can be used within your own GO apps as a way to replace ORMs and managing SQL. Just write the GraphQL and Super Graph will figure out the join, etc and build the most efficient single SQL query to do the job. We're expanding on this to expose the entire Super Graph service as an API. GO is a great language for web development (especially API backends) and Super Graph is a natural fit. Using it as a library gives you unlimited flexibility. The link below shows you a GraphQL example fetching posts, comments, threads, votes, etc all related imagine the code you don't have to write and maintain. when you use Super Graph. https://imgur.com/a/RNnoqXg https://imgur.com/a/RNnoqXg
- purplerabbit 6y agoAre there any tools out there that provide generated GQL APIs with auth provided via middleware? This looks nice, but I'm hesitant to use anything this config-file driven
- kevas 6y agoI’m not seeing why I’d use this over sql. Can someone please enlighten me as I find this to be much more gobbledegook than sql.
- lordofgibbons 6y agoMy first instinct was to say type safety, but you don't really get that with JS either way. Maybe it would be popular for new engineers that don't feel like learning SQL. Same reason why MongoDB got popular.
- kevas 6y agoMy first thought when I read “feel” in your comment was, “I don’t really care what they feel; if it’s in the job spec, they learn it or get a new job.” That may be a bit harsh, but I’d rather them learn something they can use forever rather than the flavor of the week. Additionally, by learning SQL, they’d be able to apply that domain knowledge to building out queries in the flavor of the week since you know some limitations of the underlying.
- derdude 6y ago> My first instinct was to say type safety, but you don't really get that with JS either way. Correct, but the main experience we are supporting is TypeScript, which has a beautifully designed type system. > Maybe it would be popular for new engineers that don't feel like learning SQL. Same reason why MongoDB got popular. We have more and more senior engineers who want to use Prisma, as they just realized that writing SQL by hand is a waste of time. Let's be honest - learning SQL is still a great skill. Data analytics etc - there are great use-cases. But if you want to get stuff done and scale your team when building an _application_ - you should have a data layer. That's what Facebook, Lyft, Airbnb etc did - they have a dedicated data layer and a team working on that. Do you think an application engineer at Facebook writes SQL? No. Of course not, it would be a total waste of time to let them touch such a low level. It would not allow facebook to scale to where they are, if everyone would write direct SQL. Now the thing is, most small teams don't have the capacity to write a really performant awesome data layer with caching, deduping etc. That's where Prisma comes into play - Prisma gives the weekend producthunt warriors, but also the enterprise teams (like Tryg) a way to abstract away the database. But it's just a library you say? That's true. So in that sense, Prisma is not really a "layer", a different component in your architecture that you can horizontally scale. For that - stay tuned. The "client" part can already easily be separated from the "query engine" part (which btw is written in Rust) because they speak http. But step by step. For most people, being able to install an npm dependency is the most important part here. But one thing you can already get used to - Prisma will stick around and _not_ just be a thing that new engineers who don't feel like SQL use.
- bovermyer 6y agoThe graphic under "Database tools are stuck with legacy paradigms" made me chuckle. Just because the tech under the "Legacy" column isn't the new hotness doesn't mean they're suddenly irrelevant or even a bad choice.
- pphysch 6y ago"Relational algebra only runs on PowerPC!!!"
- hypewatch 6y agoMe too! They also don’t make much sense. The innovation in data storage was from “self-hosted” to “managed”. That’s quite a broad generalization over what’s happened in data storage over the last several decades.
- jrumbut 6y agoYeah when I got there I went from curious to put off. That was the place to put an example showing something impressive rather than an iffy summary of web dev trends. I clicked around a bit. I heard a lot about motivations but couldn't figure out a specific situation where I would be really happy to be using Prisma.
- steve_adams_86 6y agoThis is exactly it. I know prisma developers are here, and if I could express one concern to them, it’s that the content I saw was pretty fluffy and I left without a clear idea of why it’s worth adding into my tool chain.
- Sujan 6y agoI don't think the table indicates "irrelevant or even a bad choice" at all - it just puts "old" and "new" next to each other. No reason not to use the older things if they work for you. But if they don't, never choices might help.
- nogabebop23 6y agoThey graph control vs. productivity and then throw their solution way up near the top-right in the success quadrant, with a bunch of questionable "benefits" and very little justification. It's not like I need to choose between an ORM, query builder and plain SQL either... Why can't I use any of them as the problem dictates?
- zookatron 6y agoI find it odd that they say "Prisma is ready for production", but "Prisma Migrate is currently in an experimental state and should not be used in production environments". Having a robust migration management system is one of the primary things I look for in an ORM/database management tool in general. The only constant is change when it comes to business requirements, and having the ability to easily and safely change the data model of your application is invaluable. Not having the migration tooling complete makes it difficult for me to seriously justify trying out the Prisma 2 ecosystem in general.
- airstrike 6y agoAs a counter example, Django was "ready for production" for ages before a third-party migration app (South) came along, let alone built-in support
- steve_adams_86 6y agoRight. Best practices are all well and good, but the reality is that tons of people are running in production with no migration strategy. I'm not saying it's not important or that Prism is fine without it. I wouldn't choose software without a tried, tested migration strategy available. Just... To a lot of people I've worked with, migrations are a nice-to-have that will probably never happen.
- danpalmer 6y agoIt was but at the time the state-of-the-art for migrations was to hire a DBA and have them do it. That's much less common now with migrations and database operations being owned by development teams much more, so the need for migration tooling is much higher now, especially in what I expect Prisma's target market is.
- nikolasburk 6y agoThat's totally fair! The first version of Prisma 2.0 includes Prisma Client [1] and introspection [2]. Prisma Migrate [3] is indeed still in the works, but we've shifted our focus a lot towards it now and you can expect major progress there over the next few weeks! We definitely see folks using Prisma Client with production happily in production already, but I agree once Migrate joins the production-ready club, the Prisma package will be fully complete :D [1] https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client https://www.prisma.io/docs/reference/tools-and-interfaces/pr... [2] https://www.prisma.io/docs/reference/tools-and-interfaces/introspection https://www.prisma.io/docs/reference/tools-and-interfaces/in... [3] https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-migrate https://www.prisma.io/docs/reference/tools-and-interfaces/pr...
- XCSme 6y agoI had a look over the quick start guide and the syntax looks almost indentical to Mongoose. Why is it "next generation" compared to Mongoose?
- XCSme 6y agoWait, I started reading through all the fluff on their description and it seems that Prisma is not a database but an interface/connector to more database solutions. So it's like Mongoose, but not only for MongoDB.
- jordanab 6y agoWhile the implementation certainly seems very nice, the ideas behind Prism 2 aren't particularly new, or unique for that matter. For example the .NET ecosystem already has (for a long time) most of the stuff that is presented as being uniquely offered by Prism: generated database clients (LINQ-to-SQL, Entity Framework), generated data models (EF POCO's), type-safe queries (LINQ) etc.
- sorenbs 6y agoThis is why we are focusing on the Node and Go ecosystems first :-) If you liked the developer experience in the .NET ecosystem but find yourself needing to work with JavaScript or Go, you'll probably like Prisma.
- abraxas 6y agoEverything is being reinvented from scratch in the JS world. The insistence on unifying into one language means that a lot of tried tested and true has been tossed aside and it's all being rebuilt sometimes with dubious benefit.
- hypewatch 6y agoAnd perhaps detriment. Nodejs apps are notoriously more difficult to keep secure because of how many npm dependencies are needed for a project and how often vulnerabilities are discovered in those dependencies.
- RedShift1 6y agoAnd at the end of the day all we do is select, insert, update and delete in some database.
- kevas 6y agoTrue true
- pmart123 6y agoSame thing happened with Python for data science in 2023-2015. ie reinvent SQL using Python DSL.
- markhalonen 6y agoa similar open source project is Postgraphile: https://www.graphile.org/postgraphile/ https://www.graphile.org/postgraphile/ I've used it on 3 non-trivial projects with great success
- djgrant 6y agoSecond this. I've used both Postgraphile and Prisma on production projects (they can work well together too). Both are cool, but Postgraphile is way more mature.
- KitDuncan 6y agoAlso Hasura.
- brunoluiz 6y agoThe end goal is goal is different: - Prisma is supposed to use as an ORM and not to be publicly exposed (although you can if you want) - Postgraphile is a way to create an API using only your DB schema as reference. There are some tricks here and there, but you would need to do dig quite deep in SQL. I tried postraphile and is quite cool for quick prototypes. Once you need something more custom, it gets tricky and weird (it is doable though). I haven’t tried Prisma in prod because, at the end, I am pretty happy with sqlc in Golang (code generator based on SQL queries).
- rgbrgb 6y agoPlayed around with postgraphile a bit and love how easy it is to stand up a graphql endpoint with a ton of features. Liked it a lot more than hasura because you could use it as a library to expose a graphql endpoint on a next.js api endpoint rather than running as a separate service. I do wonder how a project built with a lot of logic in the DB ends up evolving over time. With a Rails project (my recent professional experience) if we're tweaking a feature, I can refer a new engineer to my_feature.rb where they'll find all the logic around that feature. With triggers and functions in the DB, it seems like there's not a common notion of organizing the source code. Anyone dealt with that in the past? The thing that's attractive to me about Prisma is that the mental model seems a lot closer to ActiveRecord and I just understand that way of working and scaling a productive team using it.
- hypewatch 6y agoDoes Prisma have a business model or premium version I’m not aware of? I don’t see anything on their site around premium options. Not sure why Amplify Partners would invest in Prisma unless they were planning on dedicating substantial resources to a premium / enterprise version. From what I understand, prisma is an open source query builder for node/ts. Like sqlalchemy-core in python, which has been around for a long time. > While almost any other part of the development stack has been modernized, database tools have been stuck with the same paradigms for the last decades. This is simply not true. Perhaps that’s been the case in the node.js world but it has certainly not been the case in other server-side languages.
- nikolasburk 6y agoWe've alluded to this in the blog post as well: > We are commited to building world-class open-source tools to solve common database problems of application developers. To be able to sustain our open-source work, we're planning to build commercial services that will enable development teams and organizations to collaborate better in projects that are using Prisma. So, your hunch is correct that later down the road we'll invest into building commercial cloud services for teams and enterprises that are using Prisma's open source tool!
- hypewatch 6y agoOh, it’s mentioned in the very last paragraph!
- desmap 6y agoRelated and FWIW: I checked all solutions in this space and I stuck with type-graphql which is not only an amazing lib but offers a clean architecture: Decorated Typescript types as classes dictate the GraphQL schema and the DB model (either through further decorator libs or custom solutions). So, you end up with only one source of truth + stay DRY + very low level of abstractions. There is some debate around the right approach but I much prefer this approach over the others such as DB-model-first (Hasura) or Prisma 2 which I remember has its own DSL for modeling data.
- nikolasburk 6y agoTypeGraphQL and Prisma are not really comparable though. Prisma is an open-source database toolkit (much like an ORM), TypeGraphQL is a GraphQL schema construction library (like `graphql-js` or `@nexus/schema`), they solve very different problems! You can even combine Prisma with TypeGraphQL if you're building a GraphQL server that needs to access a databases. In that case, you'd use Prisma Client inside your TypeGraphQL resolvers to send database queries. In fact, we are collaborating with the maintainer of TypeGraphQL to build an integration between Prisma and TypeGraphQL that will allow you to leverage information from your Prisma models when building your GraphQL schema! :)
- desmap 6y agoThey can be compared in terms of who dictates the model/is the leading source of truth. I saw that you integrate with type-graqhql but the integration hasn't convinced me yet, somehow type-graqhql loses its elegance with the resulting architecture. Besides, did you sponsor type-graqhql's maintainer to collaborate with Prisma 2?
- hervelabas 6y ago> They can be compared in terms of who dictates the model/is the leading source of truth. You can also use introspection to keep the database as the source of truth for the model, and lean on the Prisma schema for type safety if you prefer.
- deleted 6y ago[deleted]
- hn_reddit_human 6y agoI mentioned this the last time, but I find it surprising that the Prisma ORM doesn't support transactions or aggregations? Any thoughts from the Prisma team? It kind of seems like table stakes. I commented on this previously as well: https://news.ycombinator.com/item?id=23467427 https://news.ycombinator.com/item?id=23467427
- Sujan 6y agoThis time I can answer that some aggregations are in the current milestone: https://github.com/prisma/prisma/issues/2838 https://github.com/prisma/prisma/issues/2838 That could mean they will be available very soon. (If you are missing any other ones, please comment on that issue or create a new one!) Transactions were actually included in the last release https://github.com/prisma/prisma/releases/tag/2.1.0 https://github.com/prisma/prisma/releases/tag/2.1.0 (search for `transactionApi`) in a specific form behind a feature flag (batch transactions, not long running transactions).
- lukeholder 6y agoBefore I could consider Prisma, it would need to support full transactions: https://github.com/prisma/prisma/issues/1844 https://github.com/prisma/prisma/issues/1844
- lukeholder 6y agoHow could I write any serious ecommerce/financial product with Prisma without transactions? Thats is crazy. Sticking with Postgres and plain ol' SQL!
- sorenbs 6y agoPrisma supports transactions through the `prisma.transaction` API. This allow you to perform multiple DB actions in a single request and gives you an all-or-nothing semantic.
- hn_reddit_human 6y ago
- heymartinadams 6y agoI’m so happy for the entire team at Prisma. Been following Prisma since early 2017 and they deserve every bit of this success. Their entire focus has been on how to better serve their customers (developers). And, yes, their tech is 10x better than anything out there.
- GrumpyNl 6y agoAll those tools while the real problem is that a lot of people working with relational db's dont know the basics. Ask them to do a proper join and see what you get.
- realtalk_sp 6y agoI've been pretty ecstatic with the combination of TypeORM and TypeGraphQL if anyone is looking for an alternative.
- opqpo 6y agoWhat is their business model?
- darsoli 6y agoThe query language here looks eerily similar to what we use for our ORM in Node.js. It's called Sequelize (https://sequelize.org/ https://sequelize.org/) -- how does this project compare / what are the main differences?
- jasonhero 6y agoI've been using prisma for a couple months now at my employer. The longer I use it, the more frustrated I find myself with the tool. Here's a list of a few things out of many that you can't do with this tool (Prisma Migrate): * Renaming columns/tables * Migrating data from one column/table to another column/table. * Write anything that isn't a table definition, such as procedures, functions, events, transactions, etc. I think people are attracted to prisma at first because a single state definition of your database seems nice, but then once you wisen up you realize you're sacrificing a lot for it. There's just no way to effectively track changes like the name changing of a column between states with this sort of system. Writing your migrations in SQL with tools like Flyway is a much more flexible and sustainable approach, in my opinion.
- joshring 6y agoI agree, all of the "do it all" database tools have always hurt in the long term in every system I've worked on that uses them (TypeOrm, Prisma, etc..) From what I can tell it is always better to just learn and understand the database you are using and create it by hand. You may spend a tiny bit longer with basic crud boiler plate, but it will benefit you greatly in the long term to just have solid native migrations setup. And a framework that simply works with your database schema, rather than having an opinion forced on your database. In Prisma, Typeorm, etc you are a slave to what the ORM wants the database to look like. Tools like Objection, jOOQ, etc are all much easier to work with in the long term and allow you to tune your database by hand and without random framework constraints. Prisma is great if you plan on never maintaining past your MVP, so I guess it makes sense that startups use it and get stuff out the door quickly, but I don't find it as a long term solution or for it to ever be able to handle complicated situations that _will happen_ to your database in the future. Edited: Spelling
- deleted 6y ago[deleted]
- albertoperdomo 6y agoHello @joshring, I'm with the product team at Prisma, currently focusing on migrations. >Prisma is great if you plan on never maintaining past your MVP, so I guess it makes sense that startups use it and get stuff out the door quickly We want Prisma to help developers get stuff out the door faster but our ultimate goal is to support developers throughout the entire application lifecycle. We are working on improving Migrate and hope to deliver improvements over the next few months that hopefully can help you change your mind about our toolkit. :)
- jaeming 6y agoI'm very excited about the work Prisma is doing. I didn't get it at first but after trying it out, it was the best ORM experience I've had in Javascript. It introspects your DB and generates a client that provides typescript definitions for your queries. When I try to select a non-existent field or relation, I get warned via ts. Right now it's mainly their client that is production ready but they are making great progress on their migrations tooling. For now I still write my migrations in raw SQL, but I'll probably swicth to prisma-based migrations once it's a bit more mature.
- jasonhero 6y agoI do find the typed query builder interesting, I don't think it's fully "there" yet in terms of functionality. I think they need to ditch the whole 'definitive single state' database model and just lean hard into the typed query builder. I'd seriously consider it if they were to implement similar functionality as the Java JOOQ library.