Ideas found online, where I’ve defined an action to be taken.

An Ansible reference sheet

The idea for an Ansible reference (or cheat) sheet was reborn last week at the Linuxhotel; a few students who knew they would be receiving a tmux mug as a gift when leaving asked why we don’t give out Ansible mugs.

One person approached me and said mugs are impractical: most people already have their favorite beverage mug, mugs have little space for information, and they typically find their way into the back of some kitchen cabinet. Why don’t we consider a nicely-printed DIN A3 sheet on good (plastified) paper? I thought that a good idea.

Ansible cheat sheet

And so began the work of gathering the information I wanted to present and packing it onto a double-sided A3 page. I’d have very much liked to add details for our advanced course, but there’s simply not enough space on these two pages. (If your eye sight is very good you might be able to read it when printed on A4.)

So, here’s the reference card, and please let me know if you have feedback.

DNSViz at home

One of the most useful DNS and DNSSEC debugging utilities I am aware of is DNSViz – a tool for visualizing the status of a DNS zone:

it provides a visual analysis of the DNSSEC authentication chain for a domain name and its resolution path in the DNS namespace, and it lists configuration errors detected by the tool

It has enabled me to to “see” issues with domains which are otherwise very difficult to determine, and it is a site I strongly recommend in DNS/DNSSEC courses.

a small portion of a domain visualization

DNSViz presents a domain on a Web page and I can hover over individual elements to see details about them, as the example above demonstrates. (See the full output here.) Domains are typically visualized from the root down to the domain I wish to test. DNSViz keeps a history (which was unavailable for a long time) so I can “walk back” in time looking at previous analyses.

DNSViz is also exciting to use on your own DNSSEC-signed domains, and note that this excitement extends to a possible requirement for smelling salts: will the page display portions in red (i.e. bogus or kaputt)?

That was not a joke. :-)

I wanted to try DNSViz in a self-hosted environment, as the software is open source, and opted for the easiest mechanism: a docker image.

I also cloned the dnsviz/dnsviz repository as I later discovered the program can produce the “HTML format”, i.e. exactly the view we see on at DNSViz, and I copied the required CSS and JS files into their own directory:

$ ls -1 web/

Then I assembled the commands (probe, graph) needed to produce the PNG, and HTML (SVG is also possible), and massaged the HTML to use the assets from the web/ directory:

#!/usr/bin/env bash

docker run --network host -v "$PWD:/data:rw" dnsviz/dnsviz \
	probe -A -a . --nsid --pretty-output -o $z.json $z

docker run -v "$PWD:/data:rw" dnsviz/dnsviz \
	graph -r $z.json -T png -O

docker run -v "$PWD:/data:rw" dnsviz/dnsviz \
	graph -r $z.json -T html -O --rr-types SOA,NS

sed -I "" -e 's,file:///usr/share/dnsviz/css,web,' \
	  -e 's,file:///usr/share/dnsviz/js,web,' $z.html

And I have the program generate the visualization:

$ ./
Analyzing .
Analyzing net

The resulting PNG and HTML differ here, because for the HTML I’ve limited the RR types to SOA and NS, but otherwise they contain the same information. The probe phase produces a JSON file containing serialized responses to queries for the specified domain.

I can specify my own resolvers, ask the program to query authoritative servers only, and use the “print” subcommand to assess specified domain names based on the content in the JSON file. If need be, I can also use an alternate trust anchor, permitting the tool to be used in private roots as well.

I thought interesting what Guillaume-Jean Herbiet mentioned to me: they use a self-hosted version of DNSViz to test the semantic validity of signed zones before publication.

I then install the program so that I no longer need docker.

$ brew install dnsviz graphviz

Peter DeVries points out that the tool also has a “query” command which gives textual results which are relatively easy to understand. In the following example I query for a domain and we see then chain of trust from the root (.) down through (net) to the zone I’m interested in:

$ dnsviz query
. [.]
  [.]  DNSKEY: 8/951/256 [.], 8/18733/256 [.], 8/20326/257 [.]
  [.]    RRSIG: ./Algorithm.RSASHA256/20326 (2022-12-20 - 2023-01-10) [.]
net [.] [.]
  [.]  DS: 8/35886/2 [.]
  [.]    RRSIG: ./Algorithm.RSASHA256/18733 (2022-12-22 - 2023-01-04) [.]
  [.]  DNSKEY: 8/57635/256 [.], 8/35886/257 [.]
  [.]    RRSIG: net/Algorithm.RSASHA256/35886 (2022-12-20 - 2023-01-04) [.] [.] [.]
  [.]  DS: 13/37440/2 [.]
  [.]    RRSIG: net/Algorithm.RSASHA256/57635 (2022-12-19 - 2022-12-26) [.]
  [.]  DNSKEY: 13/17125/256 [.], 13/37440/257 [.]
  [.]    RRSIG: (2022-12-15 - 2023-01-14) [.]
  [.]  A:
  [.]    RRSIG: (2022-12-10 - 2023-01-09) [.]

Did I mention DNSViz is a brilliant tool?

Notes to self: KeePassXC

More and more frequently, when I ask friends and family (people with a mainly non-computing background) how they manage their passwords their eyes cloud over, and I then feel the need to tell them that they ought to apply good password hygiene. (I tend to mensplain a bit.) As such I’ve been looking much more deeply into KeePassXC as a multi-platform, Open Source, and very decent password manager.

I ran away from 1Password many years ago when, IIRC, forced cloud upon their users and also converted to a subscription model and settled for EnPass at the time. Aside from a number of UI quirks in EnPass I’ve been happy enough with it, and I got it at the time when they had a purchase model; I believe that has meanwhile also changed to a subscription model. I want to be able to recommend a program which has a fixed price (Open Source is fine) and a UI which will hopefully remain somewhat consistent. I think KeePassXC matches the requirement.

These notes are intended as a reminder to myself of the features and possibilities I discovered in KeePassXC. (Start with some screenshots if you like.)

the database

KeePassXC databases (*.kdbx; file format explained) are protected with either a password or a key file or both. The desktop app and the CLI program can optionally create these key files, and they contain 128 byte of random data which is used to augment the password. These key files can also be an image, a love letter — any file which doesn’t change. Think of it as a really complicated password that is read from a file, so you don’t have to remember or type it into your master password field.

I would likely suggest a key file created with random data and have a backup of the key file printed on paper (using a font with which I can easily differentiate zero and oh and one and ell …):

$ keyfile=kp.key
$ dd if=/dev/urandom bs=128 count=1 status=none of=$keyfile

$ openssl dgst -sha1 $keyfile
SHA1(kp.key)= f4e8b1dca0f2833d0596ba60664999fc0ca99a09

$ openssl enc -base64 -in $keyfile

$ openssl enc -A -base64 -in $keyfile |
       qrencode -l Q -o $keyfile.png

QR-code of base64 of the key file

In order to recover the binary key file I could scan the QR code, copy the resulting text (or even enter it manually from the base64 representation if necessary), and decode the base64 back into the key file’s data with

$ openssl enc -d -A -base64 -in /tmp/paper -out kp-new.key

$ openssl dgst -sha1 kp-new.key
SHA1(kp-new.key)= f4e8b1dca0f2833d0596ba60664999fc0ca99a09

KeePassXC databases can be synchronized via, say, syncthing, Dropbox, or a file share, etc., but the key files ought to be kept separately. Key files are also supported by KeePassium on iOS and possibly also by other apps such KeePassDX and KeePass2Android on Android, and Strongbox on iOS.

Hardware key chooser when opening database

In addition to password and/or key file, the desktop apps can use a supported Yubikey (I chose a 5c nano) with HMAC-SHA1 to add additional entropy to the chosen password. While this works very well it has the disadvantage of not being supported by the mobile apps I looked at, meaning it would be a desktop-only feature. Also, it’s important to have a backup Yubikey (5c NFC here) for the feature; I wouldn’t want a lost/broken Yubikey to lock me out of the database!

Sadly, KeePassXC relies on external file synchronization, which might not be trivial to set up. As Alexander notes, the original Keepass2 (and Keepass2Android) are able to open database files directly from a WebDAV URL, and merge changes that have been made from a different device, but KeePassXC is likely the more modern choice with more features.

Python module

The Python pykeepass module interacts with KeePass databases (supports KDBX3 and KDBX4), and as such also works with KeePassXC. I can create a database (this is how I created the jane.kdbx database for the examples on this page), create and find entries, add entries, change / add passwords and entry details, etc.

#!/usr/bin/env python3

from pykeepass import PyKeePass, create_database
import secrets
from xkcdpass import xkcd_password as xp

kp = create_database("jane.kdbx", password="tt", keyfile="kp.key", transformed_key=None)

g_work = kp.add_group(kp.root_group, "Work")
g_play = kp.add_group(kp.root_group, "Play")
g_social = kp.add_group(g_play, "socialmedia")

wordfile = xp.locate_wordfile()
mywords = xp.generate_wordlist(wordfile=wordfile, min_length=5, max_length=8)

password = xp.generate_xkcdpassword(mywords, acrostic="tonic", delimiter="-")

entry = kp.add_entry(g_work, "gmail", "myusername", password)
print(entry)  # Entry: "email/gmail (myusername)"

e = kp.add_entry(g_social, "Mastodon", "janej", secrets.token_urlsafe(32))

e.url = ""
e.tags = [ "fediverse", "mastodon" ]
e.notes = "account created in 2018 with 2FA"

emails = [ "", "" ]
e.set_custom_property("mail", "\n".join(emails))    # custom property expects newline-separated
e.set_custom_property("uid", "12345678")            # pykeepass > 4.0.3 will have: protect=True

# there doesn't appear to be a way of exiting cleanly without the .save()


keepassxc-cli is a command-line tool for KeePassXC from which I can manipulate its databases.

$ kpc open -k tt.key jane.kdbx
Enter password to unlock jane.kdbx:
Passwords> help

Available commands:
add                 Add a new entry to a database.
analyze             Analyze passwords for weaknesses and problems.
attachment-export   Export an attachment of an entry.
attachment-import   Imports an attachment to an entry.
attachment-rm       Remove an attachment of an entry.
clip                Copy an entry's attribute to the clipboard.
close               Close the currently opened database.
db-create           Create a new database.
db-edit             Edit a database.
db-info             Show a database's information.
diceware            Generate a new random diceware passphrase.
edit                Edit an entry.
estimate            Estimate the entropy of a password.
exit                Exit interactive mode.
generate            Generate a new random password.
help                Display command help.
ls                  List database entries.
merge               Merge two databases.
mkdir               Adds a new group to a database.
mv                  Moves an entry to a new group.
open                Open a database.
quit                Exit interactive mode.
rm                  Remove an entry from the database.
rmdir               Removes a group from a database.
search              Find entries quickly.
show                Show an entry's information.
Passwords> generate

Using the --yubikey option, I can also unlock a Yubikey-protected database from the command-line:

$ kpc ls other.kdbx -y 2
Enter password to unlock other.kdbx:
Please present or touch your YubiKey to continue.

In the example which follows, I attach an image to the database and then display all details (also the protected fields) of an entry.

$ alias kpc=/Applications/
$ kpc attachment-import -k kp.key jane.kdbx Mastodon mascot mastodon-mascot.jpg
Enter password to unlock jane.kdbx:
Successfully imported attachment mastodon-mascot.jpg as mascot to entry Mastodon.

$ kpc show jane.kdbx -k kp.key --show-protected --show-attachments Mastodon
Enter password to unlock jane.kdbx:
Title: Mastodon
UserName: janej
Password: REH1I0xz_iEM2VYvhiwfah5Rt1RROxqErmejlaoKY6A
Notes: account created in 2018 with 2FA
Uuid: {95275776-9a50-11ed-add7-f01898ef9fe7}
Tags: fediverse,mastodon

  mascot (3.0 KiB)

It’s not actually documented anywhere that I could find, but keepassxc-cli actually reads passwords from stdin. (tt is the database password and the dice ware subcommand creates four words as in ”subpar amusement crayfish footrest”.)

$ (echo tt; kpc diceware -W 4) | kpc edit -k tt.key jane.kdbx -p gmail
Enter password to unlock jane.kdbx:
Enter new password for entry:
Successfully edited entry gmail.

I could add -q to the command to completely silence prompts for database and entry’s new password.

the UI

screenshot of KeePassXC with the programmatically-created entry shown

  1. favicon downloaded from within the entry (add URL, hit download), but there is a menu for downloading URLs automatically, not possible here b/c it’s a fake address
  2. I didn’t understand the color square, but it’s a password-quality indicator
  3. Additional attributes. In future the Python module will be able to add protection (such as shown in the comment for 4.)
  4. Attachment names
  5. Group folders as created within Python

SSH agent

KeePassXC implements support for an SSH-agent, and I find it works very well. What I particularly appreciate is the possibility to override the agent socket path as I have a bit of a convoluted setup here which sets a specific path on login.

KeePassXC’s implementation can add SSH keys when unlocking a database, it can automatically remove keys from the agent after a selectable time, and it can optionally remove all keys it’s added when the database is locked (i.e. closed). Note there’s a setting with KeePassXC which can optionally ask for confirmation before using a key, but that requires the separate SSH ask-pass utility — this is not something that KeePassXC can implement as there’s no feedback from the agent itself.

There’s a very good writeup of how to manage SSH keys with KeePassXC.


KeePassXC has built-in support for Time-based One-Time Passwords (TOTP). These are passwords which use the current time as a source of uniqueness. I prefer to use an app which does TOTP than to use SMS for two-factor authentication (2FA).

I have some doubts about the security of having TOTP within the password manager (I use Authy and not the support built-in to EnPass), so I asked on Mastodon:

Is there a consensus on whether it is better/safer to have TOTP generation done within the password safe (e.g. KeePassXC) or rather externally using a separate program (e.g. Authy)?

I think I’m summarizing correctly when I quote Thomas, who responded:

It’s better to have it on a separate device. But it’s also better to have it in any place than to not have it at all.

That’s probably very good advice.

Further reading

Over the past 11 months, I’ve been lucky enough to travel to six beautiful countries - here are my thoughts:

Over the past 11 months, I’ve been lucky enough to travel to six beautiful countries - here are my thoughts:

Seville (Spain): Absolutely stunning, relaxed atmosphere, amazing food, amazing weather, lots to see and do. 10/10.

Athens (Greece): So much culture and history in every direction, amazing food, great weather, some parts of the city a little dirty which takes you out of the magic. 8/10.

Oslo (Norway): Beautiful environment, but not much culture. People also not the friendliest and everything extremely expensive. 3/10.

Istanbul (Turkey): Rich in culture, lots to see and do, food is amazing, but people constantly trying to harass you on the street. 4/10.

Munich (Germany): Beautiful city, lots of culture and history, great weather, friendly people, good food. 9/10.

Innsbruck (Austria): Absolutely stunning scenery, friendly people, good food, lots to see and do. 9.5/10.

submitted by /u/Spiritualrose98
[link] [comments]

5 Self-Hosted Document Management System Applications

5 Self-Hosted Document Management System Applications

Imagine you have a collection of important papers, documents, and files scattered all over your home. They're in different drawers, folders, and cabinets, and you often struggle to find the one you need when you need it. It's frustrating, time-consuming, and can even lead to stress. It's time to get organized with a self-hosted document management system.

What is a Document Management System?

Think of a document management system (DMS) as a fancy digital filing system. It's a tool that helps you store, share, and keep track of all your important documents. You might hear people mention DMS when they talk about systems for managing content. It's a piece of the bigger puzzle called enterprise content management (ECM), and it connects with things like sorting digital files, scanning papers, organizing work, and taking care of records.

Self-hosted DMS solutions are often chosen for their data privacy, customization options, and the ability to maintain control over sensitive documents. Here are a few DMS options you can try self-hosting yourself!

5 Self-Hosted Document Management System Applications


Lightweight document management system packed with all the features you can expect from big expensive solutions.

Try with Docker

Teedy proves to be quite practical in keeping digital documents well organized. It's straightforward, free from unnecessary complexities and simply does its job effectively. The open source nature of Teedy makes it accessible to individuals seeking digital file organization and small businesses in need of an efficient document management solution. It's a tool worth considering for your document organization needs.

5 Self-Hosted Document Management System Applications


Docspell assists in organizing your piles of digital documents, resulting from scanners, e-mails and other sources with minimal effort.

Try with Docker

Docspell takes a unique approach by focusing on automatically extracting and attaching metadata from your documents, such as correspondent information, dates, and tags. You can just toss your documents into a digital pile without worrying about where to place them. Later on, you can easily create different organizational structures based on this metadata, making it a breeze to locate any document you need. Docspell even uses OCR (Optical Character Recognition) to analyze text and find information within your documents, further simplifying the process of keeping things organized.

5 Self-Hosted Document Management System Applications


Paperless-ngx is a community-supported open-source document management system that transforms your physical documents into a searchable online archive so you can keep, well, less paper.

Try with Docker

Paperless-ngx stands out as a popular choice in the self-hosted community when it comes to managing personal documents. Paperless-ngx has two main components: one that monitors a designated folder and adds your documents automatically, and another that offers a simple web interface for efficiently managing and locating your scanned documents. Each document can be labeled with details like its source, content, and tags for convenient grouping. Unlike traditional folders, Paperless-ngx offers flexibility, allowing a single document to have multiple tags. It also handles date tracking automatically, making document organization effortless and ensuring that it remains a popular choice in the community.

5 Self-Hosted Document Management System Applications


Mayan EDMS is a Free Open Source Electronic Document Management System, coded in the Python language using the Django web application framework and released under the Apache 2.0 License. It provides an electronic vault or repository for electronic documents.

Try with Docker

Mayan EDMS was originally a project to store PDFs but has grown into a complete document management system. You can easily upload documents from different sources, organize them with tags, and find what you need using a simple search. Features include customizable metadata, batch uploading, document preview, and version control. It's a resourceful tool for organizing and retrieving your digital documents.

5 Self-Hosted Document Management System Applications


Open Source Document Management System designed for scanned documents.

Try with Docker

Papermerge is all about collaboration and flexibility. Being open source, it prioritizes transparency and community input, allowing anyone to enhance its source code. It supports multiple users with tailored permissions, and its OCR technology extracts text from scanned documents for easy searching. With a user friendly REST API, you can customize the system to your needs and import documents from various sources. Its efficient full text search lets you find documents effortlessly, and it preserves document versions to prevent data loss.

Quick tip: If you're thinking about getting a scanner for your documents, here's a tip: auto feeding scanners can be a bit more challenging to keep clean compared to flatbed ones. This is especially important if you're scanning pages with stuff like waxy crayons that could leave marks on the scanner sensors. In situations like that, you might want to consider going for a flatbed scanner instead. I learned this the hard way when I was scanning my kids' artwork. Hope this saves you some hassle and money!
5 Self-Hosted Document Management System Applications

Sign up for Noted

Maximize Your Homelab Potential with Self-Hosting and Open-Source Solutions.

Email sent! Check your inbox to complete your signup.

No spam. Unsubscribe anytime.

Final Notes and Thoughts

I've given all the options above a try, and in the end, I found that Paperless-ngx really suits my personal needs the best. What I appreciate most about it is how easy it is to organize my documents using tags, and the fact that it can automatically keep an eye on my documents folder is a game changer. That's not to say the other choices are without merit, but Paperless-ngx just seems to click better with how I like to manage my documents. It's all about finding the right fit, and for me, Paperless-ngx is the one.

The WITI Recommends Edition

Noah here. We are coming up on our fifth birthday (!!!), and for about four of those years, we’ve been thinking about building out a recommendations site off the back of our nearly 1500 editions. Well, we are finally making it happen. I’m happy to announce Why is this interesting? Recommends, which pulls together over 1,000 products, books, software, and other kinds of recommendations from across our many emails from the past five years. 

Check out WITI Recommends


Why is this interesting?

WITI is a long-term experiment. We are never quite sure where things are headed, and we continue to do it because we really enjoy it. This year, we brought on an amazing editor in Louis Cheslaw and have been thinking about some other new ideas to extend the concept and community. This is one of them. We have a bunch of thoughts on where we’d like to take this, but in the spirit of launching early, we wanted to get it out into the world. As you might expect, there are affiliate links where possible, and we will make a buck or two if you buy something, so click and purchase away. (Making WITI more financially sustainable is another goal for the year.)

The core of it is pretty simple: we sucked the product recommendations out of all the emails, scraped the product pages for descriptions and images, and categorized the whole thing. Most of the manual work was made possible thanks to AI, which, while taking lots of heat these days in the world of media and beyond, is amazing at solving stupidly annoying problems like how to pull the recommendations out of some 1,000,000+ words.

If you’re interested in the nitty-gritty, I wrote a bit about it in a recent BrXnd newsletter (that’s where I write about marketing and AI stuff). The gist is that AI makes a fantastic fuzzy interface: a simple way to transform unstructured data (like many essays in HTML) into structured product recommendations. This process isn’t overly complex (minus the scaffolding to set up the pipelines). Mainly, it’s asking the AI to extract product recommendation links from a given post. I posted the full prompt over on BrXnd Dispatch, as well as a bunch of other execution details if you’re interested.

Back to the site, I particularly like the pages that pull together many tips, like this one from our most popular post, The Go-Bag Edition. This points to a direction I generally would like to head with things, which is to pull together multiple recommendations into a list of sorts. I didn’t quite get it done for this release, but the idea is that if you’re looking for a great pen or a novel, you could find it easily. (For now, search does work pretty well.)


It’s also fun to see all the various things I’ve linked to over the years.


There’s much more work to do, and we’re open to feedback. So click around, buy some stuff, and let us know what you’d like to see.

Thanks for reading,

Noah (NRB) & Colin (CJN)

Why is this interesting? is a daily email from Noah Brier & Colin Nagy (and friends!) about interesting things. If you’ve enjoyed this edition, please consider forwarding it to a friend. If you’re reading it for the first time, consider subscribing.

Created an extensive site for short men. Looking for testers and feedback.

Good evening r/shortfashion . I recently created a rebranded site for short men and would love for some of you to check it out, maybe test it out if you are interested and give some feedback. The vision is a community centered around the short male experience and those who "show love to them" (i.e. friends, relatives, mentors, colleagues, girlfriends, wives, etc). It is open to all. There is some more work to be done, but it is officially live. Free to join and use.

The Site HAS a:

  • Community Forum (with category tags)
  • Experience Blog (with category tags)
  • Fashion Blog (with category tags)
  • Marketplace (Buy/Sell/Trade - Clothes, Shoes, Outerwear, Accessories for shorter men)
  • Store Links (stores which cater to or are popular with shorter men with ability to review)
  • Famous Short Men Gallery (searchable, ability to leave comments)
  • Merch Shop
  • E-Book Area (eBooks coming, free and non-free titles)
  • Members can collect cool badges and gift badges
  • Members can award standout posts
  • Members can react to posts with emojis to show where they stand

The Site is NOT for:

  • Supporting Defeatism (though honesty and constructive language is encouraged)
  • Hate (though being HONEST about life experiences and feelings are ABSOLUTELY supported)

A lot of work went into creating this. You could call it a passion project. But as with all sites, maintenance will be its own endeavor. As it is rebranded, there is some more cleanup and some content adjustment to be done. New features will be added over time when I am able to do so. There will be some critics and that's fine, but I felt an independent community like this is missing online. Thanks to anyone who checks it out!

submitted by /u/shortkingz_ to r/shortfashion
[link] [comments]

How To Clean White Sneakers the Right Way

How To Clean White Sneakers the Right Way

by · Sneakers | May contain affiliate links (what's this?)

Nothing’s worse than dirty shoes, especially previously white ones. Today, we’ll discuss how to clean white sneakers properly.

Photo by hdcaputo /

Remember when you first took those beautiful white sneakers out of the box? They were made of pristine, classy ivory-toned leather. Or, perhaps, an immaculate light beige canvas — the way you always wanted them to look.

And that’s why it’s important to know how to clean white sneakers properly.

Remember, they’re white sneakers — not gray sneakers, not white with spots. Keeping them clean is a big part of ensuring their versatility. And besides, nothing looks less grown-up than dirty sneakers.

Whether you’re sporting retro-cool Converse high-tops or luxurious Common Projects (or any cool alternatives), keep them clean. Here’s how. 

How To Clean White Sneakers — Any Kind

The two most common and classic types of white sneakers are canvas shoes and leather sneakers. We’ll discuss how to clean both kinds, starting with leather.

Cleaning White Leather Shoes

Here’s what you’ll need to get your white leather shoes squeaky clean:

  • Saddle soap. Fiebings saddle soap for white leather is a cost-effective option
  • Horsehair dauber brushes (you’ll likely need two)
  • Warm water
  • Leather conditioner. I like Venetian shoe cream because it is neutral and works on all leather colors.
  • Undyed microfiber cloths. You can also use paper towels or old white clothes.
New Republic Kurt Leather Sneakers frontNew Republic Kurt Leather Sneakers front

Alright, let’s get cleaning!

First, Remove the Laces and Get Any Excess Dirt Off

By removing the laces, you can clean the eyelet stays more thoroughly. Trust me, dirt loves to get into those areas.

Moreover, you don’t want your leather-specific ingredients getting into your laces.

To remove excess dirt, start by clapping the outsoles of both shoes together. You can do this by holding each by their collar, then literally banging them against each other.

This ensures that bigger dirt particles don’t scratch the surface of the leather while you’re cleaning. Even more, your soap can focus on more important dirt particles. It can tackle those teeny tiny ones trying to imbed themselves onto the shoe surface.

Lather Up!

As with cleaning your own body, you’ll want to create soap suds to clean your leather. This allows the soap molecules to disperse effectively, dividing and conquering the dirt and grease.

Open your saddle soap and fill the top up with warm water. Take your brush and dip it into the soap. Then, dip it into the water-filled top and make circles until you start to see a healthy, thick lather.

Soap up Your Shoes

Take your lathered-up brush and apply it to the first shoe you’re cleaning. Make sure to go one shoe at a time.

Go in small circular motions all throughout the surface of the shoe. If there are darker, stained areas, start there, then move outwards.

You’ll want to be pretty aggressive when you get to the eyelets, the outsoles, and any other seams and stitches. There are loads of nooks and crannies for dirt to get into in these particular places.

Make sure to lather up the entire upper.

Wipe the Lather Off of the Shoes

Now, take your cloth or towel and gently wipe off all of the suds.

Once all of the lather is gone, take another dry cloth and start drying off the surface. 

You want to be liberal about your cloth usage here. If you continue to use a cloth that’s at capacity, you’ll just end up reapplying water and soap to the surface.

This is why it’s a good idea to use cloths over paper towels. Clothes are more economical and better for the environment.

Clean Up the Other Shoe

Repeat all of these steps on the other shoe. Leather him up, then wipe him down.

This way, one shoe isn’t sitting in suds longer than the other.

Use a Leather Conditioner

I know this is a gross comparison, but remember that leather is skin at the end of the day. Your skin needs moisturizer, and your hair needs conditioner.

So, your white leather shoes do as well.

Apply your leather conditioner to another clean cloth.

Then, apply it to the shoe in small, circular motions, just as you did with the soap. 

Once you’ve got the cream on the entire surface, take a horsehair brush to the eyelet stays and seams. This ensures the conditioner gets into the tightest spots.

Buff the Surface

Last but not least, take your horse hair brush and swipe the surface of the leather once or twice. This way, you get rid of excess conditioner.

How To Clean White Canvas Sneakers

Now that you know how to clean your white leather, let’s get into how to clean white canvas sneakers.

Cuffed chino pantsCuffed chino pants

 Of course, you’ll need a slightly different arsenal for this.

  • Again, microfiber cloths, paper towels, or old white clothes
  • A toothbrush
  • Warm or cool water. Just make sure it isn’t hot 
  • Laundry detergent
  • Baking soda

Again, You’ll Start by Removing the Laces and Clapping Your Shoes Together

Get that excess dirt off! 

Canvas is more absorbent than leather. If you leave loose dirt on it, it will find crevices to cling to when it gets wet.

Once you’ve banged the shoes together, give the surface a quick toothbrushing.

Create a Solution Using Laundry Detergent

Take a teaspoon of detergent and one cup of water. Mix them up with a stirrer to create suds.

Remember, suds are key.

I also like to shake the solution up in a mason jar.

Apply Your Solution to Your Shoe (Again, One at a Time)

Dip your clean cloth into the solution. As you did with your leather cleaner, make small circular motions all throughout the shoe’s surface. 

And just as you did with your leather shoes, feel free to rub more vigorously on seams, the eyelet stays, and the outsoles. 

If your shoe has a rubber toe cap, like Converse Chucks do, feel free to take the toothbrush to it.

Wipe Up and Let Dry

Now, take a dry cloth or paper towel and soak up any excess soap and water from the canvas surface. 

Again, be liberal with your clothing usage. Once the cloth is fully saturated, use a new one.

Once you’ve dried each shoe as much as possible, keep them in a dry, cool room with ample ventilation for 24 hours.

Baking Soda Spot Treatment

If, after all of that, you still see stains on your shoes, baking soda is your friend.

You can create a stain remover by mixing one part baking soda and two parts water. Take your toothbrush, dip it into the mixture, then gently brush the stain out.

Be patient. For stubborn stains, I’ve noticed that I’d often have to brush for a good ten minutes, then wait for another 20 to see the stain fade.

Are you wondering how to clean white cloth sneakers or even white mesh sneakers? You’d do it exactly as you would with canvas shoes.

With mesh, I’d make more use of the toothbrush since there’s more topography on the surface.

Cleaning the Laces of Your White Sneakers

If your laces are over-the-top grimy, falling apart even, just get rid of them. There’s no point in wasting energy on a lost cause.

Otherwise, cleaning shoelaces is an easy process.

Start by taking your toothbrush and brushing it off. Again, it’s important to get rid of excess dirt. 

Then, take bleach and water (three tablespoons of bleach to a gallon of water) and submerge the laces. This should take about ten minutes.

New Republic Kurt Leather Sneakers with cuffed pantsNew Republic Kurt Leather Sneakers with cuffed pants

Hang them in a cool, dry area, or simply take a hairdryer to them. Don’t throw them in the dryer.

If they don’t need bleaching, you can just throw them in the washing machine with your other clothes. Just make sure to put them in a mesh bag so they don’t unravel or get caught on anything. 


Here are some commonly asked questions about cleaning white sneakers!

Can You Wash White Sneakers in the Washing Machine?

Usually, no, but some new models are built to withstand the washer and dryer. However, they often have special instructions. For example, many come with a special washer bag to throw them in before tossing them in the machine.

What’s the Best Way To Clean White Shoes?

White leathers need leather soap and conditioner, while you can clean canvas and cloth shoes using laundry detergent. Clean them one by one.

Conclusion: Keep Your Whites White

Looking good (and put together) is all in the details.

White sneakers are menswear classics, but they won’t look particularly classic if dirty. Even more, knowing how to clean white sneakers ensures they last longer.

Have you ever cleaned your white sneakers, or do you prefer to send them to a professional? Would you try doing it yourself now that you know how? Let me know in the comments! We love hearing from you!

Send emails to spaces in Google Chat

This announcement was part of Google Cloud Next ‘24. Visit the Workspace Blog to learn more about the next wave of innovations in Workspace, including enhancements to Gemini for Google Workspace.

What’s changing

We’re introducing a new way to manage your communication, including emails, in Google Chat. 

After a space manager generates an email address for a space, members (or anyone in your domain with the email address) can send or forward any email to that space. This provides a great way for teams to easily triage or discuss email content with stakeholders within the space. The email will appear as a clickable card showing a snippet of the email in the designated space. 
Generate email in space settings

Generate email in space settings
Email card in the space

Email card in the space

Who’s impacted 

End users 

Why you’d use it 

Email integration into spaces allows you to choose the communication style that works best for your team. Once the email content is present, members can discuss content or take various actions like triaging and assigning them to different members of the space. 

Getting started 

  • Admins: There is no admin control for this feature. Visit the Help Center to learn more about sending emails to spaces in Chat.
    • Note: existing Google Group policies are respected. For example, if you have restricted group creation in your organization, those users will also be restricted from generating emails for spaces in Chat.
  • End users: 
    • As a space manager, you can create the space’s email address by clicking the name of the space in the top left corner > Space settings > Email section > select Generate email 
    • Once the email address is created by a space manager, all space members can send/forward emails to the space 
    • To send an email to the space, include the space email address in the “to” field of your email composer (in Gmail, Outlook, etc.) 
    • Click on ‘View message’ to view the entire email message in Google Groups 
    • You can change the email address for your space by going to advanced settings. 
    • Visit the Help Center to learn more about sending emails to spaces in Chat. 

Rollout pace


  • Available to all Google Workspace customers