Skip to main content

Exposing Databases to the Internet: Seriously?

· 6 min read
Yiming
Co-founder of ZenStack

Cover image

One big piece of conventional wisdom for software operation is "never expose internal-facing services to the public", and databases (especially SQL databases) fall into that category. It's good advice because data stored in them are usually highly sensitive and indispensable to most systems' proper running. Investigations with honeypots showed that publicly open databases are discovered within hours after they become active and start getting attacked within a day. What's scarier than this is you often don't even know you ever had a data breach.

What Made Me Pay That $10/Mon For GitHub Copilot

· 6 min read
Yiming
Co-founder of ZenStack

Cover image

I initially tried GitHub Copilot, just briefly, around the beginning of 2022. It raised my attention partly due to its name - I hold a private pilot license and have always been an aviation enthusiast. At that time, I found the idea intriguing, but the product usability was not so satisfactory: both in terms of speed and quality of generation. I started to reuse it about three months ago, and now it has become indispensable to me and worth every penny of that $10/mon that I pay.

What makes me a happy customer? Let's figure it out.

Decoding the Evolving Landscape of Web Development

· 7 min read
Yiming
Co-founder of ZenStack

Cover Image

Web development, especially frontend, is undoubtedly one of the most challenging professions in software development. Its landscape is constantly evolving. Tools and technologies become obsolete and replaced by new ones at an astonishing speed. It has also become a vast field, way beyond HTML, CSS and Javascript. Going back ten years, could you imagine that frontend developers, who use an interpreted language to write code, would need to mess with all kinds of compilation tools in their daily job? Pretty insane, isn't it?

But Rome wasn't built in a day. Let's travel back in time to see how we got here step by step.

How to Add Custom Attributes in Prisma

· 8 min read
Jiasheng
Co-founder of ZenStack

Cover Image

The Prisma schema is intuitive and lets you declare your database tables in a human-readable way. The thing I like most is to be able to use it as the single source of truth for the data models of my application. However, to be able to get that for more cases, there should be a good extension mechanism. Otherwise, Prisma would have to cover all the different cases by itself to achieve that universally.

How to build a collaborative SaaS product using Next.js and ZenStack's access control policy

· 20 min read
Jiasheng
Co-founder of ZenStack

Cover Image

Almost all the SaaS now is collaborative, from the originator Salesforce to the newly emerging one like Notion. To make it collaborative, technically, we need to build the foundation to support tenant isolation with an access control policy. A classic challenge here is striking a balance between app security and dev productivity.

This tutorial demonstrates how to build a SaaS product using Next.js and ZenStack and the benefit of using a data model as the single source of truth to handle access control.

Building a Cal.com Clone With Remix + Prisma + ZenStack

· 15 min read
Yiming
Co-founder of ZenStack

Cover Image

If you're in the SaaS business or into trying out different web apps, you've likely heard of Cal.com. It's an fantastic product that helps you schedule meetings with clients more efficiently - simply set your availability, share your public booking link, and let people book when it works for both of you.

This post demonstrates how easy it is to make a simplified clone of Cal.com with a modern Javascript stack - Remix.run, Prisma, and ZenStack.