Need help with w31slack?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

201 Stars 5 Forks MIT License 40 Commits 1 Opened issues


A proof-of-concept Slack client for Windows for Workgroups 3.11 with tests.

Services available


Need anything else?

Contributors list

# 351,217
39 commits

icon w31slack

A proof-of-concept Slack client for Windows for Workgroups (WFW) 3.11 with tests. As there are no native HTTPS APIs for the ancient version of Winsock on WFW, a HTTP-to-HTTPS proxy like this one I've written is needed.


Screenshot of the app

Alt text

Video of the app in action with a modern Mac Slack client on the side for verification.

Development and compilation setup

To compile and run the application, you'll need Visual C++ (VC++) 1.52 running on a 32-bit Windows OS up to Windows 10. Windows 3.1 is not required. I use a Windows 2000 VM as it is the oldest and lightest 32-bit Windows OS with full Virtualbox support.


Coding the app can thus be done on a native Mac or Windows OS with modern text editors.

Even though a 16-bit app can run on modern 32-bit OS, I still recommend occasional testing on a native Windows 3.1 system as VMs can be too perfect sometimes.

  1. Install Windows 2000 VM on a host PC. If you want to share files out of the Win 2K VM, set the network to
  2. Install VC++ 1.52
  3. Set up Virtualbox shared folder between the host and Win 2K WM
  4. Map a network drive to the local shared folder
  5. VC++ 1.52 can see a network drive and open the
  6. Just click Project -> Rebuild all.



binary should be available in the same directory.

Executing the unit tests

I wrote a custom unit test framework as I could not find a testing framework for C89 that'll work with VC++ 1.52. 2 Go Programs acting as mock servers are required to be run to test the network APIs.


  1. go run mockprox.go
    will reply the GET and POST requests by replaying the contents of the
  2. go run replay.go 30000
    will replay whatever was received on a pure TCP socket connection.
  3. Edit the file
    to suit your system especially the
  4. Open the file
  5. Build Project as per normal and run the binary in debug mode. You'll see the following

Running the app

  1. Make sure to grab the binary and sample config files from the release directory.
  2. First create an app for your associated workspace.
  3. Add these permissions to your app
  4. Go to "OAuth & Permissions" section and get your OAuth Access Token. The URL should be
  5. Start up http-to-https-proxy
  6. Modify the file
    configuration file to suit your needs. Fields in this order, token, server polling rate in milliseconds, IP address of proxy, port of proxy, number of messages to get to display.
  7. Start up the
    . The binary and example config file is in the
  8. Profit!

Workaround to large numbers of users and channels

The app may fail if the number of users and channels in the workspace are huge. That results in too large a Json reply. To mitigate this, you can provide a file containing the id and channel/user combination for manual loading into app.

  1. Create the file
    in the same directory as the binary.
  2. Fill in line by line in this format
    channelID channelname
  3. Users are also filled in the same file and format
    userID username

Take a look at the sample file


To get the IDs, you can use these curl commands to get the Json and manually populate the file.

curl -H "Authorization: Bearer xoxp-821448956678-818775000324-818797461140-4d175b4e14b948d630f195e51478bb0e" -X GET ""

curl -H "Authorization: Bearer xoxp-821448956678-818775000324-818797461140-4d175b4e14b948d630f195e51478bb0e" -X GET ""


  1. Building Win16 GUI Applications in C
  2. Win16 Example Application

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.