Searching for the exact same React and Express boilerplate setups again and again was getting incredibly tiring. Constantly context-switching to Google basic commands every time I started a project completely broke my flow, so I decided to finally do something about it. I built my own CLI Developer Assistant! 🤖💻 Instead of building another standard web app, I wanted to build a practical tool that actually solves a real annoyance and improves my daily workflow directly from the terminal. Here is how I built the architecture: 🧠 The Brain (Backend): A Node.js & Express API running locally, securely connected to a MongoDB Atlas database vault to store all my code snippets. ⌨️ The Walkie-Talkie (Client): A custom Command Line Interface (CLI) built with Node.js that uses fetch to talk to my API. My biggest "Aha!" moment: Stepping out of the browser and learning how to interact directly with the operating system was a massive mental shift. Learning how to use npm install -g to tap into the Windows OS PATH and register my own global bot command, along with parsing raw terminal inputs using process.argv, completely changed how I look at software engineering. Now, instead of breaking my flow to search the web, I just type: bot save "npm create vite@latest . -- --template react-ts" as "react-ts" ...and it instantly writes to my database. Later, bot get react-ts prints it right back out for me to use. I'm incredibly proud of how this decoupled system turned out! But I still need to copy and execute the commands manually—sometimes being a little lazy is the best motivation to learn something completely new! 😂 You can check out the source code here: [https://lnkd.in/gS49R2wj] #SoftwareEngineering #WebDevelopment #NodeJS #MongoDB #CLI #DeveloperTools #BuildInPublic
Building a CLI Developer Assistant with Node.js and Express
More Relevant Posts
-
𝗖𝗹𝗶𝗰𝗸𝗶𝗻𝗴 "𝗖𝗼𝗻𝗻𝗲𝗰𝘁" 𝘁𝗮𝗸𝗲𝘀 𝗼𝗻𝗲 𝘀𝗲𝗰𝗼𝗻𝗱. 𝗕𝘂𝗶𝗹𝗱𝗶𝗻𝗴 𝘁𝗵𝗲 𝗹𝗼𝗴𝗶𝗰 𝗯𝗲𝗵𝗶𝗻𝗱 𝗶𝘁? 𝗧𝗵𝗮𝘁'𝘀 𝗮 𝗱𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝘁 𝘀𝘁𝗼𝗿𝘆. - I’m currently building a developer networking platform, and I just wrapped up the core feature: the User Connection system. As users, we expect a seamless experience when we visit someone's profile. But as a backend developer, orchestrating that single "Connect" button was an amazing dive into dynamic state calculation and bidirectional database queries. To make the UI feel intuitive, my API doesn't just return profile data—it acts as a dynamic state machine. When User A visits User B's profile, the backend instantly calculates: 🔹 𝗜𝗱𝗲𝗻𝘁𝗶𝘁𝘆 𝗖𝗵𝗲𝗰𝗸: Are they viewing their own profile? ➔ Render "Edit Profile". 🔹 𝗕𝗶𝗱𝗶𝗿𝗲𝗰𝘁𝗶𝗼𝗻𝗮𝗹 𝗗𝗕 𝗖𝗵𝗲𝗰𝗸: Did A send a request to B, or did B send one to A? 🔹 𝗦𝘁𝗮𝘁𝘂𝘀 𝗜𝗻𝗷𝗲𝗰𝘁𝗶𝗼𝗻: Injecting real-time states (`connect`, `pending_sent`, `pending_received`, or `connected`) directly into the payload before it even reaches the frontend React app. It’s incredibly satisfying to take a complex database relationship and distill it down to a single, snappy UI button for the end-user. The hardest features to build are usually the ones that look the simplest on the screen! Have you ever built a feature that looked deceptively simple? Let me know below! #SoftwareEngineering #BackendDevelopment #NodeJS #PostgreSQL #ReactJS #WebDevelopment #BuildInPublic
To view or add a comment, sign in
-
Leaving Node.js behind: Building a raw HTTP server in Go. After spending the week locking down my PostgreSQL database, it is finally time to build the API server. But moving from Node.js to Go requires a complete mental reset. In Node, you reach for Express.js immediately. You write app.get("/", (req, res) => {}) and you're good to go. In Go? There is no Express by default. You build it raw using the standard library (net/http). This simple block of code completely flips the script on how you handle data. package main import ( "log" "net/http" ) // The mental shift happens HERE: (w, r) func handler(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hello world")) } func main() { http.HandleFunc("/", handler) if err := http.ListenAndServe(":8080", nil); err != nil { log.Fatal(err) } } In Node, it’s always (req, res) - Request first, Response second. In Go, the handler looks like this: (w http.ResponseWriter, r *http.Request). Response first, Request second. Why? Because Go treats the ResponseWriter (w) as a literal tool you are handed to execute your job. The server effectively says: "Here is your pen (w). Now look at the paperwork (r) and write your response back immediately." I'm officially writing my first route to start the Auth sequence. It’s raw, it’s fast, and there’s no framework magic hiding the fundamentals from me. We move! 💪🏾 To the devs who made the switch from JavaScript/Node.js to Go: What was the hardest habit you had to break? Let’s gist in the comments 👇🏾 #Golang #NodeJS #BackendEngineering #API #SoftwareDevelopment #TechBro #TechInNigeria #WeMove
To view or add a comment, sign in
-
-
Node.js vs. Go HTTP Server 🌐 Leaving Node.js behind: Building a raw HTTP server in Go 🚀💻 After spending the week locking down my PostgreSQL database, it is finally time to build the API server. But moving from Node.js to Go requires a complete mental reset. In Node, you reach for Express.js immediately. You write app.get("/", (req, res) => {}) and you're good to go. In Go? There is no Express. You build it raw using the standard library (net/http). And Go completely flips the script on how you handle data. In Node, it’s always (req, res) — Request first, Response second. In Go, the handler looks like this: func handler(w http.ResponseWriter, r *http.Request) Response first, Request second. Why? Because Go treats the ResponseWriter as a literal tool you are handed to execute your job. The server says: "Here is your pen (w). Now look at the paperwork (r) and write your response back immediately." I'm officially writing my first route to start the Auth sequence (Signup/Login). It’s raw, it’s fast, and there’s no framework magic hiding the fundamentals from me. We move! 💪🏾 To my devs who made the switch from JavaScript/Node.js to Go: What was the hardest habit you had to break? Let’s gist in the comments 👇🏾 #Golang #NodeJS #BackendEngineering #API #SoftwareDevelopment #TechBro #TechInNigeria #WeMove
To view or add a comment, sign in
-
-
🚀 Excited to share my latest full-stack project — Open Feedback Honest feedback is often easier to give when it can be shared anonymously. With that idea in mind, I built Open Feedback — a platform where users can create an account, generate a unique public URL, and share it anywhere. Anyone with the link can submit anonymous feedback without logging in, and all responses are displayed in the user’s dashboard, where feedback can be enabled or disabled at any time. ---Technical Highlights: * Optimized dashboard message retrieval using MongoDB Aggregation Pipeline * Implemented schema validation with Zod for robust API and data handling * Added secure authentication using Auth.js * Built OTP/email verification workflows with Resend * Designed scalable database schemas with MongoDB and Mongoose * Developed real-time username validation with debouncing and server-side uniqueness checks * Built the application with TypeScript for improved type safety and maintainability 🔗 Live App: https://lnkd.in/gypPZaq8 💻 Source Code: https://lnkd.in/gs5Bj8X5 📩 Send Me Anonymous Feedback Here: https://lnkd.in/gieS3jay Would love to hear your thoughts—and feel free to try it out by sending anonymous feedback through the link above! #NextJS #FullStackDevelopment #BackendDevelopment #TypeScript #MongoDB #WebDevelopment #SoftwareEngineering #Programming #ReactJS #JavaScript #BuildInPublic
To view or add a comment, sign in
-
Stop building Auth from scratch. 🛑 Every #NestJS developer knows the "Day One" fatigue. You start a fresh project, but before you can touch the actual business logic, you have to spend 3 days setting up: 🔹 JWT strategies & refresh token rotation 🔹 Password hashing & 2FA 🔹 OAuth (Google, GitHub, etc.) 🔹 Database schemas & Docker configs 🔹 Swagger documentation I’ve written this same code in at least 10 different projects. It’s the same 80% every time. So, I built a tool to fix it. 🚀 Introducing @mehdijony/nestjs-user-service Unlike a standard boilerplate, this is a CLI that installs a production-ready User & Auth engine directly into your existing project. Why it’s different: ✅ Smart Detection: It identifies your ORM (Prisma/TypeORM/Mongoose) and package manager (npm/pnpm/yarn/bun) and adapts the code to fit. ✅ Safety First: It creates a restore point before touching a single file. If you don't like the result, run rollback and your project is exactly as it was. ✅ Senior-Grade Features: It includes RBAC, rate limiting, Redis caching, and Event-Driven hooks (Kafka/RabbitMQ) out of the box. I’ve just published a full breakdown of the architecture and how it works on DEV Community. Check out the full article here: 🔗 https://lnkd.in/gfMqvr7w I'd love to hear from other #BackendEngineers—how many times have you re-written your Auth logic? What’s the one feature you always wish was automated? #NodeJS #TypeScript #WebDevelopment #OpenSource #SoftwareEngineering #Backend #Productivity #CodingLife Tips for maximum reach on LinkedIn: Post the Link in the Comments: LinkedIn sometimes limits the reach of posts that lead users off-platform. Post the text, and then immediately add the link as the first comment (or use the "Edit post" trick). Tag People/Groups: If you have colleagues or groups focused on NestJS or Node.js, tag them to start a conversation. Use the Image: Use the "Old Way vs. New Way" image I generated earlier as the media for this post. Visuals of code/terminals perform exceptionally well with the engineering community.
To view or add a comment, sign in
-
Reviewed an open source NestJS package. Here's what I found inside. A developer reached out about nest-mongoose-crud - a package that generates full CRUD endpoints for NestJS + Mongoose with just a few lines of code. I read through the source. Honest breakdown: What's done well: APIFeatures is a separate class - filtering, pagination, search logic stays out of the service. Clean separation. The GET endpoint ships with sort, filter, paginate, populate and field selection out of the box. For MVPs and internal tools, that's a real time saver. Pagination responses return total, pages, currentPage - frontend doesn't need to calculate anything extra. Where it can grow: Search uses new RegExp() on raw query input without escaping. That's a ReDoS vector on public APIs. findAll runs two heavy queries - find() + countDocuments(). On large collections this adds up. updateOne hits the DB three times. One findByIdAndUpdate with { new: true } would do the same job in one round trip. Field selection comes straight from query params - no allow-list. A user can request any field, including ones you'd rather keep internal. Bottom line: solid foundation for internal tools and MVPs. Public API needs a security pass before shipping. Thanks to the author for building in the open - that's how these conversations happen. What do you look for first when reviewing an open source package? Cedar Daniel Project: https://lnkd.in/d6mfzn_h #NestJS #TypeScript #OpenSource #NodeJS
To view or add a comment, sign in
-
🚀 I just built a URL Shortener... and then I became obsessed with making it FASTER! ⚡ Started with a clunky version that took **45 seconds** to shorten a URL 😅 After optimizing Prisma queries, slug generation, and API response handling... **I brought it down to 20 seconds!** 🔥 Yes, you read that right — it now takes just **20 seconds** on average to shorten any long URL. ### Project: tiny-url A clean, production-ready URL shortener built with: **Tech Stack:** - Next.js 15 (App Router) - TypeScript (full type safety) - Prisma ORM - Tailwind CSS - Zod validation **What I focused on:** - Lightning-fast slug generation (Base62) - Efficient database operations - Proper error handling & validation - Clean, responsive UI The app is fully functional locally, and I’m planning to deploy it soon on Vercel with PostgreSQL. **Now here’s the fun part** 👇 I’ve pushed the code to GitHub: https://lnkd.in/guiKNnAD **Want to collaborate?** I challenge you to help me bring the average shortening time **below 15 seconds**! Fork the repo, clone it, and see if you can optimize it further. Whether it’s better caching, smarter indexing, edge functions, or any clever trick — I’m all ears! Drop your optimization ideas in the comments, or even better — send a Pull Request! Let’s make this the fastest URL shortener built by the community 💪 #NextJS #TypeScript #Prisma #PerformanceOptimization #FullStack #OpenSource #WebDevelopment #Collaboration
To view or add a comment, sign in
-
I just launched my first open-source CLI tool. 🙌 create-samrose-app lets you scaffold a full Next.js stack interactively with a single command. The idea came from a frustration I kept running into: every new project starts with the same setup marathon. ORM config, database setup, auth wiring, CI/CD... before you've written a single feature. So I built the tool I always wanted. $ npx create-samrose-app You pick: • ORM (Prisma, Drizzle, TypeORM, Mongoose) • Database (PostgreSQL, MySQL, SQLite, MongoDB) • Auth (NextAuth, Clerk, JWT) • State (Zustand, Redux, Recoil) • API (tRPC, oRPC, GraphQL, REST) • Testing + extras like Docker & GitHub Actions Everything wired together. Everything production-ready. Building this taught me a ton about CLI design, cross-stack compatibility, and open-source documentation. If you try it, let me know what you think — feedback and contributions are very welcome. And if it saves you even 30 minutes, a ⭐ on GitHub would make my day! 🌐 Docs: https://lnkd.in/gqx_EJgE 📦 npm: https://lnkd.in/g93iKfMg 💻 GitHub: https://lnkd.in/gBiB9yMh #OpenSource #NextJS #CLI #BuildInPublic #DevTools #Package
To view or add a comment, sign in
-
-
🚀 Built something small… but useful. Introducing @bhaskardey772/captcha ❓What is it? A lightweight, Canvas-based CAPTCHA generator for Node.js that works without sessions, databases, or external storage. 🤔 Why did I build this? Most CAPTCHA solutions I tried had at least one of these problems: Required session storage or Redis Used SVG tricks or browser dependencies Or were just too heavy for simple use cases I wanted something: → Simple → Stateless → Easy to drop into any backend So I built one from scratch. ⚙️ How does it work? Instead of storing answers anywhere: 1. It generates a CAPTCHA image using Canvas (server-side) 2. Signs the correct answer using HMAC-SHA256 3. Sends back a token 4. Verifies everything statelessly 🔍 What makes it interesting? 🎨 Pure Canvas rendering No SVG. No browser. Just clean PNG generation. 🔐 Stateless verification No Redis. No DB. No sessions. 🤖 Anti-OCR distortion (3 layers) • Character rotation, skew, jitter • Ghost layers (turbulence effect) • Noise (lines, ellipses, dots) ✅ Strict validation Case-sensitive. No shortcuts. ⚡ API is intentionally minimal const { dataUrl, token } = captcha.create(); const { valid, reason } = captcha.verify(token, userAnswer); Works with Express, Fastify, or plain Node.js. (Also added a small React example in the docs.) 📦 npm: https://lnkd.in/gk4EMbRt 💻 GitHub: https://lnkd.in/g_6-WS5h If you try it out, I’d genuinely love your feedback, even if it’s “this could be better” 🙂 #nodejs #typescript #opensource #websecurity #npm #backenddevelopment
To view or add a comment, sign in
-
-
🚀 Just Built & Deployed My First Full-Stack CRUD Notes App 💻 Finally, I built something that actually feels like a real project, not just practice. 🔗 Live App: https://lnkd.in/dxKgEH28 🔗 GitHub Code: https://lnkd.in/dqz7QSeH This project is a complete CRUD (Create, Read, Update, Delete) application, which is basically the core of most real-world apps managing and manipulating data through APIs. 🧠 What I learned while building this: • How to build REST APIs using Node.js & Express • Connecting backend with MongoDB using Mongoose • Creating schemas & models for structured data • Performing full CRUD operations (create, read, update, delete) • Handling routes, requests (req), and responses (res) • Using req.params for dynamic operations like delete/update • Connecting frontend with backend using Axios • Handling CORS issues between frontend & backend • Understanding real data flow (frontend → backend → database → frontend) • Using .env for securing sensitive data • Converting frontend into build (dist) folder • Deploying full-stack app (frontend + backend together) 💡 Big realization: This is how real applications work User input → API → Server → Database → Response → UI Before this, everything felt separate… Now it all connects. It’s still a simple project, but it gave me clarity on how full-stack systems actually work behind the scenes. Would really appreciate feedback 🙌 #BackendDomination #FullStackDevelopment #NodeJS #ExpressJS #MongoDB #Mongoose #CRUD #RESTAPI #WebDevelopment #100DaysOfCode #BuildInPublic #LearningJourney
To view or add a comment, sign in
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development