# Jeroen Mols

Recent content on Jeroen Mols

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Learning full stack - Implementation details

DevFeed: [Learning full stack - Implementation details](<https://devfeed.tech/articles/learning-full-stack-implementation-details-28713.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2024/11/14/full-stack-implementation/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2024-11-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Full Stack Development](<https://devfeed.tech/topics/full-stack-development.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [API](<https://devfeed.tech/topics/api.md>), [Development](<https://devfeed.tech/topics/development.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Cross-origin resource sharing (CORS)](<https://devfeed.tech/topics/cors.md>), [in-memory database](<https://devfeed.tech/topics/in-memory-database.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [backend](<https://devfeed.tech/tags/backend.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [cors](<https://devfeed.tech/tags/cors.md>), [development](<https://devfeed.tech/tags/development.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [full-stack](<https://devfeed.tech/tags/full-stack.md>), [full-stack-development](<https://devfeed.tech/tags/full-stack-development.md>), [go](<https://devfeed.tech/tags/go.md>), [http](<https://devfeed.tech/tags/http.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [in-memory-database](<https://devfeed.tech/tags/in-memory-database.md>), [json](<https://devfeed.tech/tags/json.md>), [side-project](<https://devfeed.tech/tags/side-project.md>)

### AI overview

The final part of a full-stack development series explains the implementation of a to-do list project. It covers REST API design, authentication and CORS middleware, Go backend structure and routing, and an in-memory database serialized as JSON.

### Source excerpt

To conclude my series on full-stack development, this part will look at the implementation, design choices, what worked well and what didn't. This builds on the to-do list project proposed in part 1 and the tech stack described in part 2.

## Choosing a technology stack for a full-stack to-do list side project

DevFeed: [Choosing a technology stack for a full-stack to-do list side project](<https://devfeed.tech/articles/learning-full-stack-tech-stack-28712.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2024/11/06/full-stack-technology/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2024-11-06T00:00:00Z

Content type: article

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Learning](<https://devfeed.tech/topics/learning.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Ruby on Rails](<https://devfeed.tech/topics/ruby-on-rails.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [full-stack](<https://devfeed.tech/tags/full-stack.md>), [go](<https://devfeed.tech/tags/go.md>), [golang](<https://devfeed.tech/tags/golang.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [learning](<https://devfeed.tech/tags/learning.md>), [playwright](<https://devfeed.tech/tags/playwright.md>), [ruby-on-rails](<https://devfeed.tech/tags/ruby-on-rails.md>), [side-project](<https://devfeed.tech/tags/side-project.md>), [svelte](<https://devfeed.tech/tags/svelte.md>), [tech-stack](<https://devfeed.tech/tags/tech-stack.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

The article examines technology choices for a full-stack to-do list side project. It compares NodeJS, Ruby on Rails, and Go for the backend, and explains why the author chose Go after considering asynchronous JavaScript, Rails' batteries-included approach, and Go's static typing, concurrency, compilation speed, and performance.

### Source excerpt

One of my main drivers for this side project was to make all technology choices myself. To do that effectively, I would have to consider the pros and cons of different options and frankly learn many new things.

## Learning Full-Stack Development Through Side Projects

DevFeed: [Learning Full-Stack Development Through Side Projects](<https://devfeed.tech/articles/learning-full-stack-project-28711.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2024/10/27/full-stack-project/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2024-10-27T00:00:00Z

Content type: article

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Full Stack Development](<https://devfeed.tech/topics/full-stack-development.md>), [Development](<https://devfeed.tech/topics/development.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [React](<https://devfeed.tech/topics/react.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [blogs](<https://devfeed.tech/tags/blogs.md>), [career](<https://devfeed.tech/tags/career.md>), [database](<https://devfeed.tech/tags/database.md>), [development](<https://devfeed.tech/tags/development.md>), [full-stack](<https://devfeed.tech/tags/full-stack.md>), [full-stack-development](<https://devfeed.tech/tags/full-stack-development.md>), [learning](<https://devfeed.tech/tags/learning.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [react](<https://devfeed.tech/tags/react.md>), [side-project](<https://devfeed.tech/tags/side-project.md>), [side-projects](<https://devfeed.tech/tags/side-projects.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

The author explains how moving from mobile development to a full-stack team exposed gaps in foundational knowledge, especially around architecture and starting projects from scratch. They describe using side projects to learn and introduce a finance manager project built with React, TypeScript, and PostgreSQL.

### Source excerpt

After pivoting my career to full-stack development, I missed the "depth" I used to have on mobile. So to build out more foundational full-stack knowledge, I decided to build a few side projects.

## Website refresh

DevFeed: [Website refresh](<https://devfeed.tech/articles/website-refresh-28710.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2024/09/20/website-refresh-24/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2024-09-20T00:00:00Z

Content type: opinion

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Website](<https://devfeed.tech/topics/website.md>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [Jekyll](<https://devfeed.tech/topics/jekyll.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [modern web development](<https://devfeed.tech/topics/modern-web-development.md>), [Netlify](<https://devfeed.tech/topics/netlify.md>), [Vercel](<https://devfeed.tech/topics/vercel.md>)

Tags: [blogging](<https://devfeed.tech/tags/blogging.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [development](<https://devfeed.tech/tags/development.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [jekyll](<https://devfeed.tech/tags/jekyll.md>), [migrate](<https://devfeed.tech/tags/migrate.md>), [netlify](<https://devfeed.tech/tags/netlify.md>), [platform](<https://devfeed.tech/tags/platform.md>), [redesign](<https://devfeed.tech/tags/redesign.md>), [static-site-generator](<https://devfeed.tech/tags/static-site-generator.md>), [vercel](<https://devfeed.tech/tags/vercel.md>), [web-development](<https://devfeed.tech/tags/web-development.md>), [website](<https://devfeed.tech/tags/website.md>), [website-refresh](<https://devfeed.tech/tags/website-refresh.md>)

### AI overview

A personal account of migrating a seven-year-old Jekyll website to Hugo. It explains the old site's deployment setup and limitations, the motivations for the redesign, and the author's evaluation of static-site generators and hosting options.

### Source excerpt

After 7 years, it was time to migrate my old Jekyll website to a new more modern platform. Read on to learn why, how, and what the main challenges were in this process.

## Using VPN during MDNS server development

DevFeed: [Using VPN during MDNS server development](<https://devfeed.tech/articles/using-vpn-during-mdns-server-development-28709.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2023/07/24/vpn-development/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2023-07-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Virtual Private Network](<https://devfeed.tech/topics/vpn.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [App](<https://devfeed.tech/topics/app.md>), [Android](<https://devfeed.tech/topics/android.md>), [Server](<https://devfeed.tech/topics/server.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [QR Code](<https://devfeed.tech/topics/qrcode.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [browser](<https://devfeed.tech/tags/browser.md>), [fullstack](<https://devfeed.tech/tags/fullstack.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [qr-code](<https://devfeed.tech/tags/qr-code.md>), [server](<https://devfeed.tech/tags/server.md>), [tips](<https://devfeed.tech/tags/tips.md>), [vpn](<https://devfeed.tech/tags/vpn.md>)

### AI overview

A tutorial on accessing a mobile development web server over mDNS while using a VPN. It explains split tunneling and presents an open-source Android URL-interceptor app that redirects local-domain links to a browser configured for development without the VPN.

### Source excerpt

Are you using a VPN on your mobile device? Do you need to disable that to access your development web server over MDNS on your mobile device?

## How to make pull requests easier and faster to review

DevFeed: [How to make pull requests easier and faster to review](<https://devfeed.tech/articles/gaming-the-pull-request-review-system-28708.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2023/06/26/prs-and-commits/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2023-06-26T00:00:00Z

Content type: opinion

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [Git](<https://devfeed.tech/topics/git.md>)

Tags: [blogs](<https://devfeed.tech/tags/blogs.md>), [code](<https://devfeed.tech/tags/code.md>), [commit](<https://devfeed.tech/tags/commit.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [git](<https://devfeed.tech/tags/git.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [pullrequest](<https://devfeed.tech/tags/pullrequest.md>), [reviews](<https://devfeed.tech/tags/reviews.md>)

### AI overview

The article recommends making pull requests small, well described, visually supported, and self-reviewed to speed up reviews, reduce rework, and improve feedback. It also discusses applying similar principles to commit messages, while noting that squashing commits may shift the author's focus to pull requests.

### Source excerpt

As developers, we love to build cool things and ship them as fast as reasonably possible. And to get that done, here are a few things you can do to "game the system".

## Interactive versionable architecture diagrams

DevFeed: [Interactive versionable architecture diagrams](<https://devfeed.tech/articles/interactive-versionable-architecture-diagrams-28707.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2023/06/09/interactive-architecture-diagram/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2023-06-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Graphs](<https://devfeed.tech/topics/graphs.md>), [SVG](<https://devfeed.tech/topics/svg.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [diagram](<https://devfeed.tech/tags/diagram.md>), [git](<https://devfeed.tech/tags/git.md>), [graphviz](<https://devfeed.tech/tags/graphviz.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [html](<https://devfeed.tech/tags/html.md>), [svg](<https://devfeed.tech/tags/svg.md>), [visualization](<https://devfeed.tech/tags/visualization.md>)

### AI overview

A tutorial on generating interactive, versionable system architecture diagrams with Graphviz, exporting them as SVG, and embedding the SVG directly in HTML so diagram elements can link to the hosting page.

### Source excerpt

Tired of building un-versionable, lifeless architecture diagrams? Wouldn't it be great if you could add your diagram to Git, embed it in your documentation, and have clickable elements?

## A privacy friendly RSVP for events

DevFeed: [A privacy friendly RSVP for events](<https://devfeed.tech/articles/a-privacy-friendly-rsvp-for-events-28706.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2023/03/28/privacy-friendly-rsvp/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2023-03-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [online privacy](<https://devfeed.tech/topics/online-privacy.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Website](<https://devfeed.tech/topics/website.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [email](<https://devfeed.tech/topics/email.md>)

Tags: [blogs](<https://devfeed.tech/tags/blogs.md>), [email](<https://devfeed.tech/tags/email.md>), [events](<https://devfeed.tech/tags/events.md>), [html](<https://devfeed.tech/tags/html.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [responses](<https://devfeed.tech/tags/responses.md>), [rsvp](<https://devfeed.tech/tags/rsvp.md>), [third-party](<https://devfeed.tech/tags/third-party.md>), [website](<https://devfeed.tech/tags/website.md>)

### AI overview

This tutorial presents a privacy-friendly RSVP alternative using a simple HTML page and JavaScript to open a guest's email application with a prefilled recipient, subject, and message. It avoids collecting personal information through a third-party RSVP service.

### Source excerpt

Planning an event can be stressful, and the last thing you need is worrying about your guests' privacy. But don't worry, I've got you covered with a privacy-friendly RSVP option.

## Using multiple SSH keys for Github and Github enterprise

DevFeed: [Using multiple SSH keys for Github and Github enterprise](<https://devfeed.tech/articles/using-multiple-ssh-keys-for-github-and-github-enterprise-28705.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2023/02/06/multiple-ssh-keys/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2023-02-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [OpenSSH](<https://devfeed.tech/topics/openssh.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [blogs](<https://devfeed.tech/tags/blogs.md>), [computer](<https://devfeed.tech/tags/computer.md>), [contributions](<https://devfeed.tech/tags/contributions.md>), [github](<https://devfeed.tech/tags/github.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [tips](<https://devfeed.tech/tags/tips.md>)

### AI overview

A short tutorial explains how to configure multiple SSH keys on one computer, such as using separate keys for public and enterprise GitHub contributions. It assumes an enterprise GitHub SSH key already exists and outlines creating another key, adding it to ssh-agent, and configuring hosts.

### Source excerpt

Looking to configure multiple SSH keys on the same computer? For instance to use a different SSH key for your public and enterprise Github contributions.

## Removing all trackers from my website

DevFeed: [Removing all trackers from my website](<https://devfeed.tech/articles/removing-all-trackers-from-my-website-28704.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2023/01/29/remove-trackers/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2023-01-29T00:00:00Z

Content type: article

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Website](<https://devfeed.tech/topics/website.md>), [Google Analytics](<https://devfeed.tech/topics/google-analytics.md>), [Mastodon](<https://devfeed.tech/topics/mastodon.md>), [Reddit](<https://devfeed.tech/topics/reddit.md>)

Tags: [ads](<https://devfeed.tech/tags/ads.md>), [analytics](<https://devfeed.tech/tags/analytics.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [personal](<https://devfeed.tech/tags/personal.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [trackers](<https://devfeed.tech/tags/trackers.md>), [website](<https://devfeed.tech/tags/website.md>)

### AI overview

The author removed Google Analytics, Google Adsense, Disqus comments, and other tracking-related services from their website because they considered the associated data collection harmful to visitor privacy. The website is now described as free of trackers and advertisements.

### Source excerpt

These past years I've grown to be more privacy-aware. And while this post isn't about how I'm increasing my personal privacy, I'd like to talk about how I'm increasing yours.

## Android emulator access to local server

DevFeed: [Android emulator access to local server](<https://devfeed.tech/articles/android-emulator-access-to-local-server-28703.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2023/01/25/development-server-emulator/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2023-01-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Emulator](<https://devfeed.tech/topics/emulator.md>), [Server](<https://devfeed.tech/topics/server.md>), [adb](<https://devfeed.tech/topics/adb.md>), [Network](<https://devfeed.tech/topics/network.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [adb](<https://devfeed.tech/tags/adb.md>), [android](<https://devfeed.tech/tags/android.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [devices](<https://devfeed.tech/tags/devices.md>), [emulator](<https://devfeed.tech/tags/emulator.md>), [ip](<https://devfeed.tech/tags/ip.md>), [localhost](<https://devfeed.tech/tags/localhost.md>), [network](<https://devfeed.tech/tags/network.md>), [port](<https://devfeed.tech/tags/port.md>), [react-native](<https://devfeed.tech/tags/react-native.md>), [server](<https://devfeed.tech/tags/server.md>)

### AI overview

This tutorial explains how to connect an Android app running in an emulator to a development server on a computer's localhost. It presents using the computer's IP address, the emulator loopback alias, editing the emulator's hosts file, and ADB reverse as possible approaches.

### Source excerpt

How can you connect your app on an Android emulator to a development server running on the localhost of your computer? The problem # Since Android emulators create their own virtual network, they cannot access devices on your local network.

## Transfer many large files from Android

DevFeed: [Transfer many large files from Android](<https://devfeed.tech/articles/transfer-many-large-files-from-android-28702.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2022/12/17/pull-files-android/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2022-12-17T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [adb](<https://devfeed.tech/topics/adb.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Shell](<https://devfeed.tech/topics/shell.md>)

Tags: [adb](<https://devfeed.tech/tags/adb.md>), [android](<https://devfeed.tech/tags/android.md>), [backup](<https://devfeed.tech/tags/backup.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [disk-space](<https://devfeed.tech/tags/disk-space.md>), [dry-run](<https://devfeed.tech/tags/dry-run.md>), [files](<https://devfeed.tech/tags/files.md>), [large-files](<https://devfeed.tech/tags/large-files.md>), [storage](<https://devfeed.tech/tags/storage.md>)

### AI overview

A tutorial on using ADB to transfer many large files from an Android phone when Android File Transfer is unreliable or disk space is limited. It explains pulling files in batches and safely deleting only files that were synchronized.

### Source excerpt

Trying to get a large number of files from your Android phone, but Android File Transfer freezing up? Here's what I learned trying to pull ~170 Gb from my Pixel phone.

## Verify Github profile link on Mastodon

DevFeed: [Verify Github profile link on Mastodon](<https://devfeed.tech/articles/verify-github-profile-link-on-mastodon-28701.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2022/11/26/mastodon-verify-github/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2022-11-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Mastodon](<https://devfeed.tech/topics/mastodon.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Website](<https://devfeed.tech/topics/website.md>)

Tags: [account](<https://devfeed.tech/tags/account.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [github](<https://devfeed.tech/tags/github.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [mastodon](<https://devfeed.tech/tags/mastodon.md>), [personal-website](<https://devfeed.tech/tags/personal-website.md>), [tips](<https://devfeed.tech/tags/tips.md>), [verification](<https://devfeed.tech/tags/verification.md>), [verify](<https://devfeed.tech/tags/verify.md>), [website](<https://devfeed.tech/tags/website.md>)

### AI overview

This tutorial explains how to verify a GitHub profile link on Mastodon when the main GitHub Pages domain already hosts a personal website. It uses a subpage containing Mastodon's verification tag and redirecting to the GitHub profile.

### Source excerpt

Looking to get a fancy verified checkmark on Mastodon for your Github account? This post details how I made this work. Steps # Before I get started, huge thanks to Simon Wilson for inspiring me with the original idea.

## Test React app on mobile without Wi-Fi

DevFeed: [Test React app on mobile without Wi-Fi](<https://devfeed.tech/articles/test-react-app-on-mobile-without-wi-fi-28700.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2022/11/19/react-local-development/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2022-11-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Development](<https://devfeed.tech/topics/development.md>), [USB](<https://devfeed.tech/topics/usb.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [development](<https://devfeed.tech/tags/development.md>), [hotspot](<https://devfeed.tech/tags/hotspot.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [offline](<https://devfeed.tech/tags/offline.md>), [react](<https://devfeed.tech/tags/react.md>), [tips](<https://devfeed.tech/tags/tips.md>), [usb](<https://devfeed.tech/tags/usb.md>)

### AI overview

This quick tutorial explains how to access a React development server from an Android phone without Wi-Fi by connecting the phone to a laptop with USB tethering.

### Source excerpt

Traveling by train or plane and want to test your react app on your mobile phone? This quick post explains how to access your react development server from your phone without a Wi-Fi connection.

## Preventing WorkManager crashes when updating Android worker classes

DevFeed: [Preventing WorkManager crashes when updating Android worker classes](<https://devfeed.tech/articles/the-curious-case-of-crashing-workers-28699.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2022/04/27/workmanager-crash/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2022-04-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [migration](<https://devfeed.tech/topics/migration.md>), [App](<https://devfeed.tech/topics/app.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [background-work](<https://devfeed.tech/tags/background-work.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [crash](<https://devfeed.tech/tags/crash.md>), [crashes](<https://devfeed.tech/tags/crashes.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [lifecycle](<https://devfeed.tech/tags/lifecycle.md>), [migrate](<https://devfeed.tech/tags/migrate.md>), [retry](<https://devfeed.tech/tags/retry.md>), [scheduled](<https://devfeed.tech/tags/scheduled.md>), [workmanager](<https://devfeed.tech/tags/workmanager.md>)

### AI overview

This tutorial explains how Android WorkManager can crash after an app update when pending work references a worker class that was removed, renamed, or moved. It discusses cancelling or migrating pending work and using a custom WorkerFactory.

### Source excerpt

WorkManager is great to schedule background work on Android. However, since scheduled work lives outside of the app lifecycle, you might run into unexpected crashes.

## No, your pull request does not need a review

DevFeed: [No, your pull request does not need a review](<https://devfeed.tech/articles/no-your-pull-request-does-not-need-a-review-28698.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2022/02/23/pull-request-reviews/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2022-02-23T00:00:00Z

Content type: opinion

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [Code quality](<https://devfeed.tech/topics/code-quality.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>)

Tags: [blogs](<https://devfeed.tech/tags/blogs.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [code-review](<https://devfeed.tech/tags/code-review.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [process](<https://devfeed.tech/tags/process.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [review](<https://devfeed.tech/tags/review.md>), [team](<https://devfeed.tech/tags/team.md>), [test-coverage](<https://devfeed.tech/tags/test-coverage.md>)

### AI overview

An opinion article argues that every code change should use a pull request, but not every pull request requires human review. Reviews are recommended for significant, non-critical changes, while trivial changes and urgent fixes may rely on automated checks or be handled without review.

### Source excerpt

In the past years, my thoughts on pull request reviews have evolved considerably. Given that creating and reviewing pull requests are a core part of our work, let's talk about those.

## Migrate existing library artifacts from JCenter to Maven Central

DevFeed: [Migrate existing library artifacts from JCenter to Maven Central](<https://devfeed.tech/articles/migrate-existing-library-artifacts-from-jcenter-to-maven-central-28697.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2021/03/24/migrate-artifacts-mavencentral/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2021-03-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Maven Central](<https://devfeed.tech/topics/maven-central.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [blogs](<https://devfeed.tech/tags/blogs.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [jcenter](<https://devfeed.tech/tags/jcenter.md>), [maven](<https://devfeed.tech/tags/maven.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [mavencentral](<https://devfeed.tech/tags/mavencentral.md>), [migrate](<https://devfeed.tech/tags/migrate.md>), [migration](<https://devfeed.tech/tags/migration.md>), [private-key](<https://devfeed.tech/tags/private-key.md>), [script](<https://devfeed.tech/tags/script.md>), [secrets](<https://devfeed.tech/tags/secrets.md>), [sonatype](<https://devfeed.tech/tags/sonatype.md>)

### AI overview

A tutorial for migrating existing library artifacts from JCenter to Maven Central. It covers enumerating versions, configuring GPG signing, setting up Sonatype credentials, downloading artifacts, adding missing metadata, and signing and uploading each version.

### Source excerpt

With JCenter shutting down, many are migrating to Maven Central. And while there are many posts on how to publish new artifacts, also all existing artifacts should be migrated away from JCenter.

## Share code between Android and Jvm in Kotlin multiplatform

DevFeed: [Share code between Android and Jvm in Kotlin multiplatform](<https://devfeed.tech/articles/share-code-between-android-and-jvm-in-kotlin-multiplatform-28696.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2021/03/17/share-code-kotlin-multiplatform/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2021-03-17T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Android](<https://devfeed.tech/topics/android.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [IntelliJ IDEA](<https://devfeed.tech/topics/intellij-idea.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [code](<https://devfeed.tech/tags/code.md>), [code-sharing](<https://devfeed.tech/tags/code-sharing.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [intellij](<https://devfeed.tech/tags/intellij.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>)

### AI overview

This tutorial explains how to share code between Android and JVM targets in a Kotlin Multiplatform project when some APIs require platform-specific implementations. It presents two source-set approaches and discusses their effect on IntelliJ autocomplete.

### Source excerpt

While Android supports most Java language features, it doesn't support every API that Java provides. On the other hand, Kotlin multiplatform only allows sharing code across all targets (commonMain), not a subset of targets (commonJvm).

## Migrating away from JCenter

DevFeed: [Migrating away from JCenter](<https://devfeed.tech/articles/migrating-away-from-jcenter-28695.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2021/02/04/migratingjcenter/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2021-02-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Maven Central](<https://devfeed.tech/topics/maven-central.md>), [Jfrog](<https://devfeed.tech/topics/jfrog.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [bintray](<https://devfeed.tech/tags/bintray.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jcenter](<https://devfeed.tech/tags/jcenter.md>), [jfrog](<https://devfeed.tech/tags/jfrog.md>), [library](<https://devfeed.tech/tags/library.md>), [maven](<https://devfeed.tech/tags/maven.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [migrate](<https://devfeed.tech/tags/migrate.md>), [repository](<https://devfeed.tech/tags/repository.md>), [transitive-dependencies](<https://devfeed.tech/tags/transitive-dependencies.md>)

### AI overview

A practical guide to migrating Gradle dependencies and published artifacts away from Bintray/JCenter after JFrog announced the repository shutdown. It explains replacing JCenter with Maven Central, testing clean builds, and restricting remaining dependencies to explicit repository declarations.

### Source excerpt

This week JFrog - out of nowhere - announced to completely remove their Maven repository. Since they'll pull it offline already by May 2021 (!!!) it's time to urgently migrate away.

## Year in review 2020

DevFeed: [Year in review 2020](<https://devfeed.tech/articles/year-in-review-2020-28694.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2021/01/05/yearinreview/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2021-01-05T00:00:00Z

Content type: opinion

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [timezone](<https://devfeed.tech/topics/timezone.md>)

Tags: [blogs](<https://devfeed.tech/tags/blogs.md>), [code](<https://devfeed.tech/tags/code.md>), [events](<https://devfeed.tech/tags/events.md>), [mastodon](<https://devfeed.tech/tags/mastodon.md>), [remote-work](<https://devfeed.tech/tags/remote-work.md>), [review](<https://devfeed.tech/tags/review.md>), [twitter](<https://devfeed.tech/tags/twitter.md>), [year-in-review](<https://devfeed.tech/tags/year-in-review.md>)

### AI overview

A personal review of 2020 covering remote work, family life, health, creative projects, professional speaking and writing, community contributions, and plans for 2021.

### Source excerpt

Well... I don't really know where to start this time. 2020 was quite the rollercoaster, with many downs... but fortunately also a few amazing ups. Let's focus on the good stuff.

## Test library releases using an in project Maven repository

DevFeed: [Test library releases using an in project Maven repository](<https://devfeed.tech/articles/test-library-releases-using-an-in-project-maven-repository-28693.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2020/12/02/inproject-maven/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2020-12-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Maven](<https://devfeed.tech/topics/maven.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Android Library](<https://devfeed.tech/topics/android-library.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-library](<https://devfeed.tech/tags/android-library.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [build](<https://devfeed.tech/tags/build.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [library](<https://devfeed.tech/tags/library.md>), [maven](<https://devfeed.tech/tags/maven.md>), [maven-repository](<https://devfeed.tech/tags/maven-repository.md>), [releases](<https://devfeed.tech/tags/releases.md>), [testing](<https://devfeed.tech/tags/testing.md>), [transitive-dependencies](<https://devfeed.tech/tags/transitive-dependencies.md>)

### AI overview

A tutorial explains how to test the release version of an Android library inside its project by creating and using a local Maven repository, avoiding deployment to Maven during development.

### Source excerpt

Short, powerful post on how to test the release version of libraries directly within a project without having to deploy them to Maven first. As a bonus, there will also be an open-source example showcasing all of this in action.

## Android library development - Dependencies

DevFeed: [Android library development - Dependencies](<https://devfeed.tech/articles/android-library-development-dependencies-28692.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2020/11/11/library-dependencies/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2020-11-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Android Library](<https://devfeed.tech/topics/android-library.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Library](<https://devfeed.tech/topics/library.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-library](<https://devfeed.tech/tags/android-library.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [build](<https://devfeed.tech/tags/build.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [library](<https://devfeed.tech/tags/library.md>), [maven](<https://devfeed.tech/tags/maven.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [transitive-dependencies](<https://devfeed.tech/tags/transitive-dependencies.md>)

### AI overview

This tutorial explains how transitive dependencies in Android libraries can create integration problems for applications, including conflicting dependency versions and incompatible dependencies. It introduces common approaches to resolving version conflicts and discusses the risks of forcing dependency versions.

### Source excerpt

Ever had a build failure while integrating an SDK? Wonder how you can avoid your SDK customers having dependency conflicts? How many transitive dependencies should your SDK have?

## Android library development - Modularization

DevFeed: [Android library development - Modularization](<https://devfeed.tech/articles/android-library-development-modularization-28691.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2020/11/04/library-modularization/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2020-11-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Android Library](<https://devfeed.tech/topics/android-library.md>), [Library](<https://devfeed.tech/topics/library.md>), [SDK](<https://devfeed.tech/topics/sdk.md>), [Development](<https://devfeed.tech/topics/development.md>), [Android Gradle Plugin](<https://devfeed.tech/topics/android-gradle-plugin.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Jetpack](<https://devfeed.tech/topics/jetpack.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-gradle-plugin](<https://devfeed.tech/tags/android-gradle-plugin.md>), [android-jetpack](<https://devfeed.tech/tags/android-jetpack.md>), [android-library](<https://devfeed.tech/tags/android-library.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [development](<https://devfeed.tech/tags/development.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [library](<https://devfeed.tech/tags/library.md>), [maven](<https://devfeed.tech/tags/maven.md>), [modularization](<https://devfeed.tech/tags/modularization.md>), [sdk](<https://devfeed.tech/tags/sdk.md>)

### AI overview

This article explains modularization challenges in Android libraries and SDKs, including missing submodule dependencies and unintended exposure of submodule APIs. It presents three approaches: publishing submodules to Maven, bundling them into a fat AAR, or creating a single-module SDK.

### Source excerpt

With modularization being all the hype, should you also modularize an SDK? Are fat aar files really needed? And how do you prevent internal APIs from being exposed on your public interface?

## Android library development - Getting started

DevFeed: [Android library development - Getting started](<https://devfeed.tech/articles/android-library-development-getting-started-28690.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2020/10/28/library-gettingstarted/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2020-10-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Android Library](<https://devfeed.tech/topics/android-library.md>), [SDK](<https://devfeed.tech/topics/sdk.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Library](<https://devfeed.tech/topics/library.md>), [Maven Central](<https://devfeed.tech/topics/maven-central.md>), [LineageOS](<https://devfeed.tech/topics/lineageos.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-library](<https://devfeed.tech/tags/android-library.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [development](<https://devfeed.tech/tags/development.md>), [getting-started](<https://devfeed.tech/tags/getting-started.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [library](<https://devfeed.tech/tags/library.md>), [maven](<https://devfeed.tech/tags/maven.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [maven-repository](<https://devfeed.tech/tags/maven-repository.md>)

### AI overview

This tutorial introduces Android library development and explains how it differs from app development. It covers a typical SDK project structure, building an Android Archive with Gradle, publishing libraries as Maven dependencies, and the implications of external dependencies.

### Source excerpt

Having switched to Android SDK development over the past year, I've run into quite a few interesting and unexpected challenges. So how does library development differ from app development?

[Next page](<https://devfeed.tech/sources/jeroen-mols.md?cursor=WyIyMDIwLTEwLTI4VDAwOjAwOjAwKzAwOjAwIiwgIjQ2MjBlNTM1LWVhODItNDk1ZS05MDkwLTRjMDMyODMyMzJmNyJd>)