<?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>Forem: Ko1103</title>
    <description>The latest articles on Forem by Ko1103 (@ko1103).</description>
    <link>https://forem.com/ko1103</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%2F1136003%2Ff31c5097-7b34-4015-9ef0-6beecbb33b16.jpeg</url>
      <title>Forem: Ko1103</title>
      <link>https://forem.com/ko1103</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ko1103"/>
    <language>en</language>
    <item>
      <title>A Timer App you can fully control with keyboard shortcuts</title>
      <dc:creator>Ko1103</dc:creator>
      <pubDate>Mon, 27 Oct 2025 05:54:30 +0000</pubDate>
      <link>https://forem.com/ko1103/a-timer-app-you-can-fully-control-with-keyboard-shortcuts-5h0g</link>
      <guid>https://forem.com/ko1103/a-timer-app-you-can-fully-control-with-keyboard-shortcuts-5h0g</guid>
      <description>&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/bULbw19c7LA"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;Many people use timers to boost their productivity — and I was one of them.&lt;/p&gt;

&lt;p&gt;But I always ran into a few small frustrations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I kept setting the same durations manually every time.&lt;/li&gt;
&lt;li&gt;Mouse interactions felt too slow and distracting.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So, I built an app that solves these problems.&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%2Fecea3z3cta9tgmh0xt1q.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%2Fecea3z3cta9tgmh0xt1q.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⏱️ Preset durations
&lt;/h2&gt;

&lt;p&gt;You can simply pick from commonly used time intervals — no need to type anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⌨️ Fully keyboard-driven
&lt;/h2&gt;

&lt;p&gt;Show, hide, start, stop — everything can be controlled through shortcuts.&lt;/p&gt;

&lt;p&gt;It’s a minimal timer app focused on speed and simplicity.&lt;br&gt;
Give it a try and see how it fits into your workflow!&lt;/p&gt;

&lt;h2&gt;
  
  
  Download
&lt;/h2&gt;

&lt;p&gt;You can download from here&lt;br&gt;
&lt;a href="https://v0-timer-app-landing-page.vercel.app/" rel="noopener noreferrer"&gt;https://v0-timer-app-landing-page.vercel.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>tauri</category>
      <category>rust</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Building a gRPC Server with NestJS and Buf: A Comprehensive Showcase</title>
      <dc:creator>Ko1103</dc:creator>
      <pubDate>Mon, 06 May 2024 14:39:11 +0000</pubDate>
      <link>https://forem.com/ko1103/building-a-grpc-server-with-nestjs-and-buf-a-comprehensive-showcase-44e</link>
      <guid>https://forem.com/ko1103/building-a-grpc-server-with-nestjs-and-buf-a-comprehensive-showcase-44e</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;If you're familiar with NestJS and gRPC, you may have already referred to the official documentation on &lt;a href="https://docs.nestjs.com/microservices/grpc" rel="noopener noreferrer"&gt;implementing gRPC in NestJS&lt;/a&gt;. While Protoc is a standard tool, as you delve deeper into customization, its complexity increases.&lt;/p&gt;

&lt;p&gt;This is where Buf comes in. Buf offers a simpler alternative to Protoc for generating SDKs, documentation, and more. Despite its simplicity, I noticed a lack of sample projects or showcases integrating Buf with NestJS. &lt;/p&gt;

&lt;p&gt;Therefore, I took it upon myself to create &lt;a href="https://github.com/Ko1103/nestjs-buf-example" rel="noopener noreferrer"&gt;one&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview of repository
&lt;/h2&gt;

&lt;p&gt;This repository (&lt;a href="https://github.com/Ko1103/nestjs-buf-example" rel="noopener noreferrer"&gt;https://github.com/Ko1103/nestjs-buf-example&lt;/a&gt;) is a NestJS and Buf usage example for protobuf server implementation. &lt;br&gt;
It will help you to understand about&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;directory structure&lt;/li&gt;
&lt;li&gt;explains requirements&lt;/li&gt;
&lt;li&gt;installation process&lt;/li&gt;
&lt;li&gt;how to run the application&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Project Structure
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
├── Dockerfile
├── README.md
├── docker-compose.yml
├── nest-cli.json
├── proto // proto files
├── src
│   ├── posts // User posts resource
│   ├── proto // TypeScript SDK generated from proto file
│   ├── &lt;span class="nb"&gt;users&lt;/span&gt; // Users resource
│   │   ├── users.controller.ts
│   │   ├── users.module.ts
│   │   ├── users.service.ts
│   ├── app.module.ts
│   ├── main.ts
├── tsconfig.build.json
├── tsconfig.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Installation and Setup
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Requirements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;docker &amp;amp; docker compose cli&lt;/li&gt;
&lt;li&gt;Node.js v18&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please note that I developed this project using an M1 Mac.&lt;/p&gt;

&lt;p&gt;To get started, clone repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone git@github.com:Ko1103/nestjs-buf-example.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, install the node_modules&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm ci
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Generate TypeScript SDK from protobuf files&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run proto:gen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally bring up docker container.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Try accessing gRPC via &lt;code&gt;http:localhost/5000&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;With this repository, you now have the ability to create new gRPC projects with NestJS using Buf. However, I'm concerned that the TypeScript SDK generated into src/proto may not be optimal. Please feel free to share any alternative options or ideas you may have regarding this.&lt;/p&gt;

&lt;p&gt;Thank you for reading until the end.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reference
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nestjs.com/microservices/grpc" rel="noopener noreferrer"&gt;https://docs.nestjs.com/microservices/grpc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://buf.build/" rel="noopener noreferrer"&gt;https://buf.build/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>typescript</category>
      <category>nestjs</category>
      <category>buf</category>
      <category>protobuf</category>
    </item>
  </channel>
</rss>
