Hmmm… 馃, what’s this blog about?

Recording my journey as an Indie Hacker, AWS Certified Solutions Architect, and a Software Engineer. I share my experiences, learnings, and thoughts on building products, AWS, and software engineering. I hope you find something useful here. 馃槉

Github Page vs Vercel vs Cloudflare Page: Which is best for static blog hosting

TL;DR: I chose Cloudflare Pages to host my blog because of unlimited bandwidth and easy and error free deployment. Candidates There are lots of place can host a blog. Today I鈥檓 comparing the these three platforms because Github Pages is oldest way I used before, Vercel is hot on Twitter, and Cloudflare is trending on Twitter as well. Requirement Compatible to Hugo Easy to use Free Custom Domain Github Pages Guide https://gohugo....

April 14, 2024 路 2 min 路 333 words 路 Murmurs Dev

Introducing Green2US: Your Ultimate USCIS Case Tracker

Are you tired of constantly refreshing your USCIS case status page, waiting anxiously for updates? Say goodbye to endless checking and hello to peace of mind with Green2.US, your ultimate USCIS case tracker solution. Green2US is revolutionizing the way you monitor your immigration case by offering a seamless, hassle-free experience that puts you in control. Here鈥檚 why Green2US stands out from the rest: Real-Time Email Notifications: With Green2US, you鈥檒l never miss a beat....

February 9, 2024 路 2 min 路 290 words 路 Murmurs Dev

Save money and improve UX by using CDN and browser cache - Typee Design

Situation A custom Typee deployment generates app configuration by a AWS Lambda. But there are some drawbacks: AWS Lambda has high delay when code start is required. Each refresh of a custom Typee deployment costs a AWS Lambda call and DynamoDB call. But the configuration actually changes less frequently. Solution I told myself as MVP I shouldn鈥檛 keep it simple and brutal, but I failed to convinced myself. First version I firstly put the Lambda behind Cloudfront(CDN)....

September 10, 2023 路 2 min 路 245 words 路 Murmurs Dev

Deploy Your Own ChatGPT UI in Minutes

Benefit of Your Own ChatGPT UI for Your Team/Organization Increased Convenience Setting up your own ChatGPT UI eliminates the need for individual API keys for your team members. This saves time and effort as users can easily access and utilize the software without the hassle of managing and distributing API keys. Enhanced Security With your own ChatGPT UI, you have control over user access and authorization. Only authorized users can access the software, ensuring that sensitive information and conversations remain secure within your team or organization....

September 7, 2023 路 2 min 路 413 words 路 Murmurs Dev

AI Chat API Design - Typee Design

Overview This article describes how to implement a AI Chat API, in AWS. It will discuss use cases, requirements, architectures and detail designs. Use Case In SaaS version of Typee, An authorized user can use a preset model without setting up any configuration. Admin first needs to setup an model which include a model name, a backing model, API Key for the backing model, and if use training data. Once Admin finish setup and published the model, Authorized users can see the new model in front end and are ready to use....

August 27, 2023 路 2 min 路 416 words 路 Murmurs Dev

Complete Guide to Auto Publish Kotlin Package to Maven Central Repository

In this blog post, we will guide you through the process of automatically publishing your Kotlin package to the Maven Central Repository. Follow the steps below to ensure a seamless setup. 1. Obtain a Sonatype OSSRH Account To start, you need a Sonatype OSSRH (OSS Repository Hosting) account. Sign up for one by following this publish guide. 2. Meet Maven Central Publishing Requirements Before you can publish a package to Maven Central, you must satisfy certain requirements....

April 18, 2023 路 4 min 路 788 words 路 Murmurs Dev

How to Easily Publish a Multi-Platform Docker Image

Create A Dockerfile supporting multiple arch The key point is ARG TARGETARCH You have to declare it before using it as variable FROM python:3 ARG TARGETARCH WORKDIR /app RUN git clone https://github.com/MurmursDev/easyblogger.git RUN cd easyblogger && pip install . RUN rm -rf easyblogger RUN wget https://github.com/jgm/pandoc/releases/download/3.1.1/pandoc-3.1.1-1-$TARGETARCH.deb RUN dpkg -i pandoc-3.1.1-1-$TARGETARCH.deb RUN rm pandoc-3.1.1-1-$TARGETARCH.deb ENTRYPOINT ["/usr/local/bin/easyblogger"] Create a Github Workflow name: ci on: push: branches: - "main" jobs: docker: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets....

April 16, 2023 路 1 min 路 126 words 路 Murmurs Dev

Kapper, A New Kotlin Model Mapper

Kapper Kapper is a code generator for Kotlin that simplifies mapping between data classes. It was designed to map one class to a interface which has multiple implementations. Usage Installation Add the following to your build.gradle.kts file: dependencies { implementation("dev.murmurs.kapper:kapper:0.0.1") } Example Given the following data classes: data class User( val id: Int, val name: String, val email: String, val address: Address, ) data class UserDto( val id: Int, val name: String, val email: String, ) Kapper can generate a mapper that converts a User to a UserDto:...

April 6, 2023 路 2 min 路 270 words 路 Murmurs Dev

Simplest Way to Send Your Markdown Files To Blogger

Overview One of the biggest concerns I had with using Blogger was the lack of a good client for dealing with markdown files. Fortunately, EasyBlogger solved this issue. However, since the last valid commit for EasyBlogger was 5 years ago, I encountered some issues while using it and decided to dockerize it. Authorization Generating the authorization URL To use Blogger, the first step is to fetch your credentials. You can find your blog ID once you log in to Blogger - it鈥檚 the last part of the URL path....

March 23, 2023 路 2 min 路 241 words 路 Murmurs Dev

Choosing the Best Blogging Platform for My Personal Blog

As a software developer, I鈥檓 always looking for ways to create software solutions for myself. However, when it came to setting up my personal blog, I realized that building a blog from scratch might not be the best use of my time. So, I decided to use an existing blogging platform that met my requirements. In this post, I鈥檒l share my journey of choosing the best blogging platform for my personal blog, and the factors I considered before making my final decision....

March 22, 2023 路 3 min 路 554 words 路 Murmurs Dev