Skip to content
Simple all-in-one system for small businesses that do things the right way.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Fixes forms, pulls purge. Apr 27, 2019
bin Fixes purge flake. Apr 27, 2019
docs Adds transfer subscription method. May 1, 2019
inkshop Updates syntax for live settings, turns down hi. May 18, 2019
.gitignore Adds unison ignores Apr 22, 2019
.python-version First commit of project Apr 15, 2019
.travis.yml Adds skips for now, fixes up flake, finishing for night. Apr 18, 2019
Dockerfile Pulls pygobject Apr 19, 2019
Procfile Moves newsletter queuing to background worker. Apr 27, 2019 Massive database cleanup, hacks to work around django encoding bug. Apr 26, 2019 Adds (ugly but working) polling for mailgun unsubscribes/complaints. May 16, 2019
docker-compose.yml It's working, end to end. :) Apr 26, 2019
env.sample Subscribe, confirm, unsubscribe, and love flow working. :) Apr 26, 2019
initial_data.yml.sample Subscribe, confirm, unsubscribe, and love flow working. :) Apr 26, 2019 Fixes flake. Apr 26, 2019
requirements.txt Adds useragent setup on link parsing. May 13, 2019
requirements.unstable.txt Adds useragent setup on link parsing. May 13, 2019

Inkshop is about people.

It's an all-in-one system for businesses and organizations that do things the right way. Batteries are included - manage your website, mailing list, store, and reporting all in one. It's free.

There are tons of good systems out there. Inkshop sticks out because it's people-focused. It treats you, your customers, and your visitors like people, not data points.

That means no creepy tracking, no big-data segmentation, and encryption baked-in to provide strong privacy protection for both you and your customers.

Feedback, improvements, and contributions are welcome. :)

Note on naming: It's entirely possible this project will be renamed Shopmonsters. And have monsters. We'll see. :)

Project Overview:

When it's at 1.0, this project will let you:

  • Manage an email list, using best practices for deliverability
  • Host a website, with pages and blog posts
  • Sell downloadable digital products
  • Sell hosted digital products, including customer authentication and secure data storage
  • Understand what pages are generating the most traffic
  • Create shortened URLs for sharing with social media
  • Show up on Google and other search engines with good visibility
  • Test different versions of content on your site
  • Share posts to social media
  • Protect your sanity against trolls and abusive people
  • Export and backup every bit of data in the system. Import it back again.

It won't ever let you:

  • Spam people who haven't fully consented to receive your mailings
  • Personally identify a single site visitor
  • Include creepy tracking software like the Facebook pixel.
  • Track whether people have opened the messages you've sent.
  • Break GDPR or similar laws

Some core principles that set it apart:

Real email.
Engaged subscription, built on active, positive consent and auto-unsubscribing.

Get amazing deliverability and response by sending emails only to people who have shown you that they're interested and want to keep hearing from you.

Built around the very best practices, and without all the bulk of tracking software, your site renders fast. Like you won't see the screen refresh fast. On mobile and desktop.

One of the big trends has been having a specialized system for everything, and plugging them into each other. But that means your and your customer's data is spread out in a dozen places you can't control. Inkshop bucks that trend, and puts everything you need in one user-friendly place.

Inkshop does things the right way, and so you'll automatically comply with current - and future - privacy regulation.

Current status:


I'm bootstrapping this project on my own site, Ink and Feet. It's currently running my mailing list on it (but not my site yet). However, unless you're a professional programmer or super risk tolerant, I wouldn't advise you move your list over to it just yet. It's been two weeks. Give it at least a month or two. :)

You can read more about the decision to move to inkshop in this open letter.

I'll be moving from a setup with:

  • Static site generated by inkblock, and served by Dreamhost and Cloudflare
  • Mailing list managed by Ontraport
  • Redirects and url shortening run by inkdots and Bitly.
  • Analytics from Google Analytics and Woopra
  • A/B testing from Optimizely
  • Digital product sales managed by Ontraport and Teachery

Right now, it handles:

  • Subscribe
  • Create mailing lists
  • Send message to a mailing list
  • Import data
  • Unsubscribe
  • Love and positive consent
  • Receive replies
  • Create pages and posts
  • Build templates for your website
  • Add links (with thumbnails)
  • Host static site resources


git clone
cd inkshop

cp env.sample .env
# Edit .env with your values

cp initial_data.yml.sample initial_data.yml
# Edit initial_data.yml with your basic information.

docker network create inkshop
docker-compose up
docker-compose run db bash
$ createdb inkshop -h db -U $POSTGRES_USER

# Load your initial data
docker-compose run inkshop python3 load_initial_data

Running tests

Tests are wrapped with polytester.


docker-compose run inkshop pt


docker-compose run inkshop pt --autoreload

Migrating from other services.


python3 import_ontraport_csv --subscribers subscribers.csv --hard_bounce hard_bounces.csv  --newsletter my-newsletter

Opinionated, and built on:

  • Pyca Cryptograpy for encryption.
  • Cloudflare for DNS, Caching, and Development redirects
  • Mailgun for email sending.
  • AWS S3 for uploads and static file serving.
  • Postgres for database.
  • Redis for caching and queuing.
  • Docker for encapsulation and dev ease.
  • Heroku for deployment.

Current working list

Next Small Projects:

  • Clubhouse enhancements
    • It is the ugliest site in the history of humanity. Full of heart, but not design or style. Clean it up.
    • handle subscribes between scheduling and sending (aka queueing outgoingmessages should just hold until the send time.)
    • delete account flow finished
  • Website enhancements
    • LESS support
  • Inkmail enhancements
    • add fallback reward gif
    • Move all inkmail helpers to tasks? Think about abstraction this.
    • Auto-delete any un-clicked confirmations after 7 days.
    • Handle if people click them later, make sure we never delete people who were already subscribed, etc.
    • GDPR/Data export

Big Projects:

  • Vault
    • Full system data export/import
    • Encrypted backups
    • Object history?
    • Personal data export
  • Inkdots
  • Inkmail - handle replies through the system, allow lookup in gmail.
  • Deployment/hosting

Open threads the architecture isn't decided on yet.

You can’t perform that action at this time.