Kelvin Omereshone is here to get you excited about boring, reliable tech. He believes a combination of Sails, Inertia, Tailwind & your frontend rendering library of choice are a great combo for building web apps. Tune in to find out why.
Featuring
Sponsors
Speakeasy – Instantly create SDKs that make API integration easy for your users. Create your first SDK for free! today.
Clerk – Clerk is a complete suite of embeddable UIs, flexible APIs, and admin dashboards to authenticate and manage your users.
Changelog News – A podcast+newsletter combo that’s brief, entertaining & always on-point. Subscribe today.
Notes & Links
Chapters
Chapter Number | Chapter Start Time | Chapter Title | Chapter Duration |
1 | 00:00 | It's party time, y'all | 00:39 |
2 | 00:39 | Sponsor: Speakeasy | 04:01 |
3 | 04:40 | Hello party people | 00:21 |
4 | 05:01 | Welcoming K.O.O. 👀 | 00:48 |
5 | 05:49 | The boring JS stack | 02:50 |
6 | 08:39 | Sails.js | 03:59 |
7 | 12:38 | Hagfish | 01:10 |
8 | 13:48 | Making money | 01:45 |
9 | 15:33 | Sponsor: Clerk | 03:20 |
10 | 19:08 | Project 50 | 02:40 |
11 | 21:48 | Sails.js sales pitch | 02:22 |
12 | 24:10 | Inertia | 02:57 |
13 | 27:07 | Tailwind | 02:59 |
14 | 30:06 | Deployment | 02:31 |
15 | 32:37 | Sponsor: Changelog News | 01:58 |
16 | 34:34 | Sails' unpopularity | 04:28 |
17 | 39:03 | Getting started | 02:29 |
18 | 41:31 | Getting in touch | 01:39 |
19 | 43:10 | Closing time | 00:33 |
20 | 43:43 | Outro | 01:07 |
Transcript
Play the audio to listen along while you enjoy the transcript. 🎧
Hello, party people. I’m Jerod, your internet friend, and today I hope not to bore you… We will be talking about the boring JavaScript stack, with Kelvin Omereshone, which is maybe not a 9 out of 10, like I just did in pre-production, but maybe an 8 out of 10… Kelvin, welcome to JS Party.
Thank you, Jerod. I’m really happy to be here. I’m a big fan of this show, so yeah, thank you for having me.
You bet. Go ahead and land a 10 out of 10 on that last name, so everybody knows how you actually say it.
Yeah, for sure. So my name is Kelvin Omereshone. It’s really African, so I don’t fault anyone for not knowing how to pronounce it. So that’s why I go by the initials KOO online, because my last two names - it’s a nightmare to pronounce.
KOO. I like it. I like it. And you have a big banner on your Twitter/X profiles: “Ship less JavaScript. The Boring JS Stack.” Do you want to tell us about this project, and what you’re up to and why you think it’s interesting?
Yeah, for sure. Thank you so much. First of all, I started building the Boring Stack way before people now know it as the Boring Stack. So I started working on it as my answer to the very shiny, but not so productive world of modern JavaScript full-stack web development. So at the time I was building a platform called sailsconf.com. I still work on the platform; it’s the place where I educate JavaScript developers to build full-stack apps using the sales framework, or whatnot.
So at the time I was building the app with like a sales API, and then Nuxt SPA, which is like a Vue meta framework. So the promise I had from Node.js was using JavaScript across the stack, one language makes everything really faster… But having to have this separation of concerns with two repos - that’s two codebases, double routing, because after routing the Vue router, then I route in my API… Don’t get me started with authentication nightmare, because you know how many people really invalidate the JWT really well, right? So I was [unintelligible 00:07:14.15] I was like “Okay, this is good.” And especially when they’re loading spinners, when there is a page – for example, on sailsconf.com there’s a Courses page.
The page is useless without the Courses list. But with the current status quo, I will have to have like a loading spinner. Why do I need a loading spinner? Why can’t the page just load with the courses? Because without the courses, there is no Courses page. But that’s the status quo of modern SPAs, right?
[00:07:45.21] So I got dissatisfied, so I started looking for alternative. Then I found Inertia.js, which is this thing that came out from the Laravel world, because of course – the maker of the tool, Jonathan Reinink, had the same problem I have, which is I want to build modern SPAs, but I don’t want a separate API. Can’t my backend drive the SPA experience? And that’s what the Boring Stack is all about; it’s where you have this solid MVC, stable, predictable web framework, and then you can bring in your React, your Vue, your Svelte as your pages. So you get the SPA experience, you’re routing this on the server, the data the page needs comes with the page each time the users request the page, so there’s no loading spinners at all. So in a nutshell, that’s what it is. There’s other things that goes into it, but that’s just what it is.
Nice. That’s what it is. Cool. So you mentioned SailsCasts is your site, and Sails.js is the Node framework. This goes way back. I mean, I remember when Sails came out… Was it 2011-2012? I mean, this has been around for a long time.
Yeah. [00:08:51.20] and stable.
What’s the history of that project? Who made it, and how is it maintained? Tell us more about Sails, because I haven’t heard about it much lately.
Yeah, yeah. And you’re going to hear more about it because of yours truly. So I’ve found Sails when – so I came from a Laravel PHP background. So I can remember vividly one semester when I was in uni - we had this break, and I was like “You know what, I’m going to learn full stack web development with Laravel PHP.” It was like my project for the break.
So I learned PHP, I learned Laravel. I really loved it. But over time, I discovered that I liked JavaScript more. And with Node.js there was no need to use any other language. I could just learn one language and use it across the stack. So at the time Express was everyone’s favorite. It still is, in terms of low-level API stuff… But I wanted the same Laravel experience. So I looked around in the Node.js world, I found a couple, I tried a couple; I found Nest - not Next. Nest. I found Adonis… Then I found this little obscure thing everybody deemed outdated thing called Sails, and I kind of liked it, because it was just JavaScript. There was no magic. Everything was just JavaScript. It spoke to me. And I was like “You know what? I think I like this. I’ll go with it.”
So at the time, I was a consultant on a project to build web servers, and I picked sales for that project. And I was so fast in delivering everything. So because of that, I formed like a great love for the project. And then I started looking online, and no one was talking about it. I was like “Why is no one talking about it?” Then I saw “Okay, people think it’s outdated. It’s still at 1.x.” And I was like “Okay, okay… Not if I can help it.” So I started writing about it, I created sailsconf.com to teach it, I created a community, the SailsConf community on Discord to help people with the problems and all that… So I was doing this on my own. Then Mike McNeil, who is the creator of Sails, noticed the work I was doing, and over the years we started talking.. And fun fact, he actually pushed a gig one time my way, which was very lucrative in terms of money, because these folks wanted to build like a Sails-powered web app. Because he didn’t have the time and everything, he pushed it my way, because of the work I’d been doing. Then I also organized SailsConf. I’ve done it for three years, this will be the fourth year. And this will be the first ever physical one, which I’m excited about. And last year, at SailsConf, Mike McNeil announced me as the lead maintainer. So I’m currently the lead maintainer of the project. People can have more trust, because the project powers the Boring Stack, and it powers two of my products already, SailsCasts.com and Hagfish, which is one I’ve just launched. And it may or may not have something to do with another secret project I’m working on, which I could name Project 50.
So yeah, it’s very, very much alive. People use it. Fun fact - Postman uses it. Paystack, which is like the Stripe of Africa - they use it as well. And I know a lot of companies who are picking it up, who have been using it for decades, even in Europe and elsewhere; even banks and airlines. It’s just being used, and it’s common, it’s boring, so people don’t really talk about it much… But my job is to make sure that people talk about it much. [laughs]
[00:12:09.22] Okay, I like it. I like it. So you found it, you liked it, it spoke to you… It was a small community, it was a long-standing, boring project, as you said, that didn’t have much magic, but all the things that you need to build your projects, and you slowly started contributing… And eventually, now you are lead maintainer of Sails.js, from which you build on top of for the Boring Stack, and you’re building products on top of this. You mentioned Hagfish… Real quickly, mention what that is and what you’re up to with that.
Okay, so Hagfish.io is because – you know, right now I work full-time for myself. I don’t have a nine to five job. I’m a full time indie hacker entrepreneur. And before now, I’ve always – I do a show called TKYT… So I have a lot of ways where I need invoices. And I also have a lot of ways where people send me invoices, because I hire contractors from all over the place. So I always wanted a way to manage it. So Hagfish is my – I know there are other platforms out there, but it’s the way I want to work in terms of like if I have to send invoices before - okay, I go to Google Docs, I create an invoice in in Google Docs, export as PDF, go to my email client, send emails, and then I don’t know where the invoice is anymore. But with Hagfish I get to see this one place where I get to send my invoices and manage them, and I automate the email so you can send your invoices as emails. They’re going to attach the PDF as well, which is very important… And I have so much plans for it, but for right now it’s just an invoice platform. And yeah, I’ve been using it, I use it a lot. People also send me invoices through the platform as well. And it’s all built with the Boring Stack, so it’s fun.
That’s cool. So what’s your primary income there? So you live in Nigeria, you are a full-time indie hacker, making products, invoicing people… How do you make your living?
Yeah, so a couple of ways. Currently, the most lucrative way is the partnership I’ve had for Project 50. So online, I announced that I partnered with Sentry, and also Render for the project. So they are partners in terms of like Sentry is the APM partner, Render is a company I’ve used for years for deployments… All my products are deployed on Render, so it was really good for them to come on board for Project 50. They know what the project is, but the rest of the world don’t, until July 3rd, because [unintelligible 00:14:25.07] make it secret.
So that has been very good in terms of like income. And the idea is – because SailCasts.com, I sell courses there. So the idea is to grow that as well, and also see how Project 50 is a good bet, I think… And of course, Sentry and Render also think, so that’s why they are partners, and it’s going to really turn out really well.
And apart from that, I have TKYT sponsorships. TKYT is my show, Teach Kelvin Your Thing, on YouTube, where I get people to come teach me what they build or what they’re working on for like an hour. That also gets sponsorships. In fact, when I decided not to do a nine to five, that kept the lights on for like months before Project 50 kicked in. So it’s more of like a subscription to my products, TKYT’s sponsorships, and whatever way Project 50 is gonna bring income streams, yeah.
That’s cool.
Break: [00:15:20.15]
So Project 50 - you’ve been working on it, but it’s not out yet. You said it comes out in July, so you’re not going to talk about what it is…
Yes.
But it’s in partnership with Sentry and Render, is that what you said?
Yes.
How did that come together? That seems like a motley crew of people…
Yeah, so I got the idea for the project, and – first of all, I use Render. They knew that I use them, I talk about them everywhere. So when I got the idea for Project 50, I found a way for them to partner. I reached out to them, made an offer, and the same thing I did for Sentry. I have another partner [unintelligible 00:19:39.05] I don’t know if you knew them; they are like security infrastructure, for making sure your secrets are secure and whatnot. So they are the third partners. There may or may not be two other partners, which I may or may not announce later on… But I will just say that I told them the vision of the project, what it’s going to be about, and… My partners are subsidizing what I was supposed to charge for the projects.
Cool.
Yeah.
How did you pitch that to them? like “Hey, I’ve got an idea. It’s gonna make money. It’s going to be awesome. You should sponsor me to build this.” I mean, I think a lot of people would love to have that setup, but you’ve got it. How’d you get it?
Yeah… Let’s just say, first of all, I never knew they would go for it. Okay, I wanted them to go for it, but it was so novel, there was nothing to – it’s premium vaporware, because there’s nothing to pay for. Right?
[laughs]
But I have a sizable reputation online, so I think my work already kind of spoke for me in terms of “Okay, you could trust this person.” So I was banking on that. And of course, I want Project 50 to be successful, because it’s going to be one of my biggest income streams if it works. So I gave them the pitch; the offer was, I think – for them to go for it was too good. They couldn’t say no, because probably they don’t have too much of a downside… Because it’s going to be more marketing for them. And the way the partnership works - perpetually, it’s a good marketing spend. So [unintelligible 00:21:14.14] I guess, and the universe caught it. [laughs]
Yeah. Well, there’s an old saying. It says “You have not, because you ask not.” And it sounds like you have, because you asked… And I’m excited. I mean, you’ve got me intrigued. I wanna know what Project 50 is. I want you to come back in July and let me know… Because this is very, very interesting. But this is too exciting. We need to get more boring. Let’s go back to the Boring JavaScript stack.
Okay. [laughs]
[00:21:50.20] Give people the sales pitch for Sails.js. Because you’re all-in on this and you love it. I heard the very little magic part… But why would somebody else maybe consider using Sails as the basis for their web app?
Yeah, for sure. So primarily, good software, good technologies there in the background, and it just lets you be awesome. So what Sails have been able to do for me is to stay in the background and let me just focus on my business logic. With technologies today, with the other competitors out there I know it’s a lot of pain, because I’ve seen people move from the other way to the Boring Stack. Just the other day I was onboarding someone from like Next, to the Boring Stack. Because it’s just – it works.
What I’ve been hearing from anyone who uses it is that it’s predictable. And that’s what good software is to me… Because our lives are already hard. We have to solve these different problems in our business domain. You don’t want to be solving frameworks problems. You’ve got the framework, and it’s supposed to make your life easy. So when you have to fight the framework, and the mental model doesn’t work for you, you have to always guess if it’s going to work, that doesn’t work for me. So Sails is just boring. Like, anytime I’m writing Sails, I’m writing JavaScript, and it’s just beyond – I’m not even thinking which part is Sails, which part is not Sails… It’s all JavaScript. For the longest time I’ve worked with Sails, it has made me a better JavaScript developer.
So if you want a robust MVC framework that will let you build full-stack apps, you definitely have to use Sails for your backend. And the way the Boring Stack is set up, if you want to build a full-stack applicatio it’s a no-brainer, because with the Boring Stack you are 90% of the time in Vue, React or Svelte, which is where most people want to be. Like, your UI. Then for your backend, all you’re doing is sending queries, doing backend business logic; your auth is taken care of, your authorization and authentication are all in the backend. In fact, except you are being paid by the hour, you don’t have any reason to not use Sails, because it’s just gonna let you not spend your time debugging frameworks stuff. It’s just stable.
Love it, love it. Unless you get paid by the hour… In which case maybe you want to go slow. If you want to go fast, go boring. Go Sails. I think that’s a very good sales Sails pitch. I’ll stop now with my puns. But let’s break down the Boring Stack again. You mentioned at the top… Let’s go piece by piece. So you start with Sails, and then you add Inertia, which you mentioned a little bit. Then there’s Tailwind, and then you kind of pick your frontend framework or view library. Vue, React, Svelte etc. Can you talk through each component? We’ve covered Sails, but Inertia - how it works, what part does it bring to the stack, and why do you think it’s boring enough for your Boring Stack?
Yeah, for sure. So Inertia is more like a protocol. In fact, you won’t even notice it’s there. So it’s like swapping your routes in, your React Router, your Vue router with Inertia. So it uses HTTP, with a lot of headers… In fact, you can really implement an adapter for both the backend and frontend, but there’s already adapters for the frontends, right? So I hired to build an adapter for Sails, which worked really, really well.
So it’s tiny layer that lets you – so when you click a link, an Inertia link, normally it’s supposed to be a full-page request, and refresh and stuff. So when you click the link [unintelligible 00:25:07.09] that click, for example, and make an Ajax request to the backend. The backend already understands how to interpret this. So when it sees that “Okay, oh, this is an Inertia request”, it’s going to send the name of the components, which is the page you’re navigating to. So it’s that layer that glues the backend and the frontend in one codebase, that makes it redundant to have like a separate client-side routing and a separate server-side routing.
It is just mind blowing. It’s simple tech. It is so boring, because in the Laravel there’s this talk of “Okay, should we use Inertia or Livewire?” It’s not an apples to apples comparison, because Inertia is just boring. Anyone could write a backend adapter. It’s that simple. All it has is this glue, that “Okay, let me have my SPA experience, but let my server side control all the business logic.”
[00:26:03.13] So when you need a page, it’s going to send the name of the component of the page and also the data the page needs as props, which is a brilliant use of the prop interface. So anytime the page loads, it loads with the data. So no more loading spinners; that’s all gone. No more [unintelligible 00:26:19.15] content, because like I’ve always said in examples, you visit this website where you logged in. Well, because everything is done client side, you set the sign in and login or signup button, even though you’re logging in for like two seconds before the JavaScript kicks in, you then see that “Oh, is this my avatar.” But within Inertia you don’t see that, because the page is authenticated on the server side. So it’s always going to come in the state that it’s supposed to be, and it’s just mind-blowing. And simple.
That’s very cool. I had not heard of Inertia.js. So this is built for Laravel, in the PHP world, but it’s generic, and so you can basically adapt it to Sails, which is what you have done for your Boring Stack, right?
That’s what I’ve done.
Love it. Love it. Okay, you picked Tailwind as well… We talk about Tailwind a lot, so not so much that’s new there probably for me and for the listener… But maybe why did you pick Tailwind, and is this the kind of thing that you could maybe ignore or swap out if you don’t want that particular aspect of the stack?
Yeah, for sure. Definitely. So if you really want to build a stable web application, you don’t want the gymnastics of maintaining CSS. Because when I started using Tailwind, I was like “Where has this been all my life?” First of all I hated it, because what is this monstrosity with [unintelligible 00:27:43.05] classes? But when you get in the flow and in the groove, you’re like “This should be the way we build websites”, like styling.
So I picked it because it was just stable. So the stack comes with Tailwind already set up. Just go put them classes in there, and you’re all going. So you don’t have to maintain a .css file, or LESS, or SASS, or whatever you want to do. Or CSS in JS. But the cool thing is, if you don’t want that, everything in the stack, except for Sails, is swappable. So if you don’t want Vue, use React or Svelte. If you don’t want Tailwind, you do whatever you want for your styling. But by default, we have an opinion – I have opinion on how you style CSS. Because like I said, except you’re being paid by the hour, why wouldn’t you use Tailwind and just move fast? Because it’s just literally classes. And most people like it, so most people that are like me and I like Tailwind will definitely feel right at home with the stack out of the box. But you can swap it if you want, because the code is all yours anyways.
Are there any open source Boring Stack web apps that people can go read through, and see exactly how one works?
For sure. So the way the Boring Stack works is that I provide templates. So for now we have the mellow templates. Because unlike most frameworks, I don’t feel that when someone scaffolds a project in JavaScript land we see a counter. I don’t think that’s a very good use of our time. Because in other ecosystems you get like a full-blown authenticated app, you have models in there, and everything… So we have templates in the Boring Stack. So when you want [unintelligible 00:29:21.05] the project name –react or –vue, you will get the full templates. So if you choose Vue - for today, the Vue template is more up to date. React, I still have to get to like, you know – well, you get like a React-based Boring Stack app, but you won’t get the auth yet, until I work on it. But if – let’s assume you’re using Vue; you get authentication, authorization, and also OAuth with Google.
So if you want to look at the app right now, you just look at the mellow view template, which is on the Boring Stack repo. So that would be github.com/ [unintelligible 00:29:57.08] /boringstack, then Templates, and you’ll see all the templates. They’re all real cool; you could read, and you will understand how the stack works.
[00:30:05.20] What about deploying a Boring Stack app? What does that look like?
Oh, it is – anyway you can run nodeapp.js, literally, you could deploy it there. So I have people deploying on VPS’es. [unintelligible 00:30:15.11] So I want to work on more – so anyway you can run nodeapp.js, literally, I’m not even kidding, you could deploy the Boring Stack app. So I’m thinking that’s almost like every hosting provider out there that supports Node.js. So wherever you want to deploy. It’s so simple, it’s so easy. Because Sails is that simple, there’s not much orchestration needed. Just nodeapp.js, your app is live, in wherever you’re deploying.
What about backend, like database, connections, etc?
Yeah, thank you. I love that. So in the Boring Stack we use Sails, of course. And Sails has an ORM, Waterline, which is superb. I don’t know why we don’t talk about it enough. So it’s a first party ORM in Sails which lets you connect to any database you want. MongoDB, Postgres, MySQL… I’m working on a SQLite adapter, which I’m going to reveal at SailsConf anyways, next month…
So for database – in fact, one cool thing is if you scaffold a new Boring Stack app, Sails is very pragmatic, because we don’t have an opinion on what database you should use. I think databases are too personal to be like “Okay, in this stack we use SQLite, or in that stack we use Postgres.” No, no, no. You don’t have – you cannot decide the data need of a project. So because of the way Waterline is, you could easily start a Boring Stack app and don’t worry about the database until you have to. So we ship with something called Saills Disk, which will act like this development-only database layer. You use your Waterline query as default; so you could use user.find, or user.create or whatever. Then when it comes time for you to have real production data, you just have to change one config, give it the database adapter, and the URL of your database, and all your queries stays the same, and Bob’s your uncle. You just go.
And one cool thing I like is you could have different models use different databases in one Sails app. I haven’t had to do that. I had to do that just once in a client’s project… But if that’s what you want – you’re like “Okay, my users table - let it be on Postgres. My orders table should be on MongoDB”, for whatever reason. Sails is that flexible; it can handle it. It’s just beautiful to see.
Break: [00:32:37.22]
Why do you think Sails isn’t more popular than it is? Why do you think that people don’t use it all that often?
So… Two things. One, I think it’s more of like a marketing thing. So in tech Twitter, in the tech space it’s all about the loudest, it’s all about who’s going to more conferences, and all that. Mike McNeil currently is the CEO Fleet Device Management, so he definitely has his hands filled with working there, and being the CEO. So that’s where I come in. So for the longest time, Mike - definitely not interested in the whole what’s shiny or popular. But I’m interested in it, because I think the project deserves all the flowers.
So the reason why it’s not that popular - probably because I haven’t stepped [unintelligible 00:35:14.27] for a while, because like I said, Mike is just – so anytime we speak, he always says Sails is the only way he can build a full-stack JavaScript application. And he’s not the only one who thinks so. Like I said, there are lots of companies. In fact, just the other day I found out a Nigerian company who is using Sails. They are doing up to 72 billion internal transactions (they’re like a FinTech company) per month, using this boring stuff. And they just casually told me about it. And they said that they wouldn’t have moved faster if t wasn’t for Sails. I’m like “Oh, really.”
So it’s all about shiny, it’s all about who’s the loudest out there. So that’s why I’m coming to help it… Because I think that’s the only missing piece, is to talk about it and get more people excited about it… And yeah, and really get the word out there. Because the tech is too good.
And one thing that always blows my mind - we are at 1.x in Sails. And I could tell you for free that we are feature parity with any other framework out there. And I’m not even kidding. While we’re still at 1.x. To tell you how stable… Because stability is at the core of Sails. Stability is what Mike wanted. So at 1.x… Just think about what would happen if we were at 2, or 3, or 4. I actually dream of those days, so…
I can tell. I can tell you’re very into this. You do a good job of being an advocate for both Sails and for this combination of tooling. Where do you see this going? I mean, if you cast forward your efforts now, go a year, two years, five years down the road, what do you see in the Boring Stack and Sails’ future?
So I see more adoption, because I am very entrepreneurial. I have something called the African Indie Hackers project I’m working on, which is encouraging more people to build products on the web, and get paid for it. So I got to see more people, more indie hackers using Sails and the Boring Stack, because it’s just a no-brainer… Because I’ve seen it both ways. And more enterprise companies are using Sails, because – especially the Boring Stack. And of course, Sails if you just want backend. So I see more people knowing about it, and more people picking it up as a no-brainer. And as a very modern replacement for the MEAN stack, or MongoDB, Express, React… So anyone using Express or the MEAN stack have no reason not to use the Boring Stack. And from what I’ve seen, more people that are tired of the complexity of modern web dev, from things like Next.js, will be coming to Sails. Because like I said, people are already coming.
[00:37:56.22] I had someone who was building their first product - they were working with Next.js. They were so frustrated, they hit me up like “Dude, I’ve gotta try the Boring Stack.” They set it up in a day. Everything they’d been building on in Next.js they set up in a day, and it was night and day difference for them. And they loved it so much.
So I got to see people who want simplicity… Because I like to code, but I don’t want to spend hours coding, you know? I just want to do work for like an hour, and then get my stuff done, and I’m gone. Because work should enable me to leave as soon as possible. So my tools should not keep me at my desk for hours, just because I’m debugging something specific to the framework. There’s gonna be very much more adoption. And what I want - this is my opinion; I don’t want people building demo apps to use the Boring Stack. I want people shipping businesses. So agencies that want to ship for their clients, businesses that are building SaaS, freelancers, and anyone who just wants to ship stuff; like, you don’t really care about the shiny, you just want to ship stuff… Yeah, I see them using Sails. I’m loving it… Because I love it.
Well I think if people try it out, they may love it as well. What’s the best way to get started with this project?
Yeah, so quickly, if you get your hands dirty, if you’re like me, you want to see something on your screen really quickly, just [unintelligible 00:39:15.08] You could also pick the project name and whether Vue, React or Svelte. You can pick those. [unintelligible 00:39:28.12] and that’s all, and you can get started.
You could also look at the docs. So docs.sailscasts.com, because I work on a ton of open source projects, so we have this unified docs at the SailsCasts company. So go to docs.sailscasts.com/boringstack. There you get to see the docs, our nice little mascot… Fun fact - the mascot is a manatee, which are the gentle cows of the sea, if you will. Very slow, very boring… So that’s why we picked them as a mascot. We are taking this boring thing really seriously, if you haven’t noticed.
Not to be confused with a hippopotamus, which is also in the water, but not boring at all, right? Very dangerous, hippos…
Yes, they are.
Good choice, a manatee. Manatees are awesome. That’s great. How’d you get that artwork? Did you have DALL-E draw it for you, or did you have a human draw it for you?
Yeah, I have this designer who is working with me for like three, four years now. She does all the logos. She’s so good. So she did that.
Cool. Very cool. The Boring JavaScript Stack. Kelvin, this is all really interesting stuff. I like how exciting you make the boring things… I do also think that choosing boring technologies serves people well most of the time… And we do find ourselves chasing yet another shiny object too often. In fact, around here at JS Party we’re often covering the new frameworks, and most of the time I say no, because we’ve covered so many frameworks… And in fact, when I first heard from you, I was like “I don’t know, another stack? Should we talk about yet another stack?” But I’m like “Well, this one has a little bit different view of the world.” It’s trying to be maybe your last stack that you need for your business. Because if you pick these tried and true tech, you won’t have to find yourself upgrading, refactoring, rewriting and migrating to another stack 6 months, 12 months, three years from now. Very cool, Kelvin. Well, what’s the best way to connect with you, and to connect with the Boring Stack, and say hi out there online?
Yeah, for sure. So I am most active, kind of like very notorious on X, Twitter, where you could find me at @Dominus_Kelvin. And also, check out two docs, because I think the docs are quite good. They’re not perfect, because there’s still so much to add from the perspective of new people coming into the stack… So check out the docs, and let me know how you hate it and how you like it. Of course, I always wanna make it better.
You could also look forward to SailsConf Africa, because I am giving a workshop, migrating from MEAN to the Boring Stack, which is on May 17th. It’s going to be live-streamed, so anyone can watch it from wherever they are in the world. So it’s going to be like this hands-on thing, because people are going to ask questions in real time. And if you have any questions online too, you could also bring it.
So those are the ways. So first of all, just Twitter, and then also you could join the SailsCasts community Discord, so you could ask questions. So sailscasts.com/chat will redirect you to the Discord invite; come in, and bring in a question. I like to see fresh perspectives, because I’ve been using this for six, seven years, so I definitely have bias to whether it’s easy or not. So bring your perspectives. I would love to hear them.
Very good. Well, Kelvin, send us all the links to all those things you mentioned. I’ll make sure that everything gets into the show notes, so that our listener can click through and connect the easy way. Well, that is our show for this week. Thank you for listening to JS Party. On behalf of Kelvin Omereshone and the Boring JS Stack, and Hagfish, and SailsCasts, all the things - thanks for listening. We’ll talk to you on the next one.
Our transcripts are open source on GitHub. Improvements are welcome. 💚