+ HAVE MORE+ ASK FOR MORE
RODNEY LAB NEWS
  • Newsletter
  • Tutorials
  • Blog
RODNEY LAB NEWS
  • Newsletter
  • Tutorials
  • Blog

Subscribe to the newsletter

By subscribing, you agree with our Terms of Use and Privacy Policy.
READING TIME: 5 MINUTES

Rodney Lab Newsletter — March 2024Rodney Lab Newsletter — March 2024

blurry low resolution placeholder imageRodney Lab Newsletter

Font spacing

Font size

🖥️ Git out of Here! #

X is full of heated discussions and hot takes on which web framework you should be using, or which systems language is the only one you should consider learning in 2024. One tool that developers, in the most part, just accept, though, is git.

git has a steep learning curve, though pays dividends, not only as a tool for version control, but extra continuous integration and continuous delivery (CI/CD) benefits such as automated deploys and automated checks, offered by GitHub Actions, for example. GitButler and Graphite are just a couple of recent startups built for, git and I thought this might be an opportune time to run through some open source offerings worthy of a mention.

🍦 Soft Serve

Self-hosted git with Large File Support

Discovered this recently. Soft serve is built in Go by the Charm team (also behind the Glow Markdown highlighter) and a few other terrific Terminal tools. It was recommended to me for game development, with large assets. I deployed it on the local network to help sync updates to my home-made Rust CLI tools between devices. It is quick to set up, and although it is intended to run in the cloud, you can spin it up on a network-connected Raspberry Pi.

🍨 Soft (again)

Text-based user interface (TUI) for browsing git repos

The Soft Serve project is so good that it gets two mentions! Even if you are not looking for git self-hosting, try soft, which lets you browse your git projects from the command line. It has syntax highlighting, and like Lazygit (next up), feels much more convenient than using a GUI text editor. Just type soft, and you can tab between a file viewer, commits, the stash, branches, and tags.

😴 Lazygit

Convenient Text-based user interface for common git operations

Lazygit is another CLI git tool, also written in Go. It lets you view diffs, add files for commit, create commits and much more. And all with a nicer, more interactive interface than the standard git tool. I find the interface quicker and more comfortable than the git tab in VS Code, for example. Lazygit just got a makeover, so if you have been meaning to try it for a while, now is a good time!

🥞 git-stack

Open-source Rust CLI tool for stacking git commits

git-stack brings stacked git commits, which help you complete a sprint in small chunks. This makes it easier for the reviewer, as they can review smaller commits, as and when they come, taking less cognitive load. Graphite works along similar lines, though git-stack may better suit private projects, as you do not need to give anyone access to your code with git-stack. git-stack is also an open source project.

🪚 Bonus: GitHub Action Config Hack

GitHub Actions hack for developers with many repos sharing similar workflows

This last one is a hack, rather than a piece of tooling. If you are running a lot of projects with GitHub Actions workflows, keeping the actions up-to-date can become burdensome. Jon Gjengset recommended creating a GitHub Action config repo, which just contains GitHub Actions that you use in all your Rust projects, for example. Then in a new project that fits the template you created, run:

git remote add ci \
    https://github.com/your-profile/your-ci-repo
git fetch ci
git merge --allow-unrelated ci/main

Now you only need to keep track of GitHub action updates in the CI config repo. Add updates there, and then run that last git merge command on any other repos you want to bring up-to-date.

Hope you found those useful. What other git tooling do you use? Interested to hear about anything missing from this list.

🧑🏽‍💻 Follower Feedback — Trying Deno #

Been getting some good feedback on the Deno posts I have written, from starting out with Deno Fresh to using Deno’s marvellous Rust WebAssembly (WASM) integrations.

It was also interesting to see Luke Edwards mention he has just published his first full-fledged Deno project. Recounting the experience he highlighted Deno’s:

  • first-class, out-of-the-box TypeScript support,
  • no-fuss, setup-free formatting and linting; and
  • hassle-free deno.land package publishing.

See the tweet for the full rundown.

📢 Fun Finds #

  • Package Repo jsr.io — JSR is a new package repository, and an alternative to npm or deno.land, for TypeScript packages. Deno imports and node package.json both support it. There are not many packages in it right now (it is still early days), but what I love is that it has a little “works with” section for each package. For example, if you bring up the @oxi/result package, which brings Rust Results to TypeScript, you can see straight away that the package works with browsers, Deno, node Cloudflare Workers and Bun.
  • Linting — lychee: fast link checker written in Rust. Use the CLI to check for broken links on websites you manage or local HTML and Markdown files. It also works in GitHub Actions, letting you add a link-checking workflow to your CI/CD process.
  • Library SatCSS — Python CSS optimization by refactoring. You might consider this tool if you need to shave a few bytes off your delivered CSS. It checks your CSS for selectors that can be merged or refactored, without affecting the interpreted result.

👋🏽 Until next time! #

Hope there was something valuable in here for you. As always, reach out with feedback. Here are some links to recent content, which I hope you will find useful:

  • Jolt Physics raylib: trying 3D C++ Game Physics Engine
  • Rust Game Physics Engines: PhysX, Rapier, XPBD & Others
  • SvelteKit MDsveX Blog Starter
Did you find this issue useful?
  • 🖥️ Git out of Here!
  • 🍦 Soft Serve
  • 🍨 Soft (again)
  • 😴 Lazygit
  • 🥞 git-stack
  • 🪚 Bonus: GitHub Action Config Hack
  • 🧑🏽‍💻 Follower Feedback — Trying Deno
  • 📢 Fun Finds
  • 👋🏽 Until next time!

Subscribe to Email and RSS

If a friend or colleague forwarded this to you, and you like it, you can subscribe to receive the newsletter in your inbox, but you don’t have to! If you prefer, subscribe to the newsletter RSS feed or just even check back to see the latest newsletter issue once a month.

Ask for more

1 Nov 2022—Astro Server-Side Rendering: Edge Search Site
3 Oct 2022—Svelte eCommerce Site: SvelteKit Snipcart Storefront
1 Sept 2022—Get Started with SvelteKit Headless WordPress

Copyright © 2022 – 2025 Rodney Johnson. All Rights Reserved. Please read important copyright and intellectual property information.

  • Home
  • Profile
  • Plus
  • Newsletter
  • Contact
  • Links
  • Terms of Use
  • Privacy Policy
We use cookies. Some (optional) cookies help to work out which content visitors find most useful. Please click the “Options” button to make a choice. Learn more here.

Some cookies are set in order to move around the website and use its features. Without these cookies, services cannot be provided.

We use our own web analytics cookie to help us know which content is most useful and give us an idea of the audience. The cookie code creates a random identifier for each new session. It associates a time stamp, your browser user agent, locale and country with the session when that information is available. If you came here from another page, we will also associate that referring page with the session identifier when that information is available. Please see the Privacy Policy for further details. The web analytics cookie is optional.