<html style="scrollbar-color: rgb(219, 219, 219) rgb(255, 255, 255); scrollbar-width: thin;"><head><meta charset="utf-8"><title>[Dev Catch Up #39] - Logic-of-Thought Prompting, Stripe toolkit with LLM agents, Cline AI, Common Corpus dataset, Essential tsconfig.json options, and much more.</title><style>
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .typography .markup table.image-wrapper img,
  .typography.editor .markup table.image-wrapper img,
  .typography .markup table.kindle-wrapper img,
  .typography.editor .markup table.kindle-wrapper img {
    max-width: 550px;
  }
}
@media screen and (max-width: 650px) {
  .typography .markup div.youtube-overlay,
  .typography.editor .markup div.youtube-overlay,
  .typography .markup div.vimeo-overlay,
  .typography.editor .markup div.vimeo-overlay {
    display: none !important;
  }
}
@media screen and (max-width: 370px) {
  .typography .markup div.tiktok-wrap,
  .typography.editor .markup div.tiktok-wrap {
    width: calc(95vw - 32px);
    height: calc((95vw - 32px - 2px) / 0.485714);
  }
}
@media screen and (max-width: 650px) {
  .typography .markup div.embedded-publication-wrap .embedded-publication.show-subscribe,
  .typography.editor .markup div.embedded-publication-wrap .embedded-publication.show-subscribe {
    padding: 24px;
  }
}
@media screen and (max-width: 650px) {
  .typography .markup div.subscription-widget-wrap .subscription-widget.show-subscribe,
  .typography.editor .markup div.subscription-widget-wrap .subscription-widget.show-subscribe,
  .typography .markup div.subscription-widget-wrap-editor .subscription-widget.show-subscribe,
  .typography.editor .markup div.subscription-widget-wrap-editor .subscription-widget.show-subscribe,
  .typography .markup div.captioned-button-wrap .subscription-widget.show-subscribe,
  .typography.editor .markup div.captioned-button-wrap .subscription-widget.show-subscribe {
    padding: 0px 24px;
  }
}
@media screen and (max-width: 650px) {
  .typography .markup div.subscription-widget-wrap .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  .typography.editor .markup div.subscription-widget-wrap .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  .typography .markup div.subscription-widget-wrap-editor .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  .typography.editor .markup div.subscription-widget-wrap-editor .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  .typography .markup div.captioned-button-wrap .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  .typography.editor .markup div.captioned-button-wrap .subscription-widget.show-subscribe .subscription-widget-subscribe .button {
    padding: 10px 12px;
    min-width: 110px;
  }
}
@media (max-width: 650px) {
  .typography .markup .tweet,
  .typography.editor .markup .tweet {
    padding: 12px;
  }
}
@media (max-width: 650px) {
  .typography .markup .tweet .tweet-text,
  .typography.editor .markup .tweet .tweet-text {
    font-size: 14px;
    line-height: 20px;
  }
}
@media (max-width: 650px) {
  .typography .markup .tweet .tweet-photos-container.two,
  .typography.editor .markup .tweet .tweet-photos-container.two,
  .typography .markup .tweet .tweet-photos-container.three,
  .typography.editor .markup .tweet .tweet-photos-container.three,
  .typography .markup .tweet .tweet-photos-container.four,
  .typography.editor .markup .tweet .tweet-photos-container.four {
    height: 200px;
  }
}
@media (max-width: 650px) {
  .typography .markup .tweet a.expanded-link .expanded-link-img,
  .typography.editor .markup .tweet a.expanded-link .expanded-link-img {
    max-height: 180px;
  }
}
@media (max-width: 650px) {
  .typography .markup .tweet a.expanded-link .expanded-link-description,
  .typography.editor .markup .tweet a.expanded-link .expanded-link-description {
    display: none;
  }
}
@media screen and (max-width: 650px) {
  .typography .markup .apple-podcast-container,
  .typography.editor .markup .apple-podcast-container {
    width: unset;
  }
}
@media (max-width: 420px) {
  .typography .markup .install-substack-app-embed img.install-substack-app-embed-img,
  .typography.editor .markup .install-substack-app-embed img.install-substack-app-embed-img {
    margin: 0 auto 16px auto;
  }
}
@media (max-width: 420px) {
  .typography .markup .install-substack-app-embed .install-substack-app-embed-text,
  .typography.editor .markup .install-substack-app-embed .install-substack-app-embed-text {
    margin: 0 0 12px 0;
    max-width: 100%;
    width: auto;
    text-align: center;
  }
}
@media (max-width: 420px) {
  .typography .markup .install-substack-app-embed .install-substack-app-embed-link,
  .typography.editor .markup .install-substack-app-embed .install-substack-app-embed-link {
    display: flex;
    justify-content: center;
  }
}
@media screen and (min-width: 481px) {
  .share-button-container {
    height: 38px;
  }
}
@media screen and (min-width: 481px) {
  .share-button-container a.comment {
    height: 38px;
    line-height: 38px;
    padding-right: 10px;
  }
}
@media screen and (max-width: 480px) {
  .share-button-container .separator {
    display: block;
    margin: 0;
    height: 8px;
    border-left: none;
  }
}
@media screen and (max-width: 480px) {
  .share-button-container a.share.first img {
    padding-left: 0;
  }
}
@media screen and (min-width: 481px) {
  .share-button-container a.mobile {
    display: none !important;
  }
}
@media screen and (min-width: 541px) {
  .settings-add-pub-modal-wrapper .container .add-recommending-pub-modal-container {
    padding: 36px;
    height: 680px;
  }
}
@media screen and (min-width: 541px) {
  .settings-add-pub-modal-wrapper .container .add-recommending-pub-modal-container .footer {
    position: absolute;
    bottom: 36px;
    margin: 0px;
  }
}
@media screen and (max-width: 650px) {
  .header-anchor-parent {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .post {
    padding: 32px 0 0 0;
  }
}
@media screen and (max-width: 650px) {
  .post .post-header .post-label {
    margin-top: 8px;
  }
}
@media screen and (max-width: 650px) {
  .post .post-header .meta-author-wrap.alternative-meta .meta-right-column .post-meta {
    margin-top: 6px;
  }
}
@media screen and (max-width: 650px) {
  .post .footer-facepile-container {
    height: 64px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
  }
}
@media screen and (max-width: 650px) {
  .post .post-footer.use-separators {
    justify-content: center;
  }
}
@media screen and (max-width: 650px) {
  .post .post-footer.next-prev {
    height: 64px;
    justify-content: space-between;
    box-sizing: border-box;
  }
}
@media screen and (max-width: 650px) {
  .post-contributor-footer .post-contributor-bio-table {
    display: block;
  }
  .post-contributor-footer .post-contributor-bio-table-row {
    display: flex;
    flex-direction: row;
  }
  .post-contributor-footer .post-contributor-bio-userhead-cell,
  .post-contributor-footer .post-contributor-bio-body-cell {
    display: block;
  }
  .post-contributor-footer .post-contributor-bio-body-cell {
    flex-grow: 1;
  }
  .post-contributor-footer .post-contributor-bio-body-table {
    display: block;
  }
  .post-contributor-footer .post-contributor-bio-body-table-row {
    display: block;
  }
  .post-contributor-footer .post-contributor-bio-copy-cell,
  .post-contributor-footer .post-contributor-bio-controls-cell {
    display: block;
  }
  .post-contributor-footer .post-contributor-bio-copy-cell {
    margin: 0 0 16px 0;
  }
  .post-contributor-footer .post-contributor-bio-controls-cell {
    width: auto;
  }
  .post-contributor-footer .post-contributor-bio-controls {
    margin: auto;
  }
  .post-contributor-footer .post-contributor-bio-controls .button.primary {
    width: 100%;
  }
  .post-contributor-footer .post-contributor-bio-text {
    font-size: 14px;
  }
}
@media screen and (min-width: 768px) {
  .post-silhouette {
    padding: 32px 0;
  }
}
@media screen and (max-width: 650px) {
  .post-silhouette .post-silhouette-title {
    margin-top: 10.44225025px;
    height: 120px;
  }
}
@media screen and (max-width: 650px) {
  .post-silhouette .post-silhouette-meta {
    width: 75%;
  }
}
@media screen and (max-width: 650px) {
  .post-silhouette .post-silhouette-meta.with-byline-image {
    margin: 20px 0;
  }
}
@media screen and (max-width: 650px) {
  .use-theme-bg .post-meta.alternative-meta .post-meta-item,
  .post-meta.alternative-meta .post-meta-item {
    padding-right: 16px;
  }
}
@media screen and (max-width: 370px) {
  .use-theme-bg .post-meta.alternative-meta .post-meta-item,
  .post-meta.alternative-meta .post-meta-item {
    font-size: 14px;
  }
}
@media screen and (max-width: 650px) {
  .use-theme-bg .post-meta.alternative-meta .post-meta-item.guest-author-publication,
  .post-meta.alternative-meta .post-meta-item.guest-author-publication {
    display: none;
  }
}
@media screen and (max-width: 370px) {
  .post-meta .post-meta-item .post-meta-button {
    height: 36px !important;
    /* important to override in-line height style on emails */
  }
  .post-meta .post-meta-item .post-meta-button .meta-button-label {
    display: none;
  }
  .post-meta .post-meta-item .post-meta-button > svg {
    margin-right: 0;
  }
}
@media screen and (max-width: 370px) {
  .post-meta .post-meta-item {
    font-size: 12px;
  }
}
@media screen and (max-width: 650px) {
  .post .floating-subscribe-button {
    bottom: 20px;
    right: 20px;
  }
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  body .markup table.image-wrapper img,
  body .markup table.kindle-wrapper img {
    max-width: 550px;
  }
}
@media screen and (max-width: 650px) {
  body .markup div.youtube-overlay,
  body .markup div.vimeo-overlay {
    display: none !important;
  }
}
@media screen and (max-width: 370px) {
  body .markup div.tiktok-wrap {
    width: calc(95vw - 32px);
    height: calc((95vw - 32px - 2px) / 0.485714);
  }
}
@media screen and (max-width: 650px) {
  body .markup div.embedded-publication-wrap .embedded-publication.show-subscribe {
    padding: 24px;
  }
}
@media screen and (max-width: 650px) {
  body .markup div.subscription-widget-wrap .subscription-widget.show-subscribe,
  body .markup div.subscription-widget-wrap-editor .subscription-widget.show-subscribe,
  body .markup div.captioned-button-wrap .subscription-widget.show-subscribe {
    padding: 0px 24px;
  }
}
@media screen and (max-width: 650px) {
  body .markup div.subscription-widget-wrap .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  body .markup div.subscription-widget-wrap-editor .subscription-widget.show-subscribe .subscription-widget-subscribe .button,
  body .markup div.captioned-button-wrap .subscription-widget.show-subscribe .subscription-widget-subscribe .button {
    padding: 10px 12px;
    min-width: 110px;
  }
}
@media (max-width: 650px) {
  body .markup .tweet {
    padding: 12px;
  }
}
@media (max-width: 650px) {
  body .markup .tweet .tweet-text {
    font-size: 14px;
    line-height: 20px;
  }
}
@media (max-width: 650px) {
  body .markup .tweet .tweet-photos-container.two,
  body .markup .tweet .tweet-photos-container.three,
  body .markup .tweet .tweet-photos-container.four {
    height: 200px;
  }
}
@media (max-width: 650px) {
  body .markup .tweet a.expanded-link .expanded-link-img {
    max-height: 180px;
  }
}
@media (max-width: 650px) {
  body .markup .tweet a.expanded-link .expanded-link-description {
    display: none;
  }
}
@media screen and (max-width: 650px) {
  body .markup .apple-podcast-container {
    width: unset;
  }
}
@media (max-width: 420px) {
  body .markup .install-substack-app-embed img.install-substack-app-embed-img {
    margin: 0 auto 16px auto;
  }
}
@media (max-width: 420px) {
  body .markup .install-substack-app-embed .install-substack-app-embed-text {
    margin: 0 0 12px 0;
    max-width: 100%;
    width: auto;
    text-align: center;
  }
}
@media (max-width: 420px) {
  body .markup .install-substack-app-embed .install-substack-app-embed-link {
    display: flex;
    justify-content: center;
  }
}
@media screen and (min-width: 500px) {
  body .header a.logo {
    width: 42px;
    height: 42px;
    border-radius: 12px;
  }
}
@media screen and (max-width: 420px) {
  body .subscription-receipt table:first-of-type .subscription-amount .subscription-discount {
    width: 72px !important;
  }
}
@media screen and (min-width: 481px) {
  body .share-button-container {
    height: auto;
  }
}
@media screen and (max-width: 480px) {
  body .share-button-container .separator {
    display: block !important;
    margin: 0 !important;
    height: 8px !important;
    border-left: none !important;
  }
}
@media screen and (max-width: 650px) {
  .digest .item .post-meta-item.audience {
    display: none;
  }
}
@media screen and (min-width: 500px) {
  .digest-publication .logo img {
    width: 42px;
    height: 42px;
    border-radius: 8px;
  }
}
@media screen and (max-width: 650px) {
  .comments-page .container .comment-list .collapsed-reply {
    margin-left: calc(10 + 32px - 24px);
  }
}
@media screen and (max-width: 650px) {
  .comment > .comment-list {
    padding-left: 24px;
  }
}
@media screen and (max-width: 650px) {
  .finish-magic-login-modal .modal-content .container {
    padding: 24px 0;
  }
}
@media (max-width: 650px) {
  .reader2-text-b3 {
    line-height: 24px;
  }
}
@media screen and (max-width: 650px) {
  .reader2-text-h4 {
    line-height: 24px;
  }
}
@media screen and (min-width: 541px) {
  .user-profile-modal {
    padding-left: 12px;
    padding-right: 12px;
  }
}
@media screen and (max-width: 650px) {
  .subscribe-widget form.form .sideBySideWrap button.rightButton {
    padding: 10px 12px;
  }
}
@media screen and (min-width: 541px) {
  .pub-icon:hover .logo-hover,
  .feed-item-icon:hover .logo-hover {
    display: block;
  }
}
@media screen and (max-width: 650px) {
  .post-ufi.single-full-width-button .post-ufi-button-wrapper {
    width: 100%;
    padding: 16px;
  }
  .post-ufi.single-full-width-button .post-ufi-button-wrapper:empty {
    display: none;
  }
  .post-ufi.single-full-width-button .post-ufi-button {
    width: 100%;
    justify-content: center;
  }
}
@media screen and (max-width: 768px) {
  .file-embed-wrapper {
    padding: 0;
  }
}
@media screen and (max-width: 768px) {
  .file-embed-wrapper-editor {
    padding: 0;
  }
}
@media screen and (max-width: 768px) {
  .file-embed-wrapper-editor:active {
    padding: 0;
  }
}
@media only screen and (max-width: 650px) {
  .file-embed-button.wide,
  .file-embed-error-button.wide {
    display: none;
  }
}
@media only screen and (min-width: 630px) {
  .file-embed-button.narrow,
  .file-embed-error-button.narrow {
    display: none;
  }
}
@media screen and (min-width: 541px) {
  .audio-player-wrapper .audio-player {
    min-width: 500px;
  }
}
@media screen and (max-width: 650px) {
  .audio-player-wrapper .audio-player .audio-player-progress {
    border-left-width: 16px;
    border-right-width: 16px;
  }
}
@media screen and (max-width: 650px) {
  .audio-player-wrapper .audio-player .audio-player-progress .audio-player-progress-bar .audio-player-progress-bar-popup {
    top: -54px;
  }
}
@media screen and (max-width: 650px) {
  .audio-player-wrapper-fancy .audio-player .audio-player-progress {
    border-left-width: 16px;
    border-right-width: 16px;
  }
}
@media screen and (max-width: 650px) {
  .audio-player-wrapper-fancy .audio-player .audio-player-progress .audio-player-progress-bar .audio-player-progress-bar-popup {
    top: -54px;
  }
}
@media (min-width: 250px) {
  .audio-player-wrapper-fancy .audio-player {
    padding: 32px;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group {
    display: flex;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group .button:last-of-type {
    display: block;
  }
}
@media (min-width: 300px) {
  .audio-player-wrapper-fancy .audio-player .btn-group {
    display: block;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group .button:first-of-type {
    display: block;
  }
}
@media (min-width: 350px) {
  .audio-player-wrapper-fancy .audio-player .audio-player-substack-logo {
    display: block;
  }
  .audio-player-wrapper-fancy .audio-player .audio-player-title {
    margin-top: 16px;
  }
  .audio-player-wrapper-fancy .audio-player .audio-player-hero-image-container {
    padding-top: 15%;
    width: 15%;
    display: block;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group .button:first-of-type {
    display: block;
  }
  .audio-player-wrapper-fancy .audio-player .audio-player-substack-logo {
    display: block;
  }
}
@media (min-width: 350px) {
  .audio-player-wrapper-fancy .audio-player .audio-player-hero-image-container {
    padding-top: 25%;
    width: 25%;
    display: block;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group {
    display: flex;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group .button:first-of-type {
    display: block;
  }
}
@media (min-width: 400px) {
  .audio-player-wrapper-fancy .audio-player .audio-player-hero-image-container {
    padding-top: 40%;
    width: 40%;
  }
}
@media (max-width: 400px) {
  .audio-player-wrapper-fancy .audio-player .btn-group {
    margin-top: 12px;
  }
  .audio-player-wrapper-fancy .audio-player .btn-group .button {
    font-size: 13px;
    padding: 6px 12px;
    height: auto;
    margin-top: 10px;
  }
}
@media (min-width: 600px) {
  .audio-player-wrapper-fancy .audio-player .audio-player-hero-image-container {
    padding-top: 55%;
    width: 55%;
  }
}
@media (max-width: 650px) {
  .poll-editor-modal {
    min-width: calc(100% - 20px);
  }
}
@media (max-width: 750px) {
  .poll-embed .poll-anchor-target .poll-anchor-copy-button {
    left: 8px;
    top: 45px;
  }
}
@media screen and (min-width: 541px) {
  .poll-embed .poll-wrapper.poll-web .poll-dialog .modal-table .modal-row .modal-content > .container {
    width: 552px;
    padding: 26px 24px;
  }
}
@media screen and (max-width: 650px) {
  .poll-embed .poll-wrapper.poll-web .poll-dialog .modal-table .modal-row .modal-content > .container {
    padding: 40px 0;
  }
}
@media screen and (max-width: 650px) {
  .poll-embed .poll-wrapper.poll-web .poll-dialog .modal-row .modal-cell .modal-exit-btn {
    margin-right: -20px;
  }
}</style></head><body class="email-body" style="font-kerning: auto;"><img src="https://eotrx.substackcdn.com/open?token=eyJtIjoiPDIwMjQxMTE5MTUyOTQ0LjMuNTA3OTQxMzIzMjUxZTgyZEBtZy1kMS5zdWJzdGFjay5jb20-IiwidSI6MjgxNjY2NTkyLCJyIjoibGlicmVvZmZpY2VAbGlzdHMuZnJlZWRlc2t0b3Aub3JnIiwiZCI6Im1nLWQxLnN1YnN0YWNrLmNvbSIsInAiOjE1MTgxMDQ1NCwidCI6Im5ld3NsZXR0ZXIiLCJhIjoiZXZlcnlvbmUiLCJzIjo4MTc1MCwiYyI6InBvc3QiLCJmIjp0cnVlLCJwb3NpdGlvbiI6InRvcCIsImlhdCI6MTczMjAzMDE5NSwiZXhwIjoxNzM0NjIyMTk1LCJpc3MiOiJwdWItMCIsInN1YiI6ImVvIn0.RZaW75NKQDNi2PFtUiG37OWzIm6hEU9jofmzeos7320" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;"/><div style="display:none;font-size:1px;color:#333333;line-height:1px;max-height:0px;max-width:0px;opacity:0;overflow:hidden;" class="preview">Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles.</div><div style="display:none;font-size:1px;color:#333333;line-height:1px;max-height:0px;max-width:0px;opacity:0;overflow:hidden;" class="preview">͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­͏     ­</div><table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0" class="email-body-container"><tr><td></td><td width="550" class="content"></td><td></td></tr><tr><td></td><td width="550" align="left" class="content"><div style="font-size: 16px; line-height: 26px; margin: 0 auto; max-width: 550px; overflow-wrap: break-word; width: 100%;"><table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td align="right" style="height:20px;"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tr><td style="vertical-align:middle;"><span class="pencraft pc-reset _reset_h3mln_1 tw-font-body tw-text-ssm tw-text-substack-secondary" style="color: rgb(119, 119, 119) !important; font-family: SF Pro Text, -apple-system, system-ui, BlinkMacSystemFont, Inter, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol !important; font-size: 13px !important; list-style: none; margin: 0; text-decoration: unset;"><div class="pencraft pc-reset _align-right_h3mln_16 _size-12_h3mln_35 _reset_h3mln_1" style="color: unset; font-size: 12px; line-height: 16px; list-style: none; margin: 0; text-align: right; text-decoration: unset;"><span translated class="pencraft pc-reset _reset_h3mln_1" style="color: unset; list-style: none; margin: 0; text-decoration: unset;">Forwarded this email? <a href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly93d3cuZGV2c2hvcnRzLmluL3N1YnNjcmliZT91dG1fc291cmNlPWVtYWlsJnV0bV9jYW1wYWlnbj1lbWFpbC1zdWJzY3JpYmUmcj00bnAzYzAmbmV4dD1odHRwcyUzQSUyRiUyRnd3dy5kZXZzaG9ydHMuaW4lMkZwJTJGZGV2LWNhdGNoLXVwLTM5LWxvZ2ljLW9mLXRob3VnaHQiLCJwIjoxNTE4MTA0NTQsInMiOjgxNzUwLCJmIjp0cnVlLCJ1IjoyODE2NjY1OTIsImlhdCI6MTczMjAzMDE5NSwiZXhwIjoxNzM0NjIyMTk1LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.nc5Wpb-wSc9IV_knT_rM1kZXmPKIA9xy19wE2HigEYQ?" class="pencraft pc-reset _decoration-underline_h3mln_280 _reset_h3mln_1" style="-webkit-text-decoration-line: underline; color: unset; list-style: none; margin: 0; text-decoration: unset; text-decoration-line: underline;">Subscribe here</a> for more</span></div></span></td></tr></table></td></tr></table><table role="presentation" class="header graphic-header" style="border-spacing: 0; padding: 16px 0 32px;"><tr><td align="center" style="padding: 0; text-align: center;"><a href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly93d3cuZGV2c2hvcnRzLmluL3AvZGV2LWNhdGNoLXVwLTM5LWxvZ2ljLW9mLXRob3VnaHQ_dXRtX2NhbXBhaWduPWVtYWlsLWhhbGYtcG9zdCZyPTRucDNjMCZ0b2tlbj1leUoxYzJWeVgybGtJam95T0RFMk5qWTFPVElzSW5CdmMzUmZhV1FpT2pFMU1UZ3hNRFExTkN3aWFXRjBJam94TnpNeU1ETXdNVGsxTENKbGVIQWlPakUzTXpRMk1qSXhPVFVzSW1semN5STZJbkIxWWkwNE1UYzFNQ0lzSW5OMVlpSTZJbkJ2YzNRdGNtVmhZM1JwYjI0aWZRLmdQR0h1RElSMzI4QmpTMk1pVEJMRG9xbGJSU0VlOWxwbnJoVlZfWlUtOUkiLCJwIjoxNTE4MTA0NTQsInMiOjgxNzUwLCJmIjp0cnVlLCJ1IjoyODE2NjY1OTIsImlhdCI6MTczMjAzMDE5NSwiZXhwIjoxNzM0NjIyMTk1LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.YVIP8E0IprVNvgXZ8R5t0_6iS0FL989SUVzKPLYy_2s?"><img role="presentation" width="550" height="128" src="https://substackcdn.com/image/fetch/w_1100,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F65f1cc0f-26a5-430b-bea9-4a6c6eeaf8fb_3240x750.png" class="header-image" style="border: none !important; display: block; height: auto; margin: 0 auto; max-width: 550px; vertical-align: middle; width: 100%;"></a></td></tr></table><div dir="auto" class="post typography" style="font-size: 16px; line-height: 26px; padding: 16px 0 0 0;"><div class="post-header" style="font-size: 16px; line-height: 26px;"><h1 class="post-title published" style="-moz-appearance: optimizelegibility; -moz-osx-font-smoothing: antialiased; -webkit-appearance: optimizelegibility; -webkit-font-smoothing: antialiased; appearance: optimizelegibility; color: rgb(54, 55, 55); font-family: 'Roboto Slab',sans-serif; font-size: 32px; font-weight: 700; line-height: 36px; margin: 0;"><a href="https://substack.com/app-link/post?publication_id=81750&post_id=151810454&utm_source=post-email-title&utm_campaign=email-post-title&isFreemail=true&r=4np3c0&token=eyJ1c2VyX2lkIjoyODE2NjY1OTIsInBvc3RfaWQiOjE1MTgxMDQ1NCwiaWF0IjoxNzMyMDMwMTk1LCJleHAiOjE3MzQ2MjIxOTUsImlzcyI6InB1Yi04MTc1MCIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.gPGHuDIR328BjS2MiTBLDoqlbRSEe9lpnrhVV_ZU-9I" style="color: rgb(54, 55, 55); text-decoration: none;">[Dev Catch Up #39] - Logic-of-Thought Prompting, Stripe toolkit with LLM agents, Cline AI, Common Corpus dataset, Essential tsconfig.json options, and much more.</a></h1><h3 class="subtitle" style="-moz-appearance: optimizelegibility; -moz-osx-font-smoothing: antialiased; -webkit-appearance: optimizelegibility; -webkit-font-smoothing: antialiased; appearance: optimizelegibility; color: #777777; font-family: 'SF Pro Display', -apple-system-headline, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 18px; font-weight: normal; line-height: 24px; margin: 4px 0 0; margin-top: 12px;">Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles.</h3><table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0" class="post-meta" style="align-items: center; height: 20px; margin: 1em 0;"><tr><td><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tr><td><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tr><td style="vertical-align:middle;"><div class="pencraft pc-reset _color-primary_h3mln_166 _line-height-20_h3mln_80 _font-meta_h3mln_115 _size-11_h3mln_31 _weight-medium_h3mln_145 _transform-uppercase_h3mln_237 _reset_h3mln_1 _meta_h3mln_437 custom-css-email-post-author" style="color: rgb(54, 55, 55); font-family: 'SF Compact', -apple-system, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 11px; font-weight: 500; letter-spacing: .2px; line-height: 20px; list-style: none; margin: 0; text-decoration: unset; text-transform: uppercase;"><a style="color: rgb(54, 55, 55); font-family: 'SF Compact', -apple-system, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 11px; font-weight: 500; letter-spacing: .2px; line-height: 20px; list-style: none; margin: 0; text-decoration: none; text-transform: uppercase;" href="https://substack.com/@devshorts" class="pencraft pc-reset _color-primary_h3mln_166 _line-height-20_h3mln_80 _font-meta_h3mln_115 _size-11_h3mln_31 _weight-medium_h3mln_145 _transform-uppercase_h3mln_237 _reset_h3mln_1 _meta_h3mln_437">Sayanta Banerjee</a> and <a style="color: rgb(54, 55, 55); font-family: 'SF Compact', -apple-system, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 11px; font-weight: 500; letter-spacing: .2px; line-height: 20px; list-style: none; margin: 0; text-decoration: none; text-transform: uppercase;" href="https://substack.com/@putrevu" class="pencraft pc-reset _color-primary_h3mln_166 _line-height-20_h3mln_80 _font-meta_h3mln_115 _size-11_h3mln_31 _weight-medium_h3mln_145 _transform-uppercase_h3mln_237 _reset_h3mln_1 _meta_h3mln_437">Aravind Putrevu</a></div></td></tr></table></td></tr><tr><td><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tr><td style="vertical-align:middle;"><div class="pencraft pc-reset _color-secondary_h3mln_169 _line-height-20_h3mln_80 _font-meta_h3mln_115 _size-11_h3mln_31 _weight-medium_h3mln_145 _transform-uppercase_h3mln_237 _reset_h3mln_1 _meta_h3mln_437" style="color: rgb(119, 119, 119); font-family: 'SF Compact', -apple-system, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 11px; font-weight: 500; letter-spacing: .2px; line-height: 20px; list-style: none; margin: 0; text-decoration: unset; text-transform: uppercase;"><time datetime="2024-11-19T15:29:46.025Z">Nov 19</time></div></td></tr></table></td></tr></table></td><td align="right"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tr><td style="vertical-align:middle;"><a href="https://substack.com/@devshorts"><img src="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51d5b1e4-6b82-48f3-8dd1-0af745d97eac_399x399.jpeg" style="border: none !important; border-radius: 500000px; box-sizing: border-box; display: inline; height: 32px; margin: 0px; max-width: 550px; min-height: 32px; min-width: 32px; object-fit: cover; vertical-align: middle; width: 32px;" width="32" height="32" class="custom-css-email-avatar _avatar_1mh60_65"></a></td><td width="4" style="min-width: 4px"></td><td style="vertical-align:middle;"><a href="https://substack.com/@putrevu"><img src="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0ac36d3-c5a1-4aeb-931c-49072bbcd069_1308x1308.jpeg" style="border: none !important; border-radius: 500000px; box-sizing: border-box; display: inline; height: 32px; margin: 0px; max-width: 550px; min-height: 32px; min-width: 32px; object-fit: cover; vertical-align: middle; width: 32px;" width="32" height="32" class="custom-css-email-avatar _avatar_1mh60_65"></a></td></tr></table></td></tr></table><table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0" class="email-ufi-2-top" style="border-bottom: 1px solid rgb(0, 0, 0, .1); border-top: 1px solid rgb(0, 0, 0, .1); min-width: 100%;"><tr height="16"><td height="16" style="font-size:0px;line-height:0;"> </td></tr><tr><td><table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tr><td style="vertical-align:middle;"><table role="presentation" width="38" border="0" cellspacing="0" cellpadding="0"><tr><td align="center"><a href="https://substack.com/app-link/post?publication_id=81750&post_id=151810454&utm_source=substack&isFreemail=true&submitLike=true&token=eyJ1c2VyX2lkIjoyODE2NjY1OTIsInBvc3RfaWQiOjE1MTgxMDQ1NCwicmVhY3Rpb24iOiLinaQiLCJpYXQiOjE3MzIwMzAxOTUsImV4cCI6MTczNDYyMjE5NSwiaXNzIjoicHViLTgxNzUwIiwic3ViIjoicmVhY3Rpb24ifQ.kSnThOF0J92JSdT7kE1olZWWIXYAuCaVlXs6btm188Q&utm_medium=email&utm_campaign=email-reaction&r=4np3c0" style="border: 1px solid rgb(0, 0, 0, .1); border-radius: 9999px; box-sizing: border-box; color: rgb(119, 119, 119); display: inline-block; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 12px; font-weight: 500; line-height: 1; min-width: 38px; padding: 9px 0; text-decoration: none; text-transform: uppercase; width: 38px;" class="email-icon-button"><img src="https://substackcdn.com/image/fetch/w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FLucideHeart%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="border: none !important; max-width: 18px; vertical-align: middle;" alt class="icon"></a></td></tr></table></td><td width="8" style="min-width: 8px"></td><td style="vertical-align:middle;"><table role="presentation" width="38" border="0" cellspacing="0" cellpadding="0"><tr><td align="center"><a href="https://substack.com/app-link/post?publication_id=81750&post_id=151810454&utm_source=substack&utm_medium=email&isFreemail=true&comments=true&token=eyJ1c2VyX2lkIjoyODE2NjY1OTIsInBvc3RfaWQiOjE1MTgxMDQ1NCwiaWF0IjoxNzMyMDMwMTk1LCJleHAiOjE3MzQ2MjIxOTUsImlzcyI6InB1Yi04MTc1MCIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.gPGHuDIR328BjS2MiTBLDoqlbRSEe9lpnrhVV_ZU-9I&r=4np3c0&utm_campaign=email-half-magic-comments&action=post-comment&utm_source=substack&utm_medium=email" style="border: 1px solid rgb(0, 0, 0, .1); border-radius: 9999px; box-sizing: border-box; color: rgb(119, 119, 119); display: inline-block; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 12px; font-weight: 500; line-height: 1; min-width: 38px; padding: 9px 0; text-decoration: none; text-transform: uppercase; width: 38px;" class="email-icon-button"><img src="https://substackcdn.com/image/fetch/w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FLucideComments%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="border: none !important; max-width: 18px; vertical-align: middle;" alt class="icon"></a></td></tr></table></td><td width="8" style="min-width: 8px"></td><td style="vertical-align:middle;"><table role="presentation" width="38" border="0" cellspacing="0" cellpadding="0"><tr><td align="center"><a href="https://substack.com/app-link/post?publication_id=81750&post_id=151810454&utm_source=substack&utm_medium=email&utm_content=share&utm_campaign=email-share&action=share&triggerShare=true&isFreemail=true&r=4np3c0&token=eyJ1c2VyX2lkIjoyODE2NjY1OTIsInBvc3RfaWQiOjE1MTgxMDQ1NCwiaWF0IjoxNzMyMDMwMTk1LCJleHAiOjE3MzQ2MjIxOTUsImlzcyI6InB1Yi04MTc1MCIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.gPGHuDIR328BjS2MiTBLDoqlbRSEe9lpnrhVV_ZU-9I" style="border: 1px solid rgb(0, 0, 0, .1); border-radius: 9999px; box-sizing: border-box; color: rgb(119, 119, 119); display: inline-block; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 12px; font-weight: 500; line-height: 1; min-width: 38px; padding: 9px 0; text-decoration: none; text-transform: uppercase; width: 38px;" class="email-icon-button"><img src="https://substackcdn.com/image/fetch/w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FLucideShare2%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="border: none !important; max-width: 18px; vertical-align: middle;" alt class="icon"></a></td></tr></table></td><td width="8" style="min-width: 8px"></td><td style="vertical-align:middle;"><table role="presentation" width="38" border="0" cellspacing="0" cellpadding="0"><tr><td align="center"><a href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9vcGVuLnN1YnN0YWNrLmNvbS9wdWIvZGV2c2hvcnRzL3AvZGV2LWNhdGNoLXVwLTM5LWxvZ2ljLW9mLXRob3VnaHQ_dXRtX3NvdXJjZT1zdWJzdGFjayZ1dG1fbWVkaXVtPWVtYWlsJnV0bV9jYW1wYWlnbj1lbWFpbC1yZXN0YWNrLWNvbW1lbnQmYWN0aW9uPXJlc3RhY2stY29tbWVudCZyPTRucDNjMCZ0b2tlbj1leUoxYzJWeVgybGtJam95T0RFMk5qWTFPVElzSW5CdmMzUmZhV1FpT2pFMU1UZ3hNRFExTkN3aWFXRjBJam94TnpNeU1ETXdNVGsxTENKbGVIQWlPakUzTXpRMk1qSXhPVFVzSW1semN5STZJbkIxWWkwNE1UYzFNQ0lzSW5OMVlpSTZJbkJ2YzNRdGNtVmhZM1JwYjI0aWZRLmdQR0h1RElSMzI4QmpTMk1pVEJMRG9xbGJSU0VlOWxwbnJoVlZfWlUtOUkiLCJwIjoxNTE4MTA0NTQsInMiOjgxNzUwLCJmIjp0cnVlLCJ1IjoyODE2NjY1OTIsImlhdCI6MTczMjAzMDE5NSwiZXhwIjoxNzM0NjIyMTk1LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.5Ynoe9YtPCESKwqmKA-fQkWPwvromdgNMGZF6PvJ4rk?&utm_source=substack&utm_medium=email" style="border: 1px solid rgb(0, 0, 0, .1); border-radius: 9999px; box-sizing: border-box; color: rgb(119, 119, 119); display: inline-block; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 12px; font-weight: 500; line-height: 1; min-width: 38px; padding: 9px 0; text-decoration: none; text-transform: uppercase; width: 38px;" class="email-icon-button"><img src="https://substackcdn.com/image/fetch/w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FNoteForwardIcon%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="border: none !important; max-width: 18px; vertical-align: middle;" alt class="icon"></a></td></tr></table></td></tr></table></td><td align="right"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tr><td style="vertical-align:middle;"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tr><td align="center"><a href="https://open.substack.com/pub/devshorts/p/dev-catch-up-39-logic-of-thought?utm_source=email&redirect=app-store&utm_campaign=email-read-in-app" class="email-button-outline" style="border: 1px solid rgb(0, 0, 0, .1); border-radius: 9999px; color: rgb(119, 119, 119); display: inline-block; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 12px; font-weight: 500; line-height: 12px; padding: 9px 14px; text-decoration: none; text-transform: uppercase;"><div class="email-button-spacer" style="display: inline-block; font-size: 16px; line-height: 26px; max-width: 0; min-height: 18px; vertical-align: middle;"></div><span style="margin-right: 4px; vertical-align: middle;" class="email-button-text">READ IN APP</span><img src="https://substackcdn.com/image/fetch/w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FLucideArrowUpRight%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="border: none !important; margin-left: 0; margin-right: 0; max-width: 18px; min-height: 18px; min-width: 18px; vertical-align: middle;" alt class="icon text-icon"></a></td></tr></table></td></tr></table></td></tr></table></td></tr><tr height="16"><td height="16" style="font-size:0px;line-height:0;"> </td></tr></table></div></div><div dir="auto" class="post typography" style="font-size: 16px; line-height: 26px; padding: 16px 0 0 0;"><div dir="auto" class="body markup" style="font-family: 'Roboto Slab',sans-serif; font-size: 16px; font-weight: 400; line-height: 26px; margin-bottom: 16px; text-align: initial; width: 100%; word-break: break-word;"><p style="color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0 0 20px 0; margin-top: 0;">Welcome to the 39th edition of DevShorts, Dev Catch Up!</p><p style="color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0 0 20px 0;">I write about developer stories and open source, partly from my work and experience interacting with people all over the globe.</p><div class="subscription-widget-wrap" style="font-size: 16px; line-height: 26px;"><div class="subscription-widget show-subscribe" style="align-items: flex-start; color: #363737; direction: ltr !important; display: block; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: 400; line-height: 1.5; margin: 24px auto; max-width: 560px; padding: 0px 32px; text-align: center; text-decoration: none;"><div class="preamble" style="align-items: center; display: flex; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 18px; font-weight: 400; line-height: 22px; margin-left: auto; margin-right: auto; margin-top: 16px; max-width: 384px; text-align: center; width: fit-content;"><p style="color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0 0 20px 0;">Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p></div><div data-component-name="SubscribeWidget" class="subscribe-widget is-signed-up" style="direction: ltr; font-size: 16px; line-height: 26px; margin: 0 0 1em;"><p class="button-wrapper" style="border-radius: 4px; color: rgb(54, 55, 55); cursor: pointer; font-size: 16px; line-height: 26px; margin: 0 0 20px 0; text-align: center;"><a href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly93d3cuZGV2c2hvcnRzLmluL3N1YnNjcmliZT91dG1fc291cmNlPXBvc3QmdXRtX2NhbXBhaWduPWVtYWlsLWNoZWNrb3V0Jm5leHQ9aHR0cHMlM0ElMkYlMkZ3d3cuZGV2c2hvcnRzLmluJTJGcCUyRmRldi1jYXRjaC11cC0zOS1sb2dpYy1vZi10aG91Z2h0JnI9NG5wM2MwIiwicCI6MTUxODEwNDU0LCJzIjo4MTc1MCwiZiI6dHJ1ZSwidSI6MjgxNjY2NTkyLCJpYXQiOjE3MzIwMzAxOTUsImV4cCI6MTczNDYyMjE5NSwiaXNzIjoicHViLTAiLCJzdWIiOiJsaW5rLXJlZGlyZWN0In0.z5kGJq0946kDqiFonwllzGJUDRUMvteEMgNWgddthgA?&utm_medium=email&utm_source=subscribe-widget-preamble&utm_content=151810454" class="button subscribe-btn primary" style="background-color: #538cfa; border: none; border-radius: 8px; box-sizing: border-box; color: #ffffff !important; cursor: pointer; display: inline-block; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; font-weight: 600; height: auto; line-height: 20px; margin: 0 auto; opacity: 1; outline: none; padding: 12px 20px; text-align: center; text-decoration: none !important; white-space: nowrap;"><span style="color: #ffffff; text-decoration: none;">Pledge your support</span></a></p></div></div></div><p style="color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0 0 20px 0;">Some recent issues from Dev Catch up:</p><ul style="margin-top: 0; padding: 0;"><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><a href="https://substack.com/redirect/016c87d9-12fc-4a4d-a4f7-e43b035550a6?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">Llama 3.2, Molmo Multimodal Models, Infinite Queries</a></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><a href="https://substack.com/redirect/a35bea78-e281-4c61-9fc1-4c97d29abf43?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">Microsoft's Drasi and bitnet.cpp, next-safe-action library</a></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><a href="https://substack.com/redirect/4f35cceb-72f9-44c0-b255-5b6616ae93bd?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">Qwen2.5, xLAM-1b, TanStack Router, Nvidia's Minitron SLMs</a></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><a href="https://substack.com/redirect/50115a16-5641-415e-b928-cb10d2f50196?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">OpenAI's Realtime API, Deep-learning for ETA</a></p></li></ul><p style="color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0 0 20px 0;">Join 1000+ developers to hear stories from Open source and technology</p><h2 class="header-anchor-post" style="--highlight-bg: rgba(var(--color-bg-accent-themed-rgb), 0.2); -moz-appearance: optimizelegibility; -moz-osx-font-smoothing: antialiased; -webkit-appearance: optimizelegibility; -webkit-font-smoothing: antialiased; appearance: optimizelegibility; color: rgb(54, 55, 55); font-family: 'SF Pro Display', -apple-system-headline, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.625em; font-weight: bold; line-height: 1.16em; margin: 1em 0 0.625em 0; position: relative;">Must Read</h2><ul style="margin-top: 0; padding: 0;"><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>Evolution of LLMs have come a long way but their performance with complex logical reasoning tasks are unsatisfactory. To address this issue, Logic-of-Thought prompting is introduced which employs propositional logic to generate expanded logical information from input context and utilizes the generated information as an additional augmentation for the input prompts. This enhances the capability of reasoning. Read more about it from </span><a href="https://substack.com/redirect/9dd751e5-9d20-466b-a985-30e4aa3b2ff9?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">here</a><span>.  </span></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>The development of AI agents is on the rise and Stripe has risen to this occasion to show that their toolkit can be integrated to the AI agents. This will enhance the functionality of those agents by enabling access to financial services and tools. </span><a href="https://substack.com/redirect/1bc37977-51db-43c9-b963-64dfdd602b65?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">This article</a><span> shows how to integrate the Stripe toolkit with an LLM agentic workflow.</span></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>Optimizing videos in an application leads to a smooth user experience. To achieve this, a multimedia processing tool called FFmpeg comes to the rescue and along with Node.Js, video streaming can be improved leading to a better user experience. </span><a href="https://substack.com/redirect/5a87bb08-27bc-4d87-bc05-529f7adf780a?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">This tutorial</a><span> gives you details about it.</span></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>Bun supports V8 APIs without using V8 JavaScript engines. V8 engines are used by Node.Js but Bun uses the C++ APIs that interact with the JavaScriptCore. This topic comes with a </span><a href="https://substack.com/redirect/1b5e32d3-6714-4284-860f-61a726f47419?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">two-part article</a><span> that describes how Bun pulled this thing off.</span></p></li></ul><p style="color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0 0 20px 0;">After this, shouting out a top open-source project is a delight and here it is: </p><h2 class="header-anchor-post" style="--highlight-bg: rgba(var(--color-bg-accent-themed-rgb), 0.2); -moz-appearance: optimizelegibility; -moz-osx-font-smoothing: antialiased; -webkit-appearance: optimizelegibility; -webkit-font-smoothing: antialiased; appearance: optimizelegibility; color: rgb(54, 55, 55); font-family: 'SF Pro Display', -apple-system-headline, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.625em; font-weight: bold; line-height: 1.16em; margin: 1em 0 0.625em 0; position: relative;">OSS Highlight of the Week</h2><ul style="margin-top: 0; padding: 0;"><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0 0 20px 0; margin-bottom: 0; padding-left: 4px;"><span>This week, we focus our attention on Cline, which is an AI assistant that can use the CLI and editor of a developer. Powered by Claude 3.5 Sonnet’s agentic coding capabilities, it can handle complex software development tasks in consequent steps. Learn more about it from its </span><a href="https://substack.com/redirect/e7df2321-5dec-4996-98fe-cf7829783b55?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">GitHub page</a><span> and leave a star to support it. </span></p><div class="captioned-image-container-static" style="font-size: 16px; line-height: 26px; margin: 32px auto; margin-bottom: 0;"><figure style="margin: 0 auto; width: 100%;"><table class="image-wrapper" width="100%" border="0" cellspacing="0" cellpadding="0" data-component-name="Image2ToDOMStatic" style="mso-padding-alt: 1em 0 1.6em;"><tbody><tr><td style="text-align: center;"></td><td align="left" class="content" width="1308" style="text-align: center;"><a class="image-link" target="_blank" href="https://substack.com/redirect/37aad9bf-0519-4d9c-971b-29e5cb508d61?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="align-items: center; border: none; display: block; flex-direction: column; height: auto; margin: 0; padding: 0; position: relative; text-decoration: none; width: auto;"><img data-attrs="{"src":"https://substack-post-media.s3.amazonaws.com/public/images/b85155b7-3da4-4b0e-961a-56141bbe5089_1308x1214.png","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":1214,"width":1308,"resizeWidth":null,"bytes":1308811,"alt":null,"title":null,"type":"image/png","href":null,"belowTheFold":true,"topImage":false,"internalRedirect":null,"isProcessing":false}" alt width="550" height="510.47400611620793" class="wide-image" src="https://substackcdn.com/image/fetch/w_2616,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb85155b7-3da4-4b0e-961a-56141bbe5089_1308x1214.png" style="-ms-interpolation-mode: bicubic; border: none !important; display: block; height: auto; margin: 0 auto; margin-bottom: 0; max-width: 100% !important; vertical-align: middle; width: auto !important;"></a></td><td style="text-align: center;"></td></tr></tbody></table></figure></div></li></ul><div class="pullquote" style="border-bottom: 1px solid #2b2832; border-top: 1px solid #2b2832; font-size: 16px; line-height: 26px; margin: 32px auto;"><p style="color: rgb(54, 55, 55); font-size: 16px; font-style: italic; font-weight: 500; line-height: 26px; margin: 32px 0; text-align: center;"><span>Hope you are enjoying this edition of our newsletter so far! Support us by giving a free follow to our </span><a href="https://substack.com/redirect/583225be-23ff-4872-a9eb-0ed112005f71?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">LinkedIn</a><span> and </span><a href="https://substack.com/redirect/94897f4b-1c7c-4c0b-ae56-808e8154fe2a?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">X</a><span> pages. </span></p><p style="color: rgb(54, 55, 55); font-size: 16px; font-style: italic; font-weight: 500; line-height: 26px; margin: 32px 0; text-align: center;">Your support is highly appreciated!</p></div><h2 class="header-anchor-post" style="--highlight-bg: rgba(var(--color-bg-accent-themed-rgb), 0.2); -moz-appearance: optimizelegibility; -moz-osx-font-smoothing: antialiased; -webkit-appearance: optimizelegibility; -webkit-font-smoothing: antialiased; appearance: optimizelegibility; color: rgb(54, 55, 55); font-family: 'SF Pro Display', -apple-system-headline, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.625em; font-weight: bold; line-height: 1.16em; margin: 1em 0 0.625em 0; position: relative;">Good to know</h2><ul style="margin-top: 0; padding: 0;"><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>To support the development of AI in an open manner, the training of large language models needs to be done with non-copyrighted data. Addressing this, Pleais released Common Corpus, the largest open multilingual dataset for training LLMs. Here is </span><a href="https://substack.com/redirect/86101b65-2f01-45c5-b15b-2dc0e500d7e4?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">an article</a><span> containing more information on the dataset and check out the dataset from its </span><a href="https://substack.com/redirect/fd202dd1-4523-436d-ac76-eda411be485b?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">Huggingface page</a><span>.</span></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>Cosmos DB is the high availability NoSQL relational database from Microsoft and is one of the most popular ones in the market. Together with Azure, Microsoft’s cloud computing platform, it becomes more powerful in terms of productivity. This is beautifully explained from </span><a href="https://substack.com/redirect/6dd49beb-5330-4f75-b78e-25d6f14d28ed?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">this article</a><span> that guides you when to use Cosmos DB with practical examples. </span></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>The tsconfig.json file in TypeScript is very useful because it acts as a tool that can manage the behavior and security of the code. </span><a href="https://substack.com/redirect/d7aa1b6d-cb4d-4989-9cb9-c5eef8df2e32?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">This article</a><span> points out the essential tsconfig.json options that one should use.</span></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>Achieving offline support while using TanStack Query is a challenge when maintaining full control over the data layer. </span><a href="https://substack.com/redirect/9d901098-d522-47d7-8106-017bf00620e6?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">This article</a><span> dive deep into this issue with a solution that supports offline mode while using TanStack Query.</span></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>Vision Language Models or VLMs struggle to perform systematic and structured reasoning while handling complex visual question-answering tasks. This problem gets addressed with the launch of Llava-o1, a novel VLM that is designed to conduct autonomous multistage reasoning. Learn more about this model from </span><a href="https://substack.com/redirect/cd2884dd-3bb6-4e81-a825-382f07fda457?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">here</a><span>.</span></p></li></ul><p style="color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0 0 20px 0;">Lastly, we will take a look at some of the trending scoops that hold a special mention for the community. </p><h2 class="header-anchor-post" style="--highlight-bg: rgba(var(--color-bg-accent-themed-rgb), 0.2); -moz-appearance: optimizelegibility; -moz-osx-font-smoothing: antialiased; -webkit-appearance: optimizelegibility; -webkit-font-smoothing: antialiased; appearance: optimizelegibility; color: rgb(54, 55, 55); font-family: 'SF Pro Display', -apple-system-headline, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.625em; font-weight: bold; line-height: 1.16em; margin: 1em 0 0.625em 0; position: relative;">Notable FYIs</h2><ul style="margin-top: 0; padding: 0;"><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>Stories on LLM development are more on the focus with the latest developments happening all over AI and tech. One such story involves Lindy.ai and how they evolved beyond the LLM-pilled era, their customer acquisitions, and a discussion on why agents need rails. </span><a href="https://substack.com/redirect/c7b65bb0-5c7c-4a1b-9220-b0050cf8d48a?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">This podcast</a><span> tells you all about it.</span></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>Progressive Web Apps or PWAs are a great way to enhance the UI of an application. These apps can be accessed offline after installation. Here is </span><a href="https://substack.com/redirect/12c2c641-ac3a-4101-abee-a9d365617844?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">an article</a><span> on dynamic generation of PWA app icons with a Next.js app router.  </span></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>I think we are all somehow familiar with the term “Data Migration” that essentially indicates digital transferring of data from one place to another. </span><a href="https://substack.com/redirect/06b9ab52-e081-4d22-888c-18235181bf8c?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">This article</a><span> deep dive into the concept. </span></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>Any software solution with zero downtime is great to have because of the high availability it provides to the user. But this type of solution becomes very useful during internal migration for an organization. Here is </span><a href="https://substack.com/redirect/2a6248b5-6896-4ded-a788-73c72e92bace?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">an article</a><span> (broken down into 5 parts) that discusses designing a zero downtime migration solution with data consistency.  </span></p></li><li style="margin: 8px 0 0 32px; mso-special-format: bullet;"><p style="box-sizing: border-box; color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0; margin-bottom: 0; padding-left: 4px;"><span>The hype with AI-agents is real and they are sitting in the driver’s seat in carrying the AI developmental growth. The agent software ecosystem is evolving significantly and you can learn more about it from </span><a href="https://substack.com/redirect/c9ba6fc0-cd91-40f6-8756-1ffd1fd379d4?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" rel style="color: rgb(54, 55, 55); text-decoration: underline;">this guide</a><span> that groups the different AI-agent stacks for common technological use-cases.</span></p></li></ul><p style="color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0 0 20px 0;">That’s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable and a subscription to the newsletter will be awesome if you are reading for the first time.</p><div class="captioned-button-wrap" data-attrs="{"url":"https://substack.com/app-link/post?publication_id=81750&post_id=151810454&utm_source=substack&utm_medium=email&utm_content=share&utm_campaign=email-share&action=share&triggerShare=true&isFreemail=true&r=4np3c0&token=eyJ1c2VyX2lkIjoyODE2NjY1OTIsInBvc3RfaWQiOjE1MTgxMDQ1NCwiaWF0IjoxNzMyMDMwMTk1LCJleHAiOjE3MzQ2MjIxOTUsImlzcyI6InB1Yi04MTc1MCIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.gPGHuDIR328BjS2MiTBLDoqlbRSEe9lpnrhVV_ZU-9I","text":"Share"}" data-component-name="CaptionedButtonToDOM" style="font-size: 16px; line-height: 26px; margin-bottom: 0;"><div class="preamble" style="align-items: center; display: flex; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 18px; font-weight: 400; line-height: 22px; margin-left: auto; margin-right: auto; margin-top: 16px; max-width: 384px; text-align: center; width: fit-content;"><p class="cta-caption" style="color: rgb(54, 55, 55); font-size: 16px; line-height: 26px; margin: 0 0 20px 0;">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{"url":"https://substack.com/app-link/post?publication_id=81750&post_id=151810454&utm_source=substack&utm_medium=email&utm_content=share&utm_campaign=email-share&action=share&triggerShare=true&isFreemail=true&r=4np3c0&token=eyJ1c2VyX2lkIjoyODE2NjY1OTIsInBvc3RfaWQiOjE1MTgxMDQ1NCwiaWF0IjoxNzMyMDMwMTk1LCJleHAiOjE3MzQ2MjIxOTUsImlzcyI6InB1Yi04MTc1MCIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.gPGHuDIR328BjS2MiTBLDoqlbRSEe9lpnrhVV_ZU-9I","text":"Share"}" data-component-name="ButtonCreateButton" style="border-radius: 4px; color: rgb(54, 55, 55); cursor: pointer; font-size: 16px; line-height: 26px; margin: 0 0 20px 0; text-align: center;"><a class="button primary" href="https://substack.com/app-link/post?publication_id=81750&post_id=151810454&utm_source=substack&utm_medium=email&utm_content=share&utm_campaign=email-share&action=share&triggerShare=true&isFreemail=true&r=4np3c0&token=eyJ1c2VyX2lkIjoyODE2NjY1OTIsInBvc3RfaWQiOjE1MTgxMDQ1NCwiaWF0IjoxNzMyMDMwMTk1LCJleHAiOjE3MzQ2MjIxOTUsImlzcyI6InB1Yi04MTc1MCIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.gPGHuDIR328BjS2MiTBLDoqlbRSEe9lpnrhVV_ZU-9I" rel style="background-color: #538cfa; border: none; border-radius: 8px; box-sizing: border-box; color: #ffffff !important; cursor: pointer; display: inline-block; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; font-weight: 600; height: auto; line-height: 20px; margin: 0; opacity: 1; outline: none; padding: 12px 20px; text-align: center; text-decoration: none !important; white-space: nowrap;"><span style="color: #ffffff; text-decoration: none;">Share</span></a></p></div></div></div><div class="postscript-placeholder" style="box-sizing: border-box; font-size: 16px; line-height: 26px; margin: 32px 0 0; width: 100%;"></div><table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0" class="email-ufi-2-bottom" style="border-bottom: 1px solid rgb(0, 0, 0, .1); border-top: 1px solid rgb(0, 0, 0, .1); min-width: 100%;"><tr height="16"><td height="16" style="font-size:0px;line-height:0;"> </td></tr><tr><td><table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0" style="margin:0 auto;"><tr><td style="vertical-align:middle;"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tr><td align="center"><a href="https://substack.com/app-link/post?publication_id=81750&post_id=151810454&utm_source=substack&isFreemail=true&submitLike=true&token=eyJ1c2VyX2lkIjoyODE2NjY1OTIsInBvc3RfaWQiOjE1MTgxMDQ1NCwicmVhY3Rpb24iOiLinaQiLCJpYXQiOjE3MzIwMzAxOTUsImV4cCI6MTczNDYyMjE5NSwiaXNzIjoicHViLTgxNzUwIiwic3ViIjoicmVhY3Rpb24ifQ.kSnThOF0J92JSdT7kE1olZWWIXYAuCaVlXs6btm188Q&utm_medium=email&utm_campaign=email-reaction&r=4np3c0" class="email-button-outline" style="border: 1px solid rgb(0, 0, 0, .1); border-radius: 9999px; color: rgb(119, 119, 119); display: inline-block; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 12px; font-weight: 500; line-height: 12px; padding: 9px 14px; text-decoration: none; text-transform: uppercase;"><img src="https://substackcdn.com/image/fetch/w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FLucideHeart%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="border: none !important; margin-right: 8px; max-width: 18px; min-height: 18px; min-width: 18px; vertical-align: middle;" alt class="icon"><span class="email-button-text" style="vertical-align: middle;">Like</span></a></td></tr></table></td><td width="8" style="min-width: 8px"></td><td style="vertical-align:middle;"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tr><td align="center"><a href="https://substack.com/app-link/post?publication_id=81750&post_id=151810454&utm_source=substack&utm_medium=email&isFreemail=true&comments=true&token=eyJ1c2VyX2lkIjoyODE2NjY1OTIsInBvc3RfaWQiOjE1MTgxMDQ1NCwiaWF0IjoxNzMyMDMwMTk1LCJleHAiOjE3MzQ2MjIxOTUsImlzcyI6InB1Yi04MTc1MCIsInN1YiI6InBvc3QtcmVhY3Rpb24ifQ.gPGHuDIR328BjS2MiTBLDoqlbRSEe9lpnrhVV_ZU-9I&r=4np3c0&utm_campaign=email-half-magic-comments&action=post-comment&utm_source=substack&utm_medium=email" class="email-button-outline" style="border: 1px solid rgb(0, 0, 0, .1); border-radius: 9999px; color: rgb(119, 119, 119); display: inline-block; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 12px; font-weight: 500; line-height: 12px; padding: 9px 14px; text-decoration: none; text-transform: uppercase;"><img src="https://substackcdn.com/image/fetch/w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FLucideComments%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="border: none !important; margin-right: 8px; max-width: 18px; min-height: 18px; min-width: 18px; vertical-align: middle;" alt class="icon"><span class="email-button-text" style="vertical-align: middle;">Comment</span></a></td></tr></table></td><td width="8" style="min-width: 8px"></td><td style="vertical-align:middle;"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tr><td align="center"><a href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9vcGVuLnN1YnN0YWNrLmNvbS9wdWIvZGV2c2hvcnRzL3AvZGV2LWNhdGNoLXVwLTM5LWxvZ2ljLW9mLXRob3VnaHQ_dXRtX3NvdXJjZT1zdWJzdGFjayZ1dG1fbWVkaXVtPWVtYWlsJnV0bV9jYW1wYWlnbj1lbWFpbC1yZXN0YWNrLWNvbW1lbnQmYWN0aW9uPXJlc3RhY2stY29tbWVudCZyPTRucDNjMCZ0b2tlbj1leUoxYzJWeVgybGtJam95T0RFMk5qWTFPVElzSW5CdmMzUmZhV1FpT2pFMU1UZ3hNRFExTkN3aWFXRjBJam94TnpNeU1ETXdNVGsxTENKbGVIQWlPakUzTXpRMk1qSXhPVFVzSW1semN5STZJbkIxWWkwNE1UYzFNQ0lzSW5OMVlpSTZJbkJ2YzNRdGNtVmhZM1JwYjI0aWZRLmdQR0h1RElSMzI4QmpTMk1pVEJMRG9xbGJSU0VlOWxwbnJoVlZfWlUtOUkiLCJwIjoxNTE4MTA0NTQsInMiOjgxNzUwLCJmIjp0cnVlLCJ1IjoyODE2NjY1OTIsImlhdCI6MTczMjAzMDE5NSwiZXhwIjoxNzM0NjIyMTk1LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.5Ynoe9YtPCESKwqmKA-fQkWPwvromdgNMGZF6PvJ4rk?&utm_source=substack&utm_medium=email" class="email-button-outline" style="border: 1px solid rgb(0, 0, 0, .1); border-radius: 9999px; color: rgb(119, 119, 119); display: inline-block; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 12px; font-weight: 500; line-height: 12px; padding: 9px 14px; text-decoration: none; text-transform: uppercase;"><img src="https://substackcdn.com/image/fetch/w_36,c_scale,f_png,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Ficon%2FNoteForwardIcon%3Fv%3D4%26height%3D36%26fill%3Dnone%26stroke%3D%2523808080%26strokeWidth%3D2" width="18" height="18" style="border: none !important; margin-right: 8px; max-width: 18px; min-height: 18px; min-width: 18px; vertical-align: middle;" alt class="icon"><span class="email-button-text" style="vertical-align: middle;">Restack</span></a></td></tr></table></td></tr></table></td><td align="right"><table role="presentation" width="auto" border="0" cellspacing="0" cellpadding="0"><tr></tr></table></td></tr></table></td></tr><tr height="16"><td height="16" style="font-size:0px;line-height:0;"> </td></tr></table><div class="footer _footer_11ym1_1" style="color: rgb(119, 119, 119); font-size: 16px; line-height: 26px; padding: 24px 0; text-align: center;"><div style="font-size: 16px; line-height: 26px; padding-bottom: 24px;"><p class="pencraft pc-reset _color-secondary_h3mln_169 _size-12_h3mln_35 _reset_h3mln_1 small _meta_11ym1_14" style="color: rgb(119, 119, 119); font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 12px; line-height: 16px; list-style: none; margin: 0; padding-bottom: 0; text-decoration: unset;">© 2024 <span>Aravind Putrevu</span><br>3543 BN, Utrecht, Netherlands <br><a href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly93d3cuZGV2c2hvcnRzLmluL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqb3lPREUyTmpZMU9USXNJbkJ2YzNSZmFXUWlPakUxTVRneE1EUTFOQ3dpYVdGMElqb3hOek15TURNd01UazFMQ0psZUhBaU9qRTNOak0xTmpZeE9UVXNJbWx6Y3lJNkluQjFZaTA0TVRjMU1DSXNJbk4xWWlJNkltUnBjMkZpYkdWZlpXMWhhV3dpZlEuMWhVU2hXNHY3N0piLXNBWTFyR3k1ajk1X1BwZnB3aEhyeGE1REFkZ2E1ZyIsInAiOjE1MTgxMDQ1NCwicyI6ODE3NTAsImYiOnRydWUsInUiOjI4MTY2NjU5MiwiaWF0IjoxNzMyMDMwMTk1LCJleHAiOjE3MzQ2MjIxOTUsImlzcyI6InB1Yi0wIiwic3ViIjoibGluay1yZWRpcmVjdCJ9.gEhTxVHrsikTppGD2IwWkQ_nLFp1akTvK9UY6oxz178?" style="color: rgb(119, 119, 119); text-decoration: underline;"><span style="color: rgb(119, 119, 119); text-decoration: underline;">Unsubscribe</span></a></p></div><p class="_footerSection_11ym1_5 small powered-by-substack" style="color: rgb(119, 119, 119); font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 12px; line-height: 20px; margin: 0; margin-top: 0; padding: 0 24px; padding-bottom: 0;"><a href="https://substack.com/redirect/5cb75841-28ef-4b58-b124-beb66188e756?j=eyJ1IjoiNG5wM2MwIn0.fgYMQxm_bMUPGBi586SuBifZTGGQNdX5geZ4b-C6ELE" style="color: rgb(119, 119, 119); display: inline-block; margin: 0 4px; text-decoration: none;"><img src="https://substackcdn.com/image/fetch/w_262,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fgeneric-app-button%402x.png" srcset="https://substackcdn.com/image/fetch/w_131,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fgeneric-app-button.png, https://substackcdn.com/image/fetch/w_262,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fgeneric-app-button%402x.png 2x, https://substackcdn.com/image/fetch/w_393,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fgeneric-app-button%403x.png 3x" width="131" alt="Get the app" height="40" style="border: none !important; max-width: 550px; vertical-align: middle;"></a><a href="https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9zdWJzdGFjay5jb20vc2lnbnVwP3V0bV9zb3VyY2U9c3Vic3RhY2smdXRtX21lZGl1bT1lbWFpbCZ1dG1fY29udGVudD1mb290ZXImdXRtX2NhbXBhaWduPWF1dG9maWxsZWQtZm9vdGVyJmZyZWVTaWdudXBFbWFpbD1saWJyZW9mZmljZUBsaXN0cy5mcmVlZGVza3RvcC5vcmcmcj00bnAzYzAiLCJwIjoxNTE4MTA0NTQsInMiOjgxNzUwLCJmIjp0cnVlLCJ1IjoyODE2NjY1OTIsImlhdCI6MTczMjAzMDE5NSwiZXhwIjoxNzM0NjIyMTk1LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.jQ-wWKddfEzHlEey6ZA747amT9JfxOSEXSTc8J1AMHI?" style="color: rgb(119, 119, 119); display: inline-block; margin: 0 4px; text-decoration: none;"><img src="https://substackcdn.com/image/fetch/w_270,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fpublish-button%402x.png" srcset="https://substackcdn.com/image/fetch/w_135,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fpublish-button.png, https://substackcdn.com/image/fetch/w_270,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fpublish-button%402x.png 2x, https://substackcdn.com/image/fetch/w_405,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fpublish-button%403x.png 3x" width="135" alt="Start writing" height="40" style="border: none !important; max-width: 550px; vertical-align: middle;"></a></p></div></div></td><td></td></tr></table><img src="https://eotrx.substackcdn.com/open?token=eyJtIjoiPDIwMjQxMTE5MTUyOTQ0LjMuNTA3OTQxMzIzMjUxZTgyZEBtZy1kMS5zdWJzdGFjay5jb20-IiwidSI6MjgxNjY2NTkyLCJyIjoibGlicmVvZmZpY2VAbGlzdHMuZnJlZWRlc2t0b3Aub3JnIiwiZCI6Im1nLWQxLnN1YnN0YWNrLmNvbSIsInAiOjE1MTgxMDQ1NCwidCI6Im5ld3NsZXR0ZXIiLCJhIjoiZXZlcnlvbmUiLCJzIjo4MTc1MCwiYyI6InBvc3QiLCJmIjp0cnVlLCJwb3NpdGlvbiI6ImJvdHRvbSIsImlhdCI6MTczMjAzMDE5NSwiZXhwIjoxNzM0NjIyMTk1LCJpc3MiOiJwdWItMCIsInN1YiI6ImVvIn0.qLBX1nCGGcUIy5hWCaTKCdJftptzl9IupEGYBrPu3jg" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;"/><img width="1px" height="1px" alt="" src="https://email.mg-d1.substack.com/o/eJw0kNuuqyAURb-mvB3D4qLywLcYLktLqmBg0RP_fsfd7tcxk5GRGRzhVuplz9KIRSuN53MYGVqYpOCSC84ZHi7ty4YZqyOMi6O_FYzWgrOnjXFUEEHCijiFych5Miv3TrhRiwkCS1ZwoQDAgBZGqUEOmk9GgRRSaMBZxIfix_YvwtC6b-TCawjlYKkta8XfBEu1I7tLF9djwhzQ4hvrVfIXp2hBwwxcafUhdJ1oM_5vOxJhZWf3SyjH0XOia8Hs_I7xK-5-T8FRKvkWzTBpzqrdk69Y1jUFfCi-p0ZtuIsitheVcyh1Y637WA6Xso34bs9SqTH6fNob1lsnZhjHURvB3lb8BAAA__-S5nwa"></body></html>