entr
skaffold
Our great sponsors
entr | skaffold | |
---|---|---|
47 | 82 | |
3,937 | 14,605 | |
- | 0.8% | |
7.2 | 9.2 | |
about 2 months ago | 6 days ago | |
C | Go | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
entr
-
Meet entr, the standalone file watcher
entr ("Event Notify Test Runner"; GitHub), is a command-line tool written by Eric Radman that allows running arbitrary commands whenever files change.
-
How to build a website without frameworks and tons of libraries
I use something very similar on https://lunar.fyi and https://lowtechguys.com but I wouldn’t call this “simple” anymore.
They use Jinja templating, I prefer Slim (https://github.com/slim-template/slim#syntax-example) which has a more Pythonic syntax (there is plim [0] in Python for that)
I use Tailwind as well for terse styling and fast experimentation (allows me to write a darkMode-aware and responsive 100 line CSS in a single line with about 10 classes)
For interaction I can write CoffeeScript directly in the page [1] and have it compiled by plim.
I run a Caddy static server [2] and use Syncthing [3] to have every file save deployed instantly to my Hetzner server.
I use entr [4] and livereloadx [5] to rebuild the pages and do hot reload on file save. All the commands are managed in a simple Makefile [6]
———
You can already see how the footnotes take up a large chunk of this comment, this is not my idea of simple. Sure, the end result is readable static HTML and I never have to fight obscure React errors, but it’s a high effort setup for starters.
Simple for me would be: write markdown files for pages, a simple CSS for general styling (should be optional), click to deploy on my domain. Images should automatically be resized to multiple sizes and optimized, videos re-encoded for smaller filesize etc.
I have mostly implemented that for myself (https://notes.alinpanaitiu.com/How%20I%20write%20this%20blog...) but it feels fragile. I’d rather pay for a professional solution.
[0] https://plim.readthedocs.io/en/latest/
[1] https://github.com/FuzzyIdeas/lowtechguys/blob/main/src/rcmd...
[2] https://caddyserver.com/docs/command-line#caddy-file-server
[4] https://github.com/eradman/entr
[5] https://nitoyon.github.io/livereloadx/
[6] https://github.com/FuzzyIdeas/lowtechguys/blob/main/Makefile
- How to start a Go project in 2023
-
[Guide] A Tour Through the Python Framework Galaxy: Discovering the Stars
Try entr for fast reloading. Another one is hupper.
- The Unix process API is unreliable and unsafe
- How do you develop cloud-native applications locally on Kubernetes?
-
What are the not-so-obvious tools that you don't want to miss?
entr
- Test driven development is adhd dream
-
wgo: a live reload tool for Go
How does it compare to entr?
-
Show HN: I built a tool to get instant test results (
To rebuild a static site every time the build script[2] (py) or a Jinja2 template (j2) changes.
[0]: https://github.com/eradman/entr
[1]: https://jvns.ca/blog/2020/06/28/entr/
[2]: https://gist.github.com/polyrand/3bed83897658806bd490e1d44df...
skaffold
-
You've just inherited a legacy C++ codebase, now what?
A nice middle ground is using a tool like Google's Skaffold, which provides "Bazel-like" capabilities for composing Docker images and tagging them based on a number of strategies, including file manifests. In my case, I also use build args to explicitly set versions of external dependencies.
While I am in a Typescript environment with this setup at the moment, my personal experience that Skaffold with Docker has a lighter implementation and maintenance overhead than Bazel. (You also get the added benefit of easy deployment and automatic rebuilds.)
I quite liked using Bazel in a small Golang monorepo, but I ran into pain when trying to do things like include third-party pre-compiled binaries in the Docker builds, because of the unusual build rules convention. The advantage of Skaffold is it provides a thin build/tag/deploy/verify layer over Docker and other container types. Might be worth a look!
Kudos to the Google team building it! https://skaffold.dev
-
Simplifying preview environments for everyone
To get a similar experience of preevy up, first we’ll need to split the build and deploy using process or alternatively employ tools that orchestrate build-tag-push-update-sync flow like Skaffold/Tilt.
-
Set up docker and kubernetes in ubuntu 22.04
We will be using docker and microk8s from Canonical. For running our software during development, we will be using skaffold which is a great tool developed by Google.
-
How do you develop cloud-native applications locally on Kubernetes?
I have used both Skaffold and Devspace. I prefer the latter.
-
Launch HN: Moonrepo (YC W23) – Open-source build system
I wonder if it has some overlap with https://skaffold.dev/.
-
Building a RESTful API With Functions
K3d and Skaffold for local development
-
Does anyone else feel like this?
skaffold.dev - build in k8s - no more asking for the database password. All the plumbing to the backend is just done so it's easier for them to test and demo any branch
-
Which environments do you use/support?
To access you service your have several options (it depends on teams the preferences) you can use scaffold https://skaffold.dev/ or for simple case kfwd https://github.com/GiGurra/kfwd. Last for everything that is normally expose on internet you would have an Ingress and use external-dns as you would in prod.
-
Approaches in Cloud Development Ergonomics
This approach works great when it’s feasible, which is usually at a very early stage in the life of the application where it’s still small and tenable. There’s some tooling that lets you extend this honeymoon phase by letting you do it more easily, like docker-compose, Skaffold, or Tilt. However, at a certain point, even if you’ve written whatever scriptage is needed to actually configure and run the latest stable version of all of your components together, you’re going to hit some sort of ceiling: if you’ve got a large database, or some CPU-heavy computations, or you’re relying on some managed service that can’t be containerized, this approach soon becomes untenable.
-
Connecting a local container with a Kubernetes cluster
Another dev optimization is the conditional rebuilding of a container. For example tools like devspace and skaffold support syncing filles which have changes, but which don't require recompiling.
What are some alternatives?
argo-cd - Declarative Continuous Deployment for Kubernetes
devspace - DevSpace - The Fastest Developer Tool for Kubernetes ⚡ Automate your deployment workflow with DevSpace and develop software directly inside Kubernetes.
watchexec - Executes commands in response to file modifications
okteto - Develop your applications directly in your Kubernetes Cluster
telepresence - Local development against a remote Kubernetes or OpenShift cluster
helm - The Kubernetes Package Manager
flux2 - Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.
Bazel - a fast, scalable, multi-language and extensible build system
garden - Automation for Kubernetes development and testing. Spin up production-like environments for development, testing, and CI on demand. Use the same configuration and workflows at every step of the process. Speed up your builds and test runs via shared result caching
tilt - Define your dev environment as code. For microservice apps on Kubernetes.
ingress-nginx - Ingress-NGINX Controller for Kubernetes
tilt-extensions - Extensions for Tilt