You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As of today, the Go client has been transferred from @prisma to my personal GitHub @steebchen (thank you @prisma and especially @janpio!), and I’m happy to announce I am back to working towards a production-ready Go client (right now I would consider it alpha).
I will maintain the Go client myself from now on. If you are interested in more features getting built or want to support my work, feel free to sponsor me, or ask your employer about it. The Go client itself, including what it depends on such as the Prisma core tools, will obviously always remain open source (everything, including the full docs, are licensed under Apache 2).
I joined Prisma to work on the Go client in 2020, and it was great. However, it was clear even back then that it was an experiment, and the work could be stopped at any time. Prisma’s vision was supporting many databases and many languages with Prisma sitting in between, which is why money and work were invested in the Go client in the first place, but unfortunately the budget and priorities couldn’t match this goal in the short term. Eventually, Prisma decided to stop the work on the Go client, which is why Prisma and I parted ways on good terms. While I and many others were disappointed, please understand that the decision was not taken lightly, and it had to be done, as the company has investors, other goals, and doing what Prisma does is incredibly time-consuming. I also want to say that working at Prisma was one of my best work experiences; all people there are just nice and delightful to work with. Anyway, since then, I sometimes did some stuff on the Go client, but it hasn’t really gotten mine or anyone else’s attention. It was in a weird state and not owned by anyone; still under @prisma’s org, but not maintained.
A big reason why the Go client didn’t take off was probably because it was never really launched as production-ready, which was also the number one critique, especially after it was stopped being maintained. I strongly believe that the Prisma Go client is solving a real problem and would be liked by many people working with Go, and that more people and companies would use the client, if it would be stable. I also believe we partially focused on the wrong things, but I'm trying to learn from it and applying it from now on.
This is why I am hereby reviving the Go client under my own GitHub, and hoping we can improve the database experience with Go for everyone.
Since I’m just getting started on this, note that I am not working full time on this, and I am looking for sponsorships for the Go client to make it economically viable. I believe that the core features work reliably, but there are so many great features which I want to implement, but don’t have the time to work on it, as I’m not paid for it anymore. If you are interested in a sponsorship, I also combine this with dedicated help on setting up the Go client in your company and ongoing support and bug/features prioritization. The more sponsors I can find, the more time I can allocate to the Go client.
The biggest goal for me right now is to make this transition work and work towards a “production-ready” Go client. I wouldn’t call it experimental anymore, maybe “alpha” would fit best at this time, and the next step would be a beta.
At the same time, I will think about some monetization, because in the end that is the only viable way to develop new features, especially larger ones.
The Go client itself, the code, issues and discussion will obviously always remain free; the code itself is also licensed via Apache 2 (as is all Prisma source code, it’s similar to MIT) and it will always remain so.
Short-Term Roadmap
I already upgraded to the latest Prisma version and adapted all the internal changes. Note that you now need to use the package github.com/steebchen/prisma-client-go and upgrade if you have an existing Go client project.
Maintenance. This includes critical bug fixes and Prisma CLI & Engine updates (this can lack behind though, as the Prisma team is not waiting for my approval, and I have to adapt for any breaking changes on my own timeline)
Publish standalone docs page with search – this already live athttps://goprisma.org/
Prioritize and potentially clean up existing bugs and features
Try to work on some useful features such as better Error handling or typed count queries, but this depends on my time (if I get more sponsorships, I’ll be able to dedicated more time to it)
Get the word out. I’m not particularly good at marketing, but I will try to think of some ways to get more users to use the client, and ideally find some sponsorships, so I can dedicate more time to all of this
Long-Term Roadmap
Bigger items in the roadmaps which don’t have priority, but I eventually want to work on:
UX improvements. For example, improving the onboarding by making prisma init work with the Go client
Error handling (this is lacking behind due to the Prisma core)
Improve edge cases and some uncovered compiling code which will fail at runtime. This might be tricky as Go’s type safety is not very flexible, even with generics
Support native ARM usage. The Go client and the CLI work on ARM (M1&M2) Macs in general, however there might be issues when combining with docker #809
Marketing, maybe. Would be great if the Go client shows up if people search for “Go ORM” or “Golang db client” etc.
Much more, this is an ongoing thing :)
The next big goal would be to make the client “production-ready”. Since production-ready doesn’t have any specific meaning, it will be an ongoing process to monitor usages of the Go client in the next few months and figure out if there are any major issues or blockers. I’ll probably make a separate issue about this in the coming weeks with items to work towards to.
There are some To-Dos which I would love to have in the future, but don’t have the capacity for as they take a lot of time. Feel free to sponsor me for higher chances of me actually working on this.
Rust/CGO bindings for the Prisma Engine (this is a massive task which would need a big sponsor). It needs low-level work not just in the Go client itself, but also in the Prisma Engines, but it is super nice to have and will improve performance, stability and overall UX)
Please let me know what you think, if you want to contribute, and what features you’d like to see!
Spread the world, tell your employer about this, the bigger this gets, the more we can improve Go’s database ecosystem.
The text was updated successfully, but these errors were encountered:
Dear Gophers,
As of today, the Go client has been transferred from @prisma to my personal GitHub @steebchen (thank you @prisma and especially @janpio!), and I’m happy to announce I am back to working towards a production-ready Go client (right now I would consider it alpha).
I will maintain the Go client myself from now on. If you are interested in more features getting built or want to support my work, feel free to sponsor me, or ask your employer about it. The Go client itself, including what it depends on such as the Prisma core tools, will obviously always remain open source (everything, including the full docs, are licensed under Apache 2).
To get started right away, read the quickstart tutorial or read the upgrade manual if you already use the client.
The long story
I joined Prisma to work on the Go client in 2020, and it was great. However, it was clear even back then that it was an experiment, and the work could be stopped at any time. Prisma’s vision was supporting many databases and many languages with Prisma sitting in between, which is why money and work were invested in the Go client in the first place, but unfortunately the budget and priorities couldn’t match this goal in the short term. Eventually, Prisma decided to stop the work on the Go client, which is why Prisma and I parted ways on good terms. While I and many others were disappointed, please understand that the decision was not taken lightly, and it had to be done, as the company has investors, other goals, and doing what Prisma does is incredibly time-consuming. I also want to say that working at Prisma was one of my best work experiences; all people there are just nice and delightful to work with. Anyway, since then, I sometimes did some stuff on the Go client, but it hasn’t really gotten mine or anyone else’s attention. It was in a weird state and not owned by anyone; still under @prisma’s org, but not maintained.
A big reason why the Go client didn’t take off was probably because it was never really launched as production-ready, which was also the number one critique, especially after it was stopped being maintained. I strongly believe that the Prisma Go client is solving a real problem and would be liked by many people working with Go, and that more people and companies would use the client, if it would be stable. I also believe we partially focused on the wrong things, but I'm trying to learn from it and applying it from now on.
This is why I am hereby reviving the Go client under my own GitHub, and hoping we can improve the database experience with Go for everyone.
Since I’m just getting started on this, note that I am not working full time on this, and I am looking for sponsorships for the Go client to make it economically viable. I believe that the core features work reliably, but there are so many great features which I want to implement, but don’t have the time to work on it, as I’m not paid for it anymore. If you are interested in a sponsorship, I also combine this with dedicated help on setting up the Go client in your company and ongoing support and bug/features prioritization. The more sponsors I can find, the more time I can allocate to the Go client.
The biggest goal for me right now is to make this transition work and work towards a “production-ready” Go client. I wouldn’t call it experimental anymore, maybe “alpha” would fit best at this time, and the next step would be a beta.
At the same time, I will think about some monetization, because in the end that is the only viable way to develop new features, especially larger ones.
The Go client itself, the code, issues and discussion will obviously always remain free; the code itself is also licensed via Apache 2 (as is all Prisma source code, it’s similar to MIT) and it will always remain so.
Short-Term Roadmap
I already upgraded to the latest Prisma version and adapted all the internal changes. Note that you now need to use the package
github.com/steebchen/prisma-client-go
and upgrade if you have an existing Go client project.Long-Term Roadmap
Bigger items in the roadmaps which don’t have priority, but I eventually want to work on:
prisma init
work with the Go clientThe next big goal would be to make the client “production-ready”. Since production-ready doesn’t have any specific meaning, it will be an ongoing process to monitor usages of the Go client in the next few months and figure out if there are any major issues or blockers. I’ll probably make a separate issue about this in the coming weeks with items to work towards to.
There are some To-Dos which I would love to have in the future, but don’t have the capacity for as they take a lot of time. Feel free to sponsor me for higher chances of me actually working on this.
Please let me know what you think, if you want to contribute, and what features you’d like to see!
Spread the world, tell your employer about this, the bigger this gets, the more we can improve Go’s database ecosystem.
The text was updated successfully, but these errors were encountered: