ForumSite Announcements ► The long road to a TwoCans iOS and Android app
Nope, this isn't an April fool's joke. I tend to evaluate my short and long term goals in a quarterly fashion. Like a large faceless corporation. Now that the first day of 2018 Q2 is upon us, I've been looking back at the progress made on TwoCans in the last 3 months, which basically consisted of two things: getting the <crayon> tag working in the forum, and making the web experience more mobile friendly. I'll talk about the latter. While the technical progress was decent, the net result was only marginally effective. At the beginning of January, there were about 250 daily active users on a weekday. Recently there are about 300. That's growth, but how much of that is holiday lull and how much is a result of improving site usability is difficult to measure. And if it's because of improvements, whether this growth was a bump or a lasting change in growth rate is also unmeasurable.

The majority of web traffic switched from desktop/laptops to phone/tablets over half a decade ago. Certain sites still lend themselves well to the web format, particularly things that are likely to be linked to (blog posts, news, etc) but for a site that is essentially a social network, this isn't really acceptable anymore. Any web-only solution is really just a stop-gap.

An app has long been a goal, but there was really no viable long term plan to get there. Writing features for TwoCans is difficult enough, that having to essentially maintain two separate versions of it (web and mobile) is really unviable. Of course I (or even someone else) could sit down and write an app that makes direct HTTP requests to HTML pages and parse out the data and that would technically work. In fact, it already happened. Alternate implementations of Two Cans will always be brittle to new changes. Then multiply all these problems by 2 for having both Android and iOS. That Android app no longer works.

After trying to roadmap out how to exactly do this effectively, I keep coming back to the fact that TwoCans is a non-dynamic HTML/PHP site written in 2009 and aside from the occasional face lift, is still running on a 2009 stack. Everything is page-load based and there are nearly no API's and the ones that do exist (for the QA) are ad-hoc and cumbersome.

My goal is to fix this first and convert TwoCans into a One Page app-like website. I know this will likely come across as controversial to some, but it's time to move TwoCans forward. Furthermore the apps themselves (once they're finally written) will be written in JavaScript, and will share as much code as possible with the actual site itself. The backend API's that the main website will use will be the same ones as the apps. A shared codebase will solve a lot of problems that any Swift, Java, or Third-Party app would inherently have.

Furthermore, this will not be a rewrite (as in I will not write a new site and then pull a big lever). I'll be incrementally applying changes in real time and pulling dozens of small and medium-sized levers. The first phase of this will just be rewriting the current site features such that all content is fetched dynamically out of API's and all pages are generated via JavaScript rather than PHP. This is something I can do on a per-page basis and test incrementally.

Once this migration effort is done, then I'll be able to make sustainable Android and iOS apps that use the mostly the same JavaScript. I anticipate this first phase taking about 3 months before I'm able to even start with the apps.

Some of you may be happy about this news. I know some of you are now looking for your torches and pitchforks and buying a plane ticket to Japan. So I'll go ahead an address some of the comments and concerns that I can anticipate...

Reaction #1: "I like TwoCans looking kind of old. It has a quaint feel to it which gives it its allure."
I have the numbers. TwoCans is slowly dying. If the change in numbers from the mobile-friendly-css facelift was a bump or holiday lull, then it is still dying. If it was a change in growth rate, then that trajectory will only last a short time before technology continues to evolve and it becomes further outdated.

Reaction #2: "I'm happy using the browser on my phone for TwoCans"
When you survey a website that has no app about whether people prefer using the web or an app, the results will be skewed. I'm glad you like using TwoCans on your phone even though there's no app. I put a lot of work into it this past few months to make it better. But this isn't really how the world works anymore for most people.

Reaction #3: "This isn't necessary. If all you want is the site to seem like an app, on Android/iOS there's this cool trick where you can just..."
I guarantee you that less than 4 people will do whatever it is you are about to say. The existence of a technically viable solution does not make it viable overall for long term growth or a decent user experience.

Reaction #4: "I know Swift/Java/JavaScript. I can just make an app and you won't have to worry about maintaining it!"
Your app will break when I make even the most minor changes. Additionally, gating fixes and changes on updating 3rd party apps is not a burden I want to take on.

Please bear with me. The site will break from time to time.
  • Bugs will appear.
  • Random pages will inexplicably become uglier.
  • Ironically the mobile experience will probably get worse during this time before it gets better.

There are some features that I'll work into this migration effort that you can look forward to. Here's 3 major examples:
  • You'll be able to scroll through things rather than needing to click through pages. They'll just load dynamically. Things like your chat messages and long forum threads.
  • Your QA questions will also load dynamically and be collapsable rather than loading all the questions you've asked since the beginning of time all at once and crashing your browser.
  • The title bar at the top of the page will show notifications in real time. Not just new messages but also new QA answers or responses to forum threads you follow.
This is really cool. Best of luck on your effort!

"Change isn't good or bad. It just is."
Yo Blake,

It's not even April 1st in Europe yet, never mind America. You're living in the future over there; maybe you can drag TCAS into it as well.

The dedication and time you've sunk into this website is hugely appreciated by this long-term account-hopping user.

While I certainly lean towards many of the negative comments and feelings predicted in your message I recognise that this website is as much a toy for you as it is a social network for us and acknowledge your right to implement whatever changes you so wish.

For as long as you keep it ad-free and fund it out of your own pocket the userbase has no right to complain about anything.

So I hope you will have fun implementing your changes and any lively criticism left by myself or others during the process will hopefully be given with the above clearly understood..
This is really cool. Best of luck on your effort!

"Change isn't good or bad. It just is."

From OK Go:
Nothing ever doesn't change, but nothing changes much.
Hey, man, anything to help keep the ol girl kickin
Is there a patreon we can donate to to help this?
Nope! Money does not make things go faster or easier.
I am so exited I cant wait for this. Thank you for working so hard on this. I love your site and I can barely believe that someone would want to do this kind of a project without ads. Thank you again and I wish for it to work out smoother than you might expect.
Thanks Blake, the app is a great idea in my opinion. If the app doesn’t attract users by itself, then it will make the twocans experience easier on mobile and I can always bug people to try twocansandstring by downloading the app through my YouTube channel (I make ytps).
Hey blake I was wondering how the app was doing. I haven't heard anything in a while.
Well, the data that gets loaded each time you load page of forum posts is a lot different than it used to be. Check out the source; it's a lot of JSON for the post contents inserted into appropriate sections of the HTML. I reread the first post in this thread and got all fired up to write a rant/beg against the single-page format, but then realized how old that was. If it hasn't happened yet, that means... Blake is going to sneak it up on us with no further warning maybe it's not going to look exactly like that after all.
Ahhh. That makes sense. Thanks for that insight.
Forum > Site Announcements > The long road to a TwoCans iOS and Android app