@snap_as was also the first product we launched separately from @write_as, and it was built on the assumption that an entirely separate codebase would be best.
The idea was that the applications would share common components (https://github.com/writeas/web-core), but would have separate application codebases and storage.
So, starting with @submit_as, we built the functionality into the Write.as codebase. There was still plenty of copy-paste involved, but we were able to launch this new product much more quickly.
Now instead of creating separate apps first, we're building them into Write.as first and then separating out functionality over time.
This instance is only for A Bunch Tell projects.
This might've been a good theory for building modular applications (as I'm hoping to), but in practice causes a ton of headaches for maintenance and end user experience.
Little problems came up right away:
- How do we share user data across platforms?
- How do we create common UI patterns while keeping distinct branding on each platform?
- How do we reconcile slightly-different uses of those shared libraries across platforms?