Why is paid social media a bad idea?
It'll soon cost $7/month to fully participate on Twitter. Musk has announced they'll start reserving presence in the For You tab solely for paying customers from April 15th, limit participation in polls to just those customers, and soon also give preferential showing in replies as well. Legacy blue-checks will not be spared, and will i...
MRSK and Laravel
I've recorded a video version of this article which you can find on my YouTube channel. --- The 37signals folks released a new tool for deploying containerized web apps called MRSK. When we think about deploying containerized apps, we might think of Kubernetes, Docker Swarm, Hashicorp's Nomad, or any container service our cloud provide...
Using dotnet watch from a Docker container
Run this command from the directory of the web application. I don't recommend it as daily development workflow, as the container adds quite some performance overhead, but it's great if you need to check how something works when running in a container. docker run -it --rm --mount type=bind,src="$(pwd)",target=/app -p 5000:5000 -e "some_...
Setting the environment of a .NET Docker container
A .NET (web) app has a configuration file for each environment (appsettings.EnvironmentName.json). The application determines which environment it runs in through the ASPNETCORE_ENVIRONMENT, the DOTNET_ENVIRONMENT environment variable or through other means. Because of that, one build/publish of an application is able to run in every e...
Cut cloud before payroll
Every week seems to offer fresh staff cuts at the big tech companies right now. Several of the giants are already on their second rounds, and few would probably bet against a third after those. But as hard as it is on an individual level – and it's always hard! – there's a silver lining for the economy as a whole: Releasing captive tal...
Angry customers are a gift
The majority of customers will never tell you why they stop buying on their own. In fact, even if pressed, most will just smile, nod, and give you some face-saving reason for how “now is just not the right time” or “we are just going in a different direction”. Because that’s what avoids conflict. Thus, the only time you’re truly allowe...
Compressing a million-dollar commercial into $37,000
Last year, we hired a high-profile ad agency to work on our first-ever branding campaign for Basecamp. They were smart, funny... and entirely out of sync with our budget. So we ended up letting them go, hiring a new head of marketing, and doing it all ourselves. The problem was that our entire marketing budget for 2023 amounted to a "m...
.NET, Docker and Kubernetes
This post is a perpetual work in progress as I find new or easier ways to do things. Set up a web app Create a solution and add a Razor web application. I choose Razor for this example, as it easily demonstrates if everything works as expected. mkdir HelloDocker cd HelloDocker dotnet new sln --name HelloDocker dotnet new webapp --name ...
Getting started with .NET and Docker on Azure
Set up a web app Create a solution and add a Razor web application. I choose Razor for this example, as it easily demonstrates if everything works as expected. mkdir HelloDocker cd HelloDocker dotnet new sln --name HelloDocker dotnet new webapp --name HelloDocker.Web dotnet sln add HelloDocker.Web cd HelloDocker.Web dotnet user-secrets...
The unexpected connection between Rails and Bauhaus
Before Ruby on Rails, web development was a different reality. Enterprise languages and frameworks cornered the market. No automated tests, complex solutions to simple problems, and other issues. DHH, a Bauhaus-rebel for its time, has transformed this scenario by thinking design-driven, developer-first, and most importantly simple. For...
Subscribe and get the latest posts in your email
Daily digest, no spam, unsubscribe any time
Or simply get the latest posts RSS.
Search using free-text and press