I will explain the architecture of Native French Speech with some details. This is useful if you want to understand how some technologies can work together.
Let's begin with an overview.
The website is what is seen by Internet users when they access the domain name. Their browser receives HTML, JS and CSS produced by the server. Users can also access resources which are linked such as mp3 or PDF files. The website is designed to have fast load times.
The basis of the User Interface is Twitter Bootstrap.
The server is responsible to deliver the good things to the users' browser. It controls the actions of the user, use the database and storage, and finally prepare the views to be displayed.
The most important thing is user management. Users identities are kept in the database. When a user navigates on the website, pages are displayed with elements depending on the membership of the user.
The nice part is the cache system. This cache allows the server to render the pages faster.
To me there are two extraordinary features with Heroku. First you can scale your application with just a few clicks. When I notice a peak in traffic I just scale my application for a few hours. Second you can rollback your application to a previous deployed version. I used it a couple of times when a new version crashed the application. Heroku is an excellent choice for a start-up.
We use a PostgreSQL database with daily back-ups.
Resources are stocked on Amazon s3. This is an easy, secure and cheap way to have enough storage. You can store as much files as you want. You pay the traffic generated on Amazon s3 servers.
This decoupled architecture is great when you want to change a part or when you want to add another piece of software. We have big plans for the future. We are building a new server which will be used by Native French Speech server to serve additional features. Stay tuned!