Transcript from Thursday July 2nd, 2020
# Q: I'm really excited with the update on 0.16. What is your vision for a 1.0 release? – Thanda
A: Definitely authentication and authorization built in and working awesome! That's the main thing. Other things like likely will also be in place are installer recipes (same as Gatsby) and plugins. The current prisma code will be extracted into a plugin and then we'll also have other plugins for things like fauna, etc.
And of course some sense of stability :D
# Q: When is it safe to begin developing my next SASS with Blitz? and/or make a course for it? – jacktheturtle
A: Well, we already have several folks building SaaS apps with it and running in production, so I guess it's up to you and your appetite for risk :D
That said, overall it is fairly stable, at least once you deploy it to production because at that point it's mostly Next.js core code running which is already battle tested.
# Q: How does
blitz.js being a monolithic framework fit into the microservices architecture and how can it be scaled? – nikhil
A: Good question. You can deploy Blitz to a server as a long running process OR to serverless.
If you deploy to a server, then you'll have the same traditional monolith scaling path to walk.
But if you deploy to serverless (AWS, Vercel, etc), then each query and mutation (server code) will run in a serverless function. So your backend will scale seamlessly, automatically, and independently. So most of the monolith scaling issues go away!
# Q: What do you think is the downside of your product? – shtan
A: It doesn't come out of the box with GraphQL. The whole point of Blitz is to eliminate the API layer from your dev flow. So you don't have REST or GraphQL. Just import server code into your frontend and go!
So if you absolutely want GraphQL in the mix, then you should try Redwood. But you should still give Blitz a try. 😉
# Q: What are your suggestions to a non designer front end dev on creating UI? – Piñata
A: Buy and read https://refactoringui.com/!
# Q: I just learned about Blitz and it looks like my dream framework — Next.js, TypeScript, the goal of recreating a rails-like experience. but i also love GraphQL and the TypeScript types you get from graphql-codegen for end-to-end typed queries and resolvers. are there any plans for Blitz & GraphQL? – statico
A: Awesome! See my last answer about GraphQL.
As for end-to-end types, you get that for free in a Blitz app! And one super awesome thing about Blitz is that all the TS types are statically available. You don't need a separate process to compile types on the fly like you need with GraphQL.
# Q: What feature have you had to cut that you really wish you could have put in, but is perhaps against the design principles of Blitz? – Thanda
A: I would love to have an automatically generated GraphQL API. This is possible, but the work required to do this is huge.
# Q: Have you tried phoenix + live view? What do you think about moving state from client side to server side? Do you think it's a pattern that will stick?
https://github.com/calderajs/caldera-react – searchableguy
# Q: Are you looking to have Blitz be fully security audited before releasing auth features? – samsch
A: Not before releasing the features, but once they are released we'll definitely try to get this accomplished. Rishabh, the CTO of Supertokens is leading all the auth work. He's super good and does this for a living. So we're off to a good start at least :)
# Q: Could you share your motivation behind
blitz.js and the vision you hold for it. – nikhil
A: Fullstack React app development today is too hard and too complex! Building fullstack apps with Rails/Laravel is so simple and fast because it's all one thing without many moving parts. I love that DX, but I don't like templates and want to use React.
So Blitz is the DX of Rails/Laravel but with everything we love about React.
Blitz will eventually have EVERYTHING you always need for fullstack apps including sweet integrations for background processing, emails, etc
# Q: Is it necessary to learn any database language with React or GraphQL will be enough? – Vradhi
A: Blitz doesn't use GraphQL, so you don't have to know that. We use Prisma 2 by default for the DB migrations and DB client. Prisma is super easy to use, but you'll still need to know a bit about database modeling. Eventually we'll have nice docs on this.
# Q: How do you manage to be a full time OSS contributor (how do you make money)? What was your path like, any tips? Feel free to ignore if this is too personal/off topic. – JackFlapper
A: I have a part-time indie consulting gig that pays all my bills (I've been an indie consultant for 3 years). I typically work around 20-25 hours/week on consulting and 30-40 hrs/week on Blitz.
I'm working on getting sponsors for Blitz so that I can focus 100% on this and not have to do consulting. I currently have Fauna as a $500/mo sponsor. Eventually we'll have other folks work on Blitz fulltime too!
You can also help sponsor yourself here on Github sponsors :) https://github.com/sponsors/blitz-js
# Q: When referring to it, is it blitz, Blitz, Blitzjs, Blitz.js, etc? – Thanda
A: Whatever you want haha. Official is "Blitz.js". But usually I just use Blitz.
# Q: With what
blitz.js trying to achieve does it force the developers to do server side rendering and not use the client side rendering? – nikhil
A: Yeah, there are no stupid questions!! Blitz doesn't force SSR. Client-side rendering is the default, but you can choose SSR, client rendered, and static (like Gatsby) on a page-by-page basis. So they can be all mixed in your app however you need.
# Q: Can you talk about what it means for Blitz to be inspired by Rails for people who aren't familiar with Rails? – MrLeebo
A: Well overall it means being super productive for building fullstack apps. It means having conventions so you don't have to re-invent things like a file-structure on every new app. It means leaning on code scaffolding for rapidly building things without writing all the code from scratch. It means all the code being in the same app and you only have one thing to develop and one thing deploy (monolithic).
And then also the part I already talked about with getting rid of the whole API part of your architecture. Most people greatly underestimate or simply don't know how much time they waste on data marshaling in a traditional React app.
# Q: Share some tips and required knowledge to start a Open Source project the right way (or a way that is less painful and relaxing) – nikhil
A: Well, it somewhat depends on what you are building (tiny tool vs a framework like Blitz), but one thing that worked amazing for me was to build the community first and then write the actual code.
When I first announced Blitz, there was no Github repo and only a couple hundred lines of prototype code on my computer 😂. But it was enough that people got excited and wanted to help (I was explicit about asking people for help).
# Q: According to you what are some competitors to Blitz.js and how do you plan to make
blitz.js a popular name in the community – nikhil
A: Redwood is the only real alternative to Blitz. Well, Blitz is already quite well known, but I'll keep tweeting about as much as I can! haha. I'm also talking at as many conferences and podcasts as I can. Marketing is essential for an open-source project to be successful.
# Q: Recently creator of Redis stepped away from it. Then there is Guido. Maintaining OSS is getting difficult partly due to politics or dealing with contributors, or community. What are your thoughts on that? – Piñata
A: We're following the model of Ember where it has full community ownership and isn't a project driven by a single person on team. And we'll take problems as they come :)
# Q: Extension to @Piñata's question: Do you think it's ok for oss contributors to be judged by their personal tweets (and other social media accounts)? Where should the boundary between open source work and personal life sit? – Yugiohxlight!
A: Yeah this is tricky, especially in this climate of hyper political correctness. I don't have a good answer for this Q&A, but I'd love to have a longer discussion about this on a call or something :)
# Q: Could you explain what do you mean by
data marshaling? – nikhil
A: That means moving data around, directing it, formatting it, transforming it, fetching it, etc.
# Q: Redwood's Cell component really comes in handy during development, does Blitz offer something similar? – zacksparrow
A: No, because unless I'm missing something Cells will be obsolete with React Suspense for data fetching. We have Concurrent mode enabled by default for Blitz apps, so you use
# Q: What does Blitz have in mind for React Native? – chadnehemiah
A: We want to have first-class integration with RN so that you can import server code into a RN app just like you do in the Blitz frontend. So you can share the same Blitz backend all without having to write your own API.
# Q: Can you give more details on how you built the community first? – avpalmeira
A: Um, I just tweeted lol. Also, I used my marketing skills. Honestly I am just trying to solve the right problem at the right time. 🤷♂️
# Q: Not a technical question, but on a human level - what inspired you to build Blitz (again outside of the technical need) and what motivated you to take on such a large task? I'm particularly interested in the first step where you ostensibly saw the need for Blitz, saw that it didn't exist and then said, I will summon the energy to build this –
A: Honestly I feel like this is one of the things God created me to do. It's actually a fulfillment of a prophecy to me 5 years ago :)
# Q: Do you think the downward trend of Rails is justified when it can still resolve MANY of the problems people have building modern fullstack apps? – dilraj
A: I think yes. Rails is nice, but it's super hard to make great dynamic UIs (jQuery anyone?) and the mobile app story is lacking. Whereas with React you have React Native and can share you code The hurdle is much less here.
# Q: I'm a barely proficient js programmer (I hesitate to even say "developer") who had a previous life as a barely proficient Rails programmer. What can I do to help Blitz.js? – Thanda
A: Great question! :) Best way is to go through this guide: https://blitzjs.com/docs/contributing
Then look for issues on the main repo and on the website/docs repo that are labeled good first issue. Usually these are fixed within an hour of being created, so you have to move fast! :D
# Q: I saw that there is a Blitz slack. Is that a permanent home, or is it possible to bring that over into a Blitz.js discord server? – 😄
A: Will probably move to Discord once they add threads :)
# Q: Could you share some key points that one should keep handy to decide whether to choose
blitz.js for the next project? – nikhil
A: If you have your own database, then use Blitz! If it's more of a content site connecting to another CMS, then use plain Next.js.
# Q: Definitely wondering about the React Native story here. Is that already in place or is help needed? – rahsheen
A: Hasn't been started yet, but you're welcome to start exploring how to do this! We can connect in the Blitz slack if you want.
# Q: Let's say we have a fanfiction.net type website build upon Blitz and have lots of filters options, so will Blitz still be a good option to manage all the complex stuff needed? (I'm a noob sry)
Like around 100k stories with lots of genre's and tags and everything filterable possible. – EvilSpark
A: I think so! I mean, Blitz doesn't yet have a feature to write all your code for you, but it does do all the boring stuff for you so you can focus on the code that actually makes your app unique. That actually adds features for your users :)
# Q: What is the status / plan for using Blitz with Firebase? For any of Deployment, Auth, DB, or metrics? – Thanda
A: You can use firebase with Blitz today. Nothing hindering you there, but not sure about deployment.
Typically, a Blitz app won't use firebase because it'll have everything you need built in, like auth, DB, etc.
# Q: Can we compare
django? – nikhil
A: Yeah, basically the same thing, just different languages :) I literally have the django auth docs open right now as I'm working on Blitz auth :)