You do more when you do more. Or something like that. After my last project ended, I feverishly worked on building my Next.js skills for about five months, working through a number of YouTube Next.js App Tutorials which I've written about previously. But there came a time when I became incredibly despondent and pretty much just gave up on development time during that period. I spent a lot of months on the couch I could have been busting ass. It's just so true that the more you do the more you do.
The whole point I'm trying to convey is that I can do f'ing anything with a computer except print money. I'm missing that so far. But there isn't a programming language I cannot rapidly master and pretty much the ones I've chosen are the clear winners in a number of categories. But there isn't a task in Node.JS, Typescript, React, NextJS, Python or any other language I don't think I can't handle. And when I say I, I do mean with the assistance of Copilot or Claude or Gemini or you get the picture.
Three years ago I could never have imagined I would be actually contemplating integrating a visual configurator for Crew AI platform directly into my Dashboard application. The visual configurator happens to be conveniently also written in NextJS with Prisma and Clerk and Tailwind and stuff. How convenient that the only web interface made for the coolest open source agentic ai framework, CrewAI, is in my favorite dev stack up and down? NextJS, Clerk, its as if he learned NextJS the same place I did. In any event the point is that prior to LLMs, to do this stuff you had to go to the store and buy lots of books and go to conferences and spend hours researching.
Now, you can eliminate all those intermediate steps and get straight to the solution. And pretty much any programming task can be readily worked through. However, in my case I really do have like 20 years of paid high level C# development experience. Which translates perfectly to NextJS and Typescript and the rest of that stack.
Then there's the super cool VS Code with Github Copilot which is being rapidly replaced by Cody. Cody is another AI Chat extension for VS Code which has indexed all of my code bases which I had to check into Github in order to deploy to Vercel (and also to learn all those things in case I ever get to do them for somebody else's dime). In any event I've discovered that Cody can access my entire code bases and give super awesome suggestions even with GPT 3.5.
The good news is the results of learning NextJS were prodigious - I developed or otherwise significantly contributed to three separate GPT Chatbot clients, a sophisticated video learning management system (LMS), my Discord Clone (Discordant), .this Notion clone (Notes), Next Commerce Admin, and Next Commerce Store an Air BNB clone which had build errors which I couldn't work through to get to Vercel hosting (which requires projects to build of course before they'll deploy) and a couple more, all the while learning all about state management and navigation and everything else in Next.js 13 and now 14, using Prisma with MongoDB, MySQL, and PostgreSQL.
I explored UploadThing, Cloudinary, and other cloud storage solutions in the process, learned NextAuth, and then discovered that I really, really, really HATE NextAuth. I discovered Clerk and how cool and mostly simple and nag-free it is compared to Google with all of its OAuth configurations and such. The point is that a lot of these integrations are just plain awesome and more importantly, exposed me to all the ways to both scalably and economically build and host sophisticated solutions tailored made for any situation.
The main thing I learned is that NextJS is the shiniest and most extensive box of legos I've ever played with considering all the things you can use with it. So while I might not have 20 years of development in NextJS, I do in .NET and with LLMS.
Here's a screenshot of Uptime Kuma monitoring all the different endpoints:
So now I've come full circle in my career. Don't get me wrong, my job is fun and fulfilling. I've taken on a role as an appointment setter for a local solar energy company. My job involves connecting with potential clients and convincing them, in 90 seconds or less, to spend about 30 minutes with one of our Solar Experts (seasoned sales professionals). These experts go out, demonstrate the benefits of solar energy, and facilitate the sales process.
It's essential for all property owners to be present during these consultations. Our experts come prepared with all the necessary documents to finalize the agreement on the spot. Investing in solar energy is a significant decision, but it's a smart one. With inflation, finance charges will always be outpaced by the rising cost of energy. While you can't pay off your power bill, you can invest in solar energy and lock in your rates.
I genuinely enjoy this role because it allows me to share positivity with each potential client, helping them make a wise investment for their future. (See my separate article on the song I made with Sunu.ai - How are you today!)
The most frustrating part of outbound telemarketing is being at the mercy of the managers who run the calling lists. These lists are closely guarded secrets in the industry. A good list of qualified leads can sell for $4.00 per lead. There are roughly 3.8 million single-family homes in Florida. Calling every home would take about two hundred days. It's frustrating to speak with the same person twice in three days. By my reckoning, the list may be only 30% qualified leads. Why would anyone repeatedly call such a defective list without verifying it each time it is used? Much more on this later.
Recently, PlanetScale, which was hosting my Discord clone's MySQL database on its Hobbyist tier, announced the end of this tier. This left the database for the coolest thing I ever made, my Discord clone Discordant, into which I had poured roughly 180 hours of crafting time, even if it was a line-by-line copy from a YouTube video's example app, in limbo.
Writing along with the original author, I picked up all his little keyboard shortcuts and extension and other coding tricks. Then came the cycle of save, build, preview, npm install, npx db push, git add, and so on. After six separate applications, I pretty much got the picture. You learn so much by just typing and building and breaking and checking in and out and deploying to Vercel repeatedly or not.
Think about it this way, if you bought a kit plane, they built the parts but you've still got to assemble it over a couple thousand hours or so. Things don't work exactly like they did for the author of the video. If you don't use the exact versions of packages they've used it probably won't build and likely not get it working with AI assistance as all of these apps are using bleeding edge code technologies which haven't been incorporated into the models' training data.
So its up to you to find the documentation and work work work through the error. I found that at first it would take me roughly four hours per developer hour on the videos but I got it down to roughly 1 to 2. When I just want to implement the app - which there are so many cool ones to choose from, I'll blaze through the configuration sections. You only need to build so many navbars and such before you get the picture.
So, I've now I've had the epiphany that "Code with Antonio's" Next Commerce Admin (part of his two-app Next Commerce Course) lays the best foundation for the Corporate Dashboard I am building. I'm implementing it component by component, my way. The first step was adding a Twitter-like side menu to the Dashboard, which was sorely missing. Screenshot below:
This realization came after trying so many Dashboard templates, only to find that I had the ultimate template with the Commerce Dashboard. It's a Next.js app router with Clerk Auth and Prisma DB, making it pretty much portable to any cloud DB host. Additionally, ShadeCN controls and now Aceternity Controls for Next.js are so eye-catchingly awesome, they're like ultra eye candy you can easily integrate into your own Next.js applications.
Oh, did I mention I also got VAPI.ai's React demo Character Builder application running in my own development environment? Then, I ported that into my Next.js portfolio, which is coming soon to production.
Separately, I integrated VAPI.AI's assistant into a cool new React component for Next.js, which displays an animated Siri Wave component when you interact with my assistant, Leo. I've got that process down pat.
If you need someone who can implement a Voice Assistant to drive the entire process—updating selections on the page, entries in a calendaring app, or anything else, all while retaining all the chat history for later interactions and being able to send messages under the covers to vapi.ai—I'm your guy. I never thought I'd be programming computers in plain English.
I've written previously on my fascination with VAPI.AI: . I've also developed a pretty comprehensive overview of my proposed Vocamation SaaS here. https://kendev.co/Articles/details/vapi-ai-conversational-ui
About a month ago, like I said, I had to figure out how to move my Discord clone's database from PlanetScale, which had eliminated the hobbyist tier and was now asking for $40.00 a month for the base plan. Despite having invested so much blood, sweat, tears, and time, making me severely attached to my otherwise completely useless Discordant platform, I needed to find a solution. Thus, an associate's hosted server became the new location for a new MySQL installation, which in turn became the new home for the database. But wait, there's more!
I had to write functionality for "export all" and "import all," which meant adding UI controls to execute at least the export data functionality. Or at least, I thought it would be cool to do it that way. So I took the theme switcher component (from Code with Antonio's Discord Clone Video) and gave it to GitHub Copilot, along with my intention of making this into a control that gives an option to run the library import and export functions I wrote.
The library functions used nextjs/fs, or something like that, the filesystem object, to write the objects from the models into JSON files in the /public folder. But here's the catch: fs can only be run in a server component, and the menu is a client component.
I ended up having to implement two new API endpoints to execute the code server-side from the client-side call. In a nutshell, I relearned and learned a ton, exercised a ton of my coding muscles, and reinforced the idea that there's not a coding challenge I've set for myself (maybe I'm setting too low a bar?) that I haven't achieved. I've mastered every aspect of Next.js development and am continuously learning and leveraging AI to make myself more productive and smarter.
But wait, there's more! I was contacted about the possibility of doing some work for a corporate intranet running DotNetNuke, tasked with building a DNN Module to display the birthdays of portal users. I crafted a module that shows the birthdays of anyone on a given day, with an option for Monday or Friday to include birthdays falling on the adjoining weekend. I even proposed a feature to submit the birthday persons and some metadata to Groq or another LLM to generate a funny story about the birthday people. That would have been fun.
In any event, I spent six hours the following Sunday essentially completing the project, sans final layout. All the settings and functionalities were there, and honestly, I could build a DNN module right now in 15 minutes. When you haven't done it in a year and a half, and you open Visual Studio only to update everything, which takes a while, then reboot, update some more, figure out where the templates are because you haven't done it on this machine, then install the templates, and restart your snoozing development SQL instance... It took some preparation time. Then, the client flaked. Go figure.
But I learned a lot. And realized that Atomoxetine - or Strattera - is focus. I actually asked Google if it raises your IQ when I was half asleep, and it said yes, in fact, studies have demonstrated that Strattera increases your IQ. All I know is I've been taking it religiously for about two or so months now, maybe a little longer, and I've got so much focus and clarity.
But wait, there's more - I developed Type II diabetes as a result of sugar and alcoholism and Pfizer Covid shots and well, my A1C went from like 5.1 four years ago, then the next year it was 5.7, and the doctor said I was prediabetic. Then it was 6.7, then 8.something, then peaked at 11.something. The point is, by that time, thank GOD the VA put me on a special diabetes counseling program.
I now meet with my PhD Pharmacist regularly to review my blood chemistry, and now that I've been on Ozempic for roughly a year or so, the results are life-changing in an affirmative, positive way. I quit drinking 2.5 years ago or so, and between that, being a little more conscious of what I eat, now Ozempic, and likely Strattera, when I quit drinking I was 318 pounds in November of 2022. My weight was down to 242 last week.
The best way to describe what Ozempic does is to reverse your appetite. When before you thought of your favorite food and it made you crave it. Now it makes me kind of gag to think about it. The main thing is it helps me eat much more intentionally focusing on better fresher options. And the other thing is I can't even think about eating until 9:00 pm most days so I usually only eat in a two hour window throughout the day.
This week I weighed in at 249. The weight goes up and down about five pounds over a week. The point is I am pretty much down 70 lbs. It is life-affirming. This difference in how I feel, which is likely also due to Strattera, is this crystalline focus most of the day.
I can barely sleep these days; as a matter of fact, I got 3.3 hours of sleep last night (April 30, 2024) according to my Galaxy Watch 4, and it is now 11:58 PM. I've pushed a project I added a new menu to from dev, so to speak, to prod, so you'd be able to see it at https://next-commerce-admin.kendev.co/.
Back to my Discordant clone's database rescue, I wrote an export and import library and used that to export data from my ransomed MySQL database - either pay $40.00 a month or else. So, I have a free place to park my MySQL databases now. Which is all part of the master plan of building the ultimate outbound telemarketing add-on for VICIDial. It is my plan to escape constant poverty. We'll see.
A dashboard that drives my bolt-on Crew AI Teams - which I'll somehow implement Crew AI Visualizer into perhaps?
kendevco/CrewAI-Visualizer: Interactive user interface for CrewAI package. (github.com)
kendevco (Ken) (github.com)
So, I've spent some cycles coming up with ideas which could theoretically lift me out of poverty again. I need to build something actually useful. I need something so compelling that somebody somewhere will see the value in being able to make outbound calls with VAPI.AI robots which give you complete programmatic control of every aspect of the interaction from the models and voices used for the different components of the pipeline to the ease with which it is integrated into your NextJS apps.
Finally, I attempted to work through Tubeguruji's Doctor Appointment Booking App using Strapi - my first introduction to Strapi, and while I had high hopes of the scheduling app, having worked on the real thing I wanted to adapt it to the real thing so to speak but ran into a bunch of issues with the tutorial because he failed to include any instruction on building the various content types and configuring those. He just really blazed through it.
Then I found this course Epic Next.js 14 Tutorial Part 1: Learn Next.js by building a real-life project on Youtube first and started working through part 1 this weekend after my failed attempt with the Dr Appointment Booking App. Needless to say, the course is quite simply the most comprehensive and complete course on building a sophisticated GPT powered SaaS app I've found - and I've built seven now. The thing is - if you haven't caught it yet - NextJS is the shiniest coolest newest box of Legos with all the coolest pieces. There's nothing you can't build with it but more importantly unlike the BS AI built apps - NextJS at least for the near future will always be the best choice I think for new sites because it is such a complete and overall perfect development ecosystem. Tack on to that the growing list of outstanding tutorial videos on Youtube. Also note that that while there are tons of Starter templates on Nextjs.org/templates and only one Strapi template now, this article is definitely the best so far.
More to follow.