I'm trying to create a simple live chat using node.js, socket.io and express. I've gotten this to run over my local network, but is there a way for someone else to connect through an entirely different internet connection without me paying for server space or getting a static IP? Thanks for any help
Take a look at DynDNS, either on your side, or on your ISPs side.
What you want is a Record pointing dynamically to your IP. Then, in your Routers menu you need to find an option to enable port-forwarding
from port 80
(or 443
if you use SSL) to your Computer and the Port of your Node App.
Then you can point a CNAME
Record from any Domain you own to the DynDNS-Domain and share it with your contacts.