How we ran #SaveTheInternet for free

How we ran #SaveTheInternet for free

Back in April ’15, the Telecom Regulatory Authority of India (TRAI) released a draft recommendation that threatened the fundamental openness and neutrality of the internet in India.
A few of us got together to try and raise awareness on this issue on Net Neutrality, and it ended up being one the biggest online movements in India in recent times.

We had over 1 million emails sent to TRAI in a span of just two weeks.

I was one of the people behind the movement, and helped build and design the website.

What is surprising, and relatively unknown, is that this entire campaign ran entirely for free. We used only free and open services to plan, coordinate and execute this movement.

This talk is about how we used such tools effectively, and my learnings on how relatively low tech solutions can have far reaching impacts.

52aae2406795f7e00339a19a22e9b38f?s=128

Karthik Balakrishnan

November 01, 2015
Tweet

Transcript

  1. #SaveTheInternet How we ran for free* *not click bait, for

    real.
  2. Karthik Balakrishnan !karthikb351

  3. Karthik Balakrishnan !karthikb351 TL;DR - I made the website.

  4. The
 Timeline

  5. 27 March 2015 TRAI releases their paper

  6. 27 March 2015 TRAI releases their paper 1 April 2015

    “We’re f*cked” - Nikhil Pahwa
  7. 27 March 2015 TRAI releases their paper 1 April 2015

    “We’re f*cked” - Nikhil Pahwa 11 April 2015 savetheinternet.in launches
  8. 27 March 2015 TRAI releases their paper 1 April 2015

    “We’re f*cked” - Nikhil Pahwa 11 April 2015 savetheinternet.in launches 22 April 2015 Rahul Gandhi makes a scene in Parliament
  9. April 24 2015

  10. April 24 2015 1.05 million emails

  11. April 24 2015 1.05 million emails Wait, what just happened?

  12. Just an Email

  13. TRAI asked 20 questions

  14. TRAI asked 20 questions How hard can 20 answers be?

  15. TRAI asked 20 questions How hard can 20 answers be?

    Spoilers: Turns out, pretty hard.
  16. Low friction, one/two click solution How do you get people

    to email 20 answers?
 
 

  17. Build a form. Simple.

  18. Mailgun? Mandrill? hand-rolled mail server?

  19. Mailgun? Mandrill? hand-rolled mail server? - SPIF/DKIM

  20. Mailgun? Mandrill? hand-rolled mail server? - SPIF/DKIM - Risk of

    becoming a Change.org campaign
  21. Mailgun? Mandrill? hand-rolled mail server? - SPIF/DKIM - Risk of

    becoming a Change.org campaign - Cannot prove authenticity
  22. Mailgun? Mandrill? hand-rolled mail server? - SPIF/DKIM - Risk of

    becoming a Change.org campaign - Cannot prove authenticity - Money?
  23. The Solution

  24. The Solution(s)

  25. People send the email themselves

  26. People send the email themselves Genius, no?

  27. Attempt 1 - The mailto: hack

  28. Attempt 1 - The mailto: hack - Encode everything in

    a giant mailto: link
  29. Attempt 1 - The mailto: hack - Encode everything in

    a giant mailto: link - GET request to the compose URL of Gmail/Yahoo/Hotmail
  30. Attempt 1 - The mailto: hack - Encode everything in

    a giant mailto: link - GET request to the compose URL of Gmail/Yahoo/Hotmail - FATAL: URL length limit
  31. Attempt 2 - ZeroClipboard.js

  32. Attempt 2 - ZeroClipboard.js - Flash hack to copy body

    to clipboard
  33. Attempt 2 - ZeroClipboard.js - Flash hack to copy body

    to clipboard - Couple with mailto: encoding (minus body)
  34. Attempt 2 - ZeroClipboard.js - Flash hack to copy body

    to clipboard - Couple with mailto: encoding (minus body) - FATAL: Flash on mobile
  35. Attempt 3 - Semi-automatic

  36. Attempt 3 - Semi-automatic - Step-by-step copy body to clipboard

  37. Attempt 3 - Semi-automatic - Step-by-step copy body to clipboard

    - mailto: link (minus body)
  38. Attempt 3 - Semi-automatic - Step-by-step copy body to clipboard

    - mailto: link (minus body) - SUCCESS: though increased number of clicks
  39. Seamless on mobile

  40. Seamless on mobile Mobile accounted for 58% of our traffic


  41. Seamless on mobile <Insert mobile-is-the-future gyan here> Mobile accounted for

    58% of our traffic

  42. The Answers

  43. 20 detailed, well-reasoned answers

  44. 20 detailed, well-reasoned answers They all can’t be the same

  45. Prevent spamming messages

  46. Prevent spamming messages - Lawyers helped draft the answers

  47. Prevent spamming messages - Lawyers helped draft the answers -

    Randomly chose one from a list
  48. Prevent spamming messages - Lawyers helped draft the answers -

    Randomly chose one from a list - Flat doc, easy to edit
  49. The amazing pickOne();

  50. The amazing pickOne(); Simple and powerful.

  51. The amazing pickOne(); Simple and powerful. Seriously, we used it

    everywhere.
  52. None
  53. Tech Stack

  54. Tech Stack The real reason you came for this talk.

  55. The stack is absolutely boring.

  56. The stack is absolutely boring. And that’s exactly why it’s

    noteworthy.
  57. Completely static site

  58. Completely static site - Styles and code inline, everything else

    on CDN
  59. Completely static site - Styles and code inline, everything else

    on CDN - Easy to maintain and test
  60. Completely static site - Styles and code inline, everything else

    on CDN - Easy to maintain and test - Grunt slowed us down tremendously - Ditched it after the first couple of hours
  61. Completely static site - Styles and code inline, everything else

    on CDN - Easy to maintain and test - Grunt slowed us down tremendously - Ditched it after the first couple of hours PR still not merged (sorry @SohamKamani)
  62. GitHub, no points for guessing

  63. GitHub, no points for guessing - Easy to use online

    editor for answers
  64. GitHub, no points for guessing - Easy to use online

    editor for answers - Lent authenticity - everyone in the campaign was a nobody - me included
  65. GitHub, no points for guessing - Easy to use online

    editor for answers - Lent authenticity - everyone in the campaign was a nobody - me included - Open review
  66. GitHub, no points for guessing - Easy to use online

    editor for answers - Lent authenticity - everyone in the campaign was a nobody - me included - Open review - Anyone could participate, and people did
  67. Heroku's free tier single dyno for hosting

  68. Heroku's free tier single dyno for hosting - Node.js app

    serving a static site
  69. Heroku's free tier single dyno for hosting - Node.js app

    serving a static site - Amazing performance, not a single hiccup
  70. Heroku's free tier single dyno for hosting - Node.js app

    serving a static site - Amazing performance, not a single hiccup - Why Heroku?
  71. Heroku's free tier single dyno for hosting - Node.js app

    serving a static site - Amazing performance, not a single hiccup - Why Heroku? - Git deploys
  72. Heroku's free tier single dyno for hosting - Node.js app

    serving a static site - Amazing performance, not a single hiccup - Why Heroku? - Git deploys In hindsight, could have gotten away with GitHub Pages.
  73. Issue Tracking

  74. Issue Tracking a.k.a. - Why mobile web is broken
 


  75. Issue Tracking a.k.a. - Why mobile web is broken
 


    
 Seriously broken
  76. Google form for issue tracking

  77. Google form for issue tracking - Github Issues need you

    to sign up
  78. Google form for issue tracking - Github Issues need you

    to sign up - We didn’t want to flood it
  79. Google form for issue tracking - Github Issues need you

    to sign up - We didn’t want to flood it - Easy to view issues in a spreadsheet
  80. Mission Control

  81. Mission Control We just had everyone in a Slack team


    
 

  82. Mission Control We just had everyone in a Slack team


    
 
 Nothing more to say other than Slack is amazing.
  83. Counting Emails

  84. Counting Emails How many were sent via our campaign?


  85. Make a Gmail account

  86. Make a Gmail account BCC ourselves in every email, easy

    peasy
 
 

  87. Make a Gmail account BCC ourselves in every email, easy

    peasy
 
 
 What could go wrong?
  88. TIL+TIFU - Gmail has an incoming rate limit

  89. Solution?

  90. Solution? Make more Gmail accounts, distribute mails
 
 


  91. Solution? Make more Gmail accounts, distribute mails
 
 
 Wait

    a second, how many is “more”?
  92. Uhm...

  93. Uhm... Six accounts.

  94. Uhm... Sixty accounts.

  95. We thought we’d be lucky with 10k emails

  96. We thought we’d be lucky with 10k emails Nothing could

    have prepared us for 1 million
 
 

  97. The “techie” in me would have killed this campaign

  98. The “techie” in me would have killed this campaign and

    that is sort of the “message” of this talk.
 
 

  99. Learnings All personal opinions/observations, obviously

  100. Speed speed speed

  101. Speed speed speed - Viral - You lose people every

    second
  102. Speed speed speed - Viral - You lose people every

    second - Planning would have resulted in over engineering
  103. Speed speed speed - Viral - You lose people every

    second - Planning would have resulted in over engineering - Reactive approach worked well (somewhat, lost some email :( )
  104. The tools are super accessible

  105. The tools are super accessible - All this was run

    entirely on free tools
  106. The tools are super accessible - All this was run

    entirely on free tools - Heroku, Gmail, Github, Slack, Twitter, Facebook, YouTube - all free
  107. The tools are super accessible - All this was run

    entirely on free tools - Heroku, Gmail, Github, Slack, Twitter, Facebook, YouTube - all free - Lack of resources aren’t an excuse anymore
  108. People are awesome

  109. People are awesome - People from around the country -

    discussions, contributions, GIFs
  110. People are awesome - People from around the country -

    discussions, contributions, GIFs - Kids from Hyderabad emailed asking if they could use our logo for a poster

  111. People are awesome - People from around the country -

    discussions, contributions, GIFs - Kids from Hyderabad emailed asking if they could use our logo for a poster
 
 - Professor from a university offered to give us college resources for free
  112. People are awesome - People from around the country -

    discussions, contributions, GIFs - Kids from Hyderabad emailed asking if they could use our logo for a poster
 
 - Professor from a university offered to give us college resources for free This warrants its own talk, really.
  113. Participatory democracy

  114. Large scale impact

  115. Large scale impact - We made national news within 48

    hours
  116. Large scale impact - We made national news within 48

    hours - Mark Zuckerberg responded in 72 hours
  117. Large scale impact - We made national news within 48

    hours - Mark Zuckerberg responded in 72 hours - International news in less than a week
  118. Large scale impact - We made national news within 48

    hours - Mark Zuckerberg responded in 72 hours - International news in less than a week - Flipkart backed out of Airtel Zero
  119. Large scale impact - We made national news within 48

    hours - Mark Zuckerberg responded in 72 hours - International news in less than a week - Flipkart backed out of Airtel Zero - Multiple companies exited Internet.org
  120. Multi-crore deals thwarted

  121. Multi-crore deals thwarted by a 22 year old college student

    who sometimes misspells Nuetrality 
 
 
 

  122. Multi-crore deals thwarted by a 22 year old college student

    who sometimes misspells Neutrality 
 
 
 

  123. Multi-crore deals thwarted by a 22 year old college student

    who sometimes misspells Neutrality 
 
 
 
 What a time to be alive.
  124. Thank You

  125. Thank You !karthikb351

  126. Thank You !karthikb351 PS: I have got a few stickers

    left
  127. #SaveTheInternet )FMQVT http://bit.do/help-sti !karthikb351