How and Why I Rebuilt my SAAS App

  Рет қаралды 11,123

Davis Media

Davis Media

4 күн бұрын

This one is a long time in the making. We just shipped the new insiderviz with TypeScript, SvelteKit, Vercel, Go, Upstash, Supabase, Drizzle, AWS, and more. This really is the culmination of everything I've learned over the last two years, and I'm really excited to go over how/why we built it.
CHECK OUT OUR PRODUCT HUNT LAUNCH: www.producthunt.com/posts/ins...
CHECK OUT INSIDERVIZ: insiderviz.com

Пікірлер: 98
@tomino133
@tomino133 2 күн бұрын
Architecture (and the whole point of this video aside I guess) - major props for actually building this thing at such a young age. There is a lot of people on KZbin making reaction/hot take videos but you're actually making stuff happen. Good luck with the project!
@parkerrex
@parkerrex 2 күн бұрын
This!
@planetmall2
@planetmall2 2 күн бұрын
Totally agree!
@thebluriam
@thebluriam 2 күн бұрын
I really love these sort of progress report “this is what we’ve learned” check point videos you’ve put out periodically. It’s nice to see real world work being overviewed
@abujessica
@abujessica 2 күн бұрын
love to see somebody's tryna break the shackles of 9-5 and live his life wish you the best bud
@dearoren
@dearoren 2 күн бұрын
I was a strategy consultant turned d3+frontend and now making my own app. Naturally gravitating towards Sveltekit now and your stuff is great. I would be keen on an API & moving things server side tutorial. I am struggling with mixing environments while iterating/interacting with the API, so interested in your approach.
@bmdavis419
@bmdavis419 2 күн бұрын
Check out my "modern js is getting weird" video from a few weeks back, I talk a lot about this
@NicholasMaietta
@NicholasMaietta 2 күн бұрын
Don't forget us when you go big-time! This project looks awesome. Congrats, man.
@samcalder6946
@samcalder6946 2 күн бұрын
Backend-For-Frontend (BFF) pattern
@gageracer
@gageracer 2 күн бұрын
IT LOOKS FCKN AWESOME! I'm on an assignment with go and htmx but this might be the best sveltekit app I've seen so far! I'm jealous to work on Sveltekit again. The way I separate is like this: there is front-end and back-end. Front-end have two sides, client-side and server-side. Back-end is all server so no need to say it like that. So total separation is: Client-side (Svelte stuff) Server-side (Sveltekit stuff) Back-end (Python-Go-DB stuff)
@bmdavis419
@bmdavis419 2 күн бұрын
I actually like that, the FE server
@ooijaz6063
@ooijaz6063 Күн бұрын
The bff and microservice / distributed monolith architecture? :D
@bmdavis419
@bmdavis419 6 сағат бұрын
@@ooijaz6063 bff is the term I was looking for TY lol
@EricNation
@EricNation Күн бұрын
I feel you on the moving towards simplicity. I'm a bit over NextJS and the next project I build will be in Svelte. Excited to learn it.
@leifelliott1500
@leifelliott1500 2 күн бұрын
Amazing UX and UI work very impressive app. Nice job.
@rotimibest8530
@rotimibest8530 Күн бұрын
I love what you are doing so much.
@SENATAH
@SENATAH 2 күн бұрын
Dude this is so sick, can you make a vid on how you met your team?
@bmdavis419
@bmdavis419 2 күн бұрын
Been my best friends since I was 12
@naman_dw
@naman_dw 2 күн бұрын
Congrats!
@kelvindecosta5350
@kelvindecosta5350 2 күн бұрын
Very insightful!
@BhideSvelte
@BhideSvelte 2 күн бұрын
really like to see this type of content loving it........
Күн бұрын
Interesting, as architecturing the revamp of an old rails app, i came to the same structure and getting a fullstack framework to handle user domain features while python and golang will handle heavy lifting backend stuff. I'm not yet set on auth.
@dkr91
@dkr91 Күн бұрын
Good video. Not like those other 'tech' channels going for 10k a week, after 2 year dev experience, building on top of a SAAS boilerplate.
@friendly__drone9352
@friendly__drone9352 2 күн бұрын
Great video! Insiderviz sounds really cool! I think there are some unofficial ETF's shown on Wallstreetbets that tracks the Senate people like Pelosi etc. That could be a fun thing to add down the line to see how it's doing compared to the NASDAQ or SP500. Sounds like SST could be worth looking at for a PoC if you want to get AWS running quickly
@HunterBBQ
@HunterBBQ 2 күн бұрын
Very good sharing
@EPCLori
@EPCLori 2 күн бұрын
Its really interesting hearing you talk about being able to architect everything in AWS, because thats how many established household names build and deploy things at scale. There seems to be an anti-aws sentiment in the startup/SaaS sector, especially on KZbin, But as a software engineering consultant, I can't imagine needing to go outside of AWS to build the core of an app you can imagine. My current client is a global car manufacturer, and we're talking about IoT and satellites. Guess what? AWS has an answer.
@EPCLori
@EPCLori 2 күн бұрын
If you want to optimise further, look into moving your data and sveltest app inside your AWS account. That way, you don't have to pay bandwidth in and out between AWS Vercel.
@abujessica
@abujessica 2 күн бұрын
If you don't mind answer: where did you find this client?
@EPCLori
@EPCLori 2 күн бұрын
⁠I work for an international consultancy firm, clients come to us, if I could figure out how to do it as an individual or small team, I’d have started my own consultancy 😢
@paulclarke4099
@paulclarke4099 2 күн бұрын
Great video, thanks. Can you please do a video covering the correct use of state in multi user Svelte5/SvelteKit application. What is the best/correct way to ensure state is independent for each unique user especially when user data is being retrieved and written to via server side functions. As far as I can understand Svelte stores should not be used in a SvelteKit application as different users data may be intermixed so you need to use the Context API in this case. Preferably please explain how you would implement this using the Svelte 5 $state() rune instead of stores since that will be the new standard going forward in place of stores 👍
@bmdavis419
@bmdavis419 2 күн бұрын
Stores are only local, having a store on one users device will not touch another's unless u do something over the network to connect them
@sebs4591
@sebs4591 2 күн бұрын
Cool overview! Two questions, and maybe opportunities for further simplification. 1. Why is Python needed for custom search? If you already have Go and TS servers, why introduce a third language? You might not want the search to be serverless, but that doesn’t mean you need to further complicate the stack. 2. Why use two dbs instead of multiple tables within a single db? Can the Go server not easily interface with the Supabase db or was there some other reason? Similar to point 1-a new dev who joins your team now has to learn two db providers instead of just one. Really enjoying your videos! I always learn something here. Cheers.
@bmdavis419
@bmdavis419 2 күн бұрын
1) We're doing a lot of custom ML stuff to make it good (our dataset is weird and growing, so we want to optimize it with our own model) 2) the datasets (users/forms) are VERY different, so we wanted to keep them away from eachother so they don't interfere. The forms db is a mirror of the SEC that we are populating from crawlers, vs the users is just normal, don't want to risk mixing them!
@sebs4591
@sebs4591 2 күн бұрын
@@bmdavis419 ah interesting. (1) makes a ton of sense, but my gut feeling for (2) is that you can just choose in your app code not to commingle that data. alternatively, if you really need that level of isolation, why not a separate supabase db?
@eaglebirdiepar
@eaglebirdiepar 2 күн бұрын
Super impressive! I love svelte but steered away because of the lack of ui libraries. Cool to see someone build custom UIs.
@bmdavis419
@bmdavis419 2 күн бұрын
www.shadcn-svelte.com/
@ooijaz6063
@ooijaz6063 Күн бұрын
@@bmdavis419 it's amazing, but I found it a little bit lacking for dashboard, at least in my teste - or maybe it's just my skill issue Date picker doesn't have option to pick time (as well as base melt-ui one) which can be kinda dealbreaking. Crud apps consist really often of many, many forms Here you have only input. What about good quality input number with, for example, currency? You can do it, but it may be kinda tricky. So, at least in my eyes, for dashboards shadcn is very low level library, because it didn't provide good quality, most important components (form components and calendar). Mantine is the only reason why i keep using react I hope that I will be able to switch full to the svelte in the future.
@kylehqcom
@kylehqcom Күн бұрын
Enjoying your vids and your learning. From my experience, my only worry is your direct drizzle db connect vs an abstraction, eg api. Your view point of having to handle another Go service in-between wasn't worth it is valid, but schemas l and data sources change where an api and response can be versioned. Perhaps its locked down for your use case, so the additional bridge doesn't make sense. I'd personally advise to ensure you can extend easily, so perhaps your svelte db calls are in repositories that can instead call an endpoint. You're likely well aware of all of this and have the appropriate context to make the correct call. Adding my experience from past problems 👍
@bmdavis419
@bmdavis419 Күн бұрын
Yea that was definitely a concern, but for us its not a huge deal since the DB calls there to the MySQL instance are just fetching SEC Form 4s which I don't expect to change anytime soon lmao
@0xNino
@0xNino 2 күн бұрын
Love your recent content ! What would you recommend to an undergratuate CS student with some experience in C/C++, React, Django in order to learn this stack from scratch ? Thank you !
@bmdavis419
@bmdavis419 2 күн бұрын
I would recommend going through this learn.svelte.dev/tutorial/welcome-to-svelte, and then from there just try and build something and google your way around it The way I started building stuff was I just tried to make V1 of insiderviz 2 years ago and u kinda just trial and error ur way into figuring things out My last video is also a tutorial on this stack, although its a bit more advanced so I would wait a but until ur more firmiliar with SvelteKit!
@tomascastelli8491
@tomascastelli8491 2 күн бұрын
The first thing that comes to my mind when deciding to make the core backend functionality directly in SvelteKit or NextJS or whatever is: what happens if you want to make also a mobile app for example? Would you have to scale your sveltekit services just because an increase in demand of the mobile app, even though sveltekit frontend has nothing to do with mobile?
@bmdavis419
@bmdavis419 2 күн бұрын
We are actually serving the backend of BLOK through NextJS lol, SvelteKit and Next are both normal backends, and u can serve a hono server through them (checkout my "JS is Getting Weird" video from a while back!
@Tanguylecoutre
@Tanguylecoutre 2 күн бұрын
Hey I am complete beginner that just started with basic html css and now doing a JS course. It seems that you are really knowledgeable in what you do. I was wondering if you could make a video or just in this reply on what your roadmap would be if you were a complete (actual complete) beginner that never wrote a line of code. And then discuss on what you would do as the most optimal path of learning full stack development.
@bmdavis419
@bmdavis419 2 күн бұрын
if you are brand new, video tutorials are gonna be ur friend for a while while u get the basics down. Net Ninja, Web Dev Simplified, and Traversey Media have some great stuff I highly recommend!
@Tanguylecoutre
@Tanguylecoutre 2 күн бұрын
@@bmdavis419 I see, I am trying to lay down what to do after my JS course. I was thinking of learning something like react? Or do you think nodejs would be better?
@pdevito
@pdevito Күн бұрын
The svelte kit app would be called a BFF fwiw. (Backend for frontend)
@ridass.7137
@ridass.7137 2 күн бұрын
Any react lover: ReAcT hAs biGgeR eCoSysTeM Ben: Eat this
@FirstArtChannel
@FirstArtChannel 2 күн бұрын
Debating whether to use Next.js or Sveltekit myself right now for a SaaS. Love the intuitive approach of Sveltekit, but also understand that if I ever want to expand the engineering team - Next.js might be the approach. Question there is, what are the negative effects of Sveltekit not using a Virtual DOM? What are the limitations?
@bmdavis419
@bmdavis419 2 күн бұрын
No limitations, actually it results in much better performance (compiler, even react is moving to this) As far as teams go, any good nextjs dev could easily pick up sveltekit in a week, it is SO much simpler/easier
@hubcio2115
@hubcio2115 2 күн бұрын
While I'm using both, the difference between SvelteKit with Svelte 5 and Nextjs 14 App dir are purely cosmetic. It boils down to what syntax you like more. I mostly use Next since Svelte has some big pain points for me: - you can't declare multiple components in one file - svelte stores are based on an Observer pattern, which feels too much like rxjs, and yeah without VDOM idk how would you make this differently - don't know if SvelteKit has an equivalent of RSCs One thing is if you're using vanillaJS libraries I'd recommend you using Svelte. Since React and VanillaJS don't mix well you have to write your own wrapper on the library if it doesn't exist. With svelte you can use plain old JS. Other than that the functionality and what you can do with them are very much the same.
@__-se3tf
@__-se3tf 2 күн бұрын
@@hubcio2115 i believe Svelte 5 "snippets" solve the pain point of multiple components in one file
@yash7630
@yash7630 6 сағат бұрын
Awesome man. Quick question why does it take so much time to search. Like I searched Tesla It kept searching for almost 5 sec. And after few time I again search But I think it didn't cache or something so again searched for 5 sec
@bmdavis419
@bmdavis419 6 сағат бұрын
We're working on optimizing it, currently we are doing a bunch of custom ML (vector search) stuff on the backend since our dataset is really complex It will improve over time, but for now tickers are instant!
@yash7630
@yash7630 5 сағат бұрын
@@bmdavis419 Would love to know that process like how to do that in your videos
@FirstArtChannel
@FirstArtChannel 2 күн бұрын
What is the benefit of having a separate MySQL db on AWS, while the GO lambda functions can also put data into the supabase db?
@bmdavis419
@bmdavis419 2 күн бұрын
the supabase DB holds users, the mysql holds the forms they are very different datasets so we wanted to split them up so that they would not interfere with eachother
@havokgames8297
@havokgames8297 2 күн бұрын
@@bmdavis419not a bad call, but you could have multiple supabase databases in the same provider - or use Postgres schemas to separate the logical data table sets. You can configure database users to only see what tables they need to function.
@harikrishnanb7273
@harikrishnanb7273 2 күн бұрын
​@@bmdavis419 may i know why you ended up choosing mysql for forms data over other relational databases (specifically postgresql) ?
@soonhongng7037
@soonhongng7037 2 күн бұрын
yeah, but u could use different table to save data in the supabase, why bother using mysql? if u afraid of supabase not able to handle all that load in the same time, why not just spin up 2 supabase instances? one for form data, one for user data
@skyhappy
@skyhappy 2 күн бұрын
​​@@soonhongng7037or even better, put them in two different schemas. What he did makes no sense
@user-eg4qz9yc7e
@user-eg4qz9yc7e 2 күн бұрын
If Tauri version 2.0 becomes stable, outside beta, you can potentially use ur current stack to build an ios/android app
@bmdavis419
@bmdavis419 2 күн бұрын
yea if we grow more we will probably have to look into a mobile app, would love to not have to use react native...
@rli09
@rli09 Күн бұрын
curious - have you considered using sst to orchestrate the infra?
@johannesmariomeissner7262
@johannesmariomeissner7262 Күн бұрын
Just curious, why not use Supabase for the cronjob data too? What was the benefit of using mysql there?
@bmdavis419
@bmdavis419 Күн бұрын
Very different dataset that we did not want touching our users
@swagz6440
@swagz6440 2 күн бұрын
Just to let you know in the footer the privacy policy, terms and conditions and support links doesnt work
@bsagar5306
@bsagar5306 2 күн бұрын
What is the use of custom search with python in forms service
@bmdavis419
@bmdavis419 2 күн бұрын
we're fine tuning a model over our dataset to make it more usable
@SaidElnaffar
@SaidElnaffar 2 күн бұрын
Why didn't you go SvelteKit all the way?
@81NARY
@81NARY 2 күн бұрын
If Jack Harlow was a dev 😂
@bmdavis419
@bmdavis419 2 күн бұрын
XD
@saurabh9446
@saurabh9446 2 күн бұрын
Any plans to make it open source?
@bmdavis419
@bmdavis419 2 күн бұрын
maybe pieces of it in the future, but not for a bit at least
@osman1110
@osman1110 2 күн бұрын
how do you create the interactive graphs?
@bmdavis419
@bmdavis419 2 күн бұрын
D3
@ethansempa7501
@ethansempa7501 2 күн бұрын
How much does this cost to put all together?
@bmdavis419
@bmdavis419 2 күн бұрын
$20 for vercel, then everything else can run for free (with the obvious serverless spike if we take off)
@colonelchubbers
@colonelchubbers 2 күн бұрын
Is there a reason you're not using supabase for vector db?
@bmdavis419
@bmdavis419 Күн бұрын
I like using supabase for vectors when u just need to vectorize one column in a table, but it gets annoying when u want to do more complex vectors and upstash is just a lot nicer to work with for that kind of thing
@deado7282
@deado7282 18 сағат бұрын
I always get scared when i see people abusing databases as interfaces. My team would defenestrate me for doing so. However in a very small team you could probably work around the traps with proper communication.
@xuover
@xuover Күн бұрын
It’s called a befe
@Taddy_Mason
@Taddy_Mason 7 сағат бұрын
@ben I can provide you some guidance with AWS services. I work there.
@justisabelll
@justisabelll 2 күн бұрын
are you shipping bun?
@bmdavis419
@bmdavis419 2 күн бұрын
technically yes, we use the bun package manager and local exp, but vercel still uses node on their servers I believe
@__-se3tf
@__-se3tf 2 күн бұрын
Why did you move from next-auth to supabase? (i haven't really messed around with supabase much but i've heard good things)
@bmdavis419
@bmdavis419 2 күн бұрын
In my experience its just way cleaner and nicer to use (especially with oauth), and I can use it across different platforms
@__-se3tf
@__-se3tf 2 күн бұрын
@@bmdavis419 gotcha. I'm still not sure if it's worth the added complexity (reconfiguration since next-auth works out the gate with create-t3) and cost (subapase pro for more than 2 projects) for my 0 user projects 😂
@SonAyoD
@SonAyoD 2 күн бұрын
How big is your team?
@bmdavis419
@bmdavis419 2 күн бұрын
4 guys, this site was primarily built by 2 of us tho, with the other 2 more focused on the forms backend
@SonAyoD
@SonAyoD 2 күн бұрын
@@bmdavis419 great job man. Hope you guys make it.
@skyhappy
@skyhappy 2 күн бұрын
How did you find other guys
@SonAyoD
@SonAyoD Күн бұрын
@@bmdavis419 amazing work man
@1youngtai
@1youngtai Күн бұрын
I think the techstack is too complicated.
@deado7282
@deado7282 18 сағат бұрын
What part of it? Its just a sveltekit app using api's atp
THEY WANTED TO TAKE ALL HIS GOODIES 🍫🥤🍟😂
00:17
OKUNJATA
Рет қаралды 6 МЛН
Универ. 13 лет спустя - ВСЕ СЕРИИ ПОДРЯД
9:07:11
Комедии 2023
Рет қаралды 6 МЛН
Why Adding Water WON'T Save Your Dry Pack Concrete
13:55
SWI Fence
Рет қаралды 4,6 М.
Supabase just shipped a LOT of cool stuff...
15:31
Davis Media
Рет қаралды 3,4 М.
2024 Supabase + Sveltekit Tutorial (0 to prod)
59:21
Davis Media
Рет қаралды 4,3 М.
Why is Vite Everywhere? | Evan You
38:32
OpenSauced
Рет қаралды 30 М.
Are CHEAP x79 Servers/Workstations Good In 2024?
17:22
Hardware Haven
Рет қаралды 248 М.
Mobile App Development is Hard
16:29
Davis Media
Рет қаралды 6 М.
5 Things I Wish I Knew When I Started Using SvelteKit
7:27
Davis Media
Рет қаралды 10 М.
iOS 18 vs Samsung, Xiaomi,Tecno, Android
0:54
AndroHack
Рет қаралды 95 М.
Неразрушаемый смартфон
1:00
Status
Рет қаралды 1,9 МЛН