This site is built using Ghost Blog Framework, it is pretty cool an simple. They used to be database free but that has change (databases are good).
The blog runs locally on a machine somewhere, to find it we use nginx, and we use that to cache stuff from the blog (like for example extra image files). The caching is also provided by nginx.
Currently there is no CDN prepared for this blog, but maybe at some point later on I create one for it.
The front end will be constantly changing and evolving. Right now we are at a point that we will not be doing a lot of changes to the backend, so we will likely continue to evolve the UI.
I worked with Android and Web quite some time now, and one thing that catches my attention is that on Android I can consume information from several providers, and I'm in charge of making it look pretty.
Sadly, on the Web world, your team needs to know everything about how to leverage backend and frontend, furthermore they need to be good at making animations using CSS, SASS, LESS and good structures on HTML or JADE. And on top we have that JS is becoming more and more opinionated (before I had to talk about modules and revealing modules), with the inclusion of classes and build tools all over the place.
Some stories in the blog have different functionality, therefore they need different tools and resources. Nowadays there is a tool called Webpack that makes this part easy for us developers.
.setAttribute('data-state', state); to change several child classes.
There is this huge divide between people wanting to do everything in one language, which is always a solid bad idea, against the rest. I'm against moving everything in one place, it is the one thing we have learning in the past century of software development. Of course not everything is so transparent, because they do have less clutter when it comes to importing multiple elements.
But animations should be mostly done where they're available, so if it's about switching classes in a single component (a component is a conceptual thing, which means a single atomic piece in your UI).
Some components communicate with each other. Conceptually speaking this code goes in a higher level somehow. This way components can be maintained in one place and the Blog theme someplace else that includes the global events.
After much reading I'll be using ReactiveJs which is part of the Reactive Programming project to declutter my API consumption.
Reactive programming can really help reduce the amount of crap generated when parsing JSON from the web.
Right now there hasn't been much of DevOps going on, which is pretty wrong. I have no analytics of how my servers are doing. The roadmap to fix this is as follows:
- Continuous Deliver using my StriderCD server
- CDNs for Private Content
- Find a way to move Ghost's database
- Cron jobs to update Front End code
- Using webpack
- Feature toggles
- Different bundles per story
- Components for the homepage
We have a lot to do, and it will not be simple to do. But we need to have a flexible and evolving UI that is also light and simple for the users. I hate it when I open my cellphone and look for my blog to quick check for something I'm coding and it the load slows to a crawl.