<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Cedric Ahenkorah</title>
    <description>The latest articles on DEV Community by Cedric Ahenkorah (@cedricahenkorah).</description>
    <link>https://dev.to/cedricahenkorah</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1252311%2Fe10cd18d-31fe-4d33-9b22-07898d147c3f.jpeg</url>
      <title>DEV Community: Cedric Ahenkorah</title>
      <link>https://dev.to/cedricahenkorah</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cedricahenkorah"/>
    <language>en</language>
    <item>
      <title>Automating My Node.js Setup with notsc 🦉</title>
      <dc:creator>Cedric Ahenkorah</dc:creator>
      <pubDate>Mon, 14 Jul 2025 10:00:13 +0000</pubDate>
      <link>https://dev.to/cedricahenkorah/automating-my-nodejs-setup-with-notsc-4ec2</link>
      <guid>https://dev.to/cedricahenkorah/automating-my-nodejs-setup-with-notsc-4ec2</guid>
      <description>&lt;p&gt;How do we start?...&lt;/p&gt;

&lt;p&gt;A year ago, around this time, I published a blog post on how to set up a Node.js project with Typescript support. &lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/cedricahenkorah/setting-up-a-nodejs-express-project-with-typescript-5dae" class="crayons-story__hidden-navigation-link"&gt;Setting up a Node.js Express project with Typescript&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/cedricahenkorah" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1252311%2Fe10cd18d-31fe-4d33-9b22-07898d147c3f.jpeg" alt="cedricahenkorah profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/cedricahenkorah" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Cedric Ahenkorah
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Cedric Ahenkorah
                
              
              &lt;div id="story-author-preview-content-1945102" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/cedricahenkorah" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1252311%2Fe10cd18d-31fe-4d33-9b22-07898d147c3f.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Cedric Ahenkorah&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/cedricahenkorah/setting-up-a-nodejs-express-project-with-typescript-5dae" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 2 '24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/cedricahenkorah/setting-up-a-nodejs-express-project-with-typescript-5dae" id="article-link-1945102"&gt;
          Setting up a Node.js Express project with Typescript
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/node"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;node&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/softwareengineering"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;softwareengineering&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/typescript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;typescript&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/express"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;express&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/cedricahenkorah/setting-up-a-nodejs-express-project-with-typescript-5dae" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;4&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/cedricahenkorah/setting-up-a-nodejs-express-project-with-typescript-5dae#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
 At the time, I just wanted a place to reference the steps I normally go through when scaffolding a new backend project with Nodejs and Typescript. Writing that blog post felt like the best way to keep this knowledge organized and share that it with anyone else who may find it helpful.

&lt;p&gt;I got a few views on that post, and while I never really knew how useful it was to others, one moment stood out: at one dev meetup last year (Code and cocktails), a friend introduced me to someone who had found that post very helpful. It felt really great that something I put out based of my own pain points (googling the right steps, config set up and etc) in setting up a new Nodejs backend project made someone else's life a bit easier.&lt;/p&gt;

&lt;p&gt;A year on and I still reference this blog post myself each time I want to scaffold a new backend project. But, honestly, I've grown tired of reading it each time and repeating the same setup tasks - adding logging, setting up a database, configuring redis, defining standard API responses and so on. It's tedious, and I don't have them memorized. So I asked myself, how can I make this easier? Ideally I should be able to "one shot" a new backend project with Node.js with TS support, and with all the tools and config I usually set up manually. After some research, I settled on building a CLI tool that does this for me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Meet Notsc🦉&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
A simple CLI tool that scaffolds up my Node.js with Typescript support backend project in a few seconds and includes the boilerplate config I typically need. No more referencing my own blog post loool. It's opinionated, clean and fast. But yeah, that's the beauty of engineering, there's always a new / better way to do something or solve a problem. I'll be using this CLI tool myself anytime I need to set up my backend projects, and you can too. To get started, run this command to install the CLI globally on your machine and watch it do the magic for you.&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://www.npmjs.com/package/notsc" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;npmjs.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -g notsc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Now installed, all you need to do is run it and follow the prompts:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;notsc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwsnf7rhdg7ij5q5e2sgw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwsnf7rhdg7ij5q5e2sgw.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbot3zrsj1e41til83rdz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbot3zrsj1e41til83rdz.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You should be able to scaffold a new Node.js with Typescript support backend project this way.&lt;/p&gt;

&lt;p&gt;This is an open source project and I'd love your contributions, support and feedback.&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/cedricahenkorah" rel="noopener noreferrer"&gt;
        cedricahenkorah
      &lt;/a&gt; / &lt;a href="https://github.com/cedricahenkorah/notsc" rel="noopener noreferrer"&gt;
        notsc
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      nodejs backend boilerplate with typescript support 
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;notsc 🦉&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;notsc is a highly customizable boilerplate generator for quickly scaffolding Node.js + TypeScript API projects. It supports optional integrations like database setup, Swagger/OpenAPI documentation, Redis, Jest for testing, and Docker—so you can start building with the tools you need, right out of the box.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 Features&lt;/h2&gt;
&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;✅ TypeScript support&lt;/li&gt;
&lt;li&gt;🧱 Modular architecture (controllers, routes, services)&lt;/li&gt;
&lt;li&gt;📦 Optional features: database, Swagger, Redis, Jest, Docker&lt;/li&gt;
&lt;li&gt;🎯 ESLint + Prettier setup&lt;/li&gt;
&lt;li&gt;🔁 Nodemon for development&lt;/li&gt;
&lt;li&gt;🧪 Jest for testing (optional)&lt;/li&gt;
&lt;li&gt;🌐 Swagger/OpenAPI setup (optional)&lt;/li&gt;
&lt;li&gt;🐳 Dockerfile &amp;amp; Dockerignore (optional)&lt;/li&gt;
&lt;li&gt;📂 Environment variable management&lt;/li&gt;
&lt;/ul&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📦 Installation &amp;amp; Usage&lt;/h2&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Using the Published Package&lt;/h3&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;Quick Start&lt;/h4&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npx notsc my-app&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;Global Installation&lt;/h4&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm install -g notsc
notsc my-app&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;With Package Managers&lt;/h4&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Using yarn&lt;/span&gt;
yarn create notsc my-app

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Using pnpm&lt;/span&gt;
pnpm create notsc my-app&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Local Development&lt;/h3&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;Clone and Setup&lt;/h4&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Clone the repository&lt;/span&gt;
git clone &lt;span class="pl-k"&gt;&amp;lt;&lt;/span&gt;your-repo-url&lt;span class="pl-k"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; notsc
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Install dependencies&lt;/span&gt;
npm&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/cedricahenkorah/notsc" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;Until next time. I should definitely be writing more often, this was fun!🙂&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Setting up a Node.js Express project with Typescript</title>
      <dc:creator>Cedric Ahenkorah</dc:creator>
      <pubDate>Fri, 02 Aug 2024 09:38:01 +0000</pubDate>
      <link>https://dev.to/cedricahenkorah/setting-up-a-nodejs-express-project-with-typescript-5dae</link>
      <guid>https://dev.to/cedricahenkorah/setting-up-a-nodejs-express-project-with-typescript-5dae</guid>
      <description>&lt;p&gt;Setting up a Node.js project with TypeScript can significantly improve your developer experience by providing static type checking in your code. In this blog, I'll guide you through the steps to set up a Node.js Express project with TypeScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create your project directory&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create a directory for your project and then navigate to it. In this example the name of our directory is &lt;strong&gt;&lt;em&gt;node-ts&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir node-ts
cd node-ts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Initialize the project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Install a new node project with &lt;strong&gt;&lt;em&gt;npm init&lt;/em&gt;&lt;/strong&gt;. This will create a &lt;strong&gt;&lt;em&gt;package.json&lt;/em&gt;&lt;/strong&gt; file in the root of your project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Install TypeScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Install TypeScript as a development dependancy.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install --save-dev typescript
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Initialize the TypeScript configuration file&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx tsc --init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Set up your project structure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create directories for your source (src) and compiled files (dist).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir src
mkdir dist
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Install development tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Install &lt;strong&gt;&lt;em&gt;nodemon&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;ts-node&lt;/em&gt;&lt;/strong&gt; as development dependencies to run and monitor your project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install nodemon ts-node --save-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Configure scripts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Configure a script in the &lt;strong&gt;&lt;em&gt;package.json&lt;/em&gt;&lt;/strong&gt; to run your server in development mode.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
    "dev": "nodemon --exec ts-node src/server.ts"
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Configure nodemon&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create a &lt;strong&gt;&lt;em&gt;nodemon.json&lt;/em&gt;&lt;/strong&gt; file to configure &lt;strong&gt;&lt;em&gt;nodemon&lt;/em&gt;&lt;/strong&gt; to watch the TypeScript files.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "watch": ["src"],
  "ext": "ts,json",
  "exec": "ts-node ./src/server.ts"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Configure TypeScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;&lt;em&gt;tsconfig.json&lt;/em&gt;&lt;/strong&gt;, specify the compiler options and include your source files.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "compilerOptions": {
    "target": "es2016",
    "module": "commonjs",
    "rootDir": "./src",
    "outDir": "./dist",
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "skipLibCheck": true
  },
  "include": ["src/**/*.ts"]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Install Express&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install express
npm install @types/express --save-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Create a simple express server&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create a &lt;strong&gt;&lt;em&gt;server.ts&lt;/em&gt;&lt;/strong&gt; file in your &lt;strong&gt;&lt;em&gt;src/&lt;/em&gt;&lt;/strong&gt; directory with the following basic set up for an express server.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import express from 'express';

const app = express();
const port = process.env.PORT || 3000;

app.get('/', (req, res) =&amp;gt; {
  res.send('Hello, TypeScript with Node.js and Express!');
});

app.listen(port, () =&amp;gt; {
  console.log(`Server is running at http://localhost:${port}`);
});

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Start the development server&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To start the server run the script you configured in your &lt;strong&gt;&lt;em&gt;package.json&lt;/em&gt;&lt;/strong&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your Node.js Express with TypeScript project should be up and running now.&lt;/p&gt;

</description>
      <category>node</category>
      <category>softwareengineering</category>
      <category>typescript</category>
      <category>express</category>
    </item>
  </channel>
</rss>
