Get a man-year work done in a week!

Nikolay Tsenkov
5 min readJun 21, 2019

If you are thinking about building a product with Pinterest-like web UI and a relatively monolithic type of content AND you want something scalable —don’t start from scratch! Vizu can save you 6–12 man-months of work.

What is Vizu?

Vizu comes as a source code for a complete (basic) web cms product (backend & admin + frontend, optimized for all screens). Out of the box you get:

  • user accounts
  • a single content type
  • Pinterest-like home page with masonry layout of the available content on the platform
  • paywall for creating new content
  • comments/reviews/posts on the content pages
  • upvoting of content
  • trends
  • etc. etc. (read through for a more complete list of features)

Aside of the source of the product, Vizu packs all the details (devops configurations) for a highly scalable deployment of the app.
(implemented in Kubernetes)

These 2 web apps have been implemented using Vizu, so far:

Features

High-level topology of Vizu’s architecture

Here are Vizu’s main features:

  • Authentication/registration of users by email and/or social and assigning of user roles and permissions + registration waitlist with subscription form for collecting emails;
  • System/mass emailing module(email confirmation, password reset, notifications on upvotes and comments, etc.) with support for Amazon SES and other providers;
  • Universal frontend app (called web-front in my architecture): both Client and Server page rendering are supported. The way it works is: 1st request is SSR -> then SPA kicks-in on the client and all consecutive navigations render there. UI’s optimized for, both, mobile and desktop users;
  • Markdown-based content;
  • Backend (called api-gateway within Vizu) is a separate application from the web-front and both scale independently, too;
  • Admin panel (part of the backend), allowing you to CRUD content, users, permissions, configurations etc., as well as building new Content Types (with auto-generated API’s source code). It’s based on strapi and you can write plugins for it, too;
  • Payment: by default, content creation is behind a paywall (useful for apps similar to trial.land, job boards, etc.). A flexible Discounting engine is also available. Paylike.io integration is built-in, but payment is already abstracted and can easily be switched to another gateway/provider;
  • Trends: controlled with several variables, who’s weights are set from the admin panel (For example if someone on your team says “I want the upvotes from today to have more impact on content popularity than number of posts” — there is a coefficient-variable that can be changed from the admin and on next recalculation of popularity — it will be used). Most such choices are abstracted as application-global variables stored in the DB and editable through the admin panel;
  • Cron module: each api-gateway instance regularly checks for crons to be executed, through a smart mechanism of cron job specs stored in the db and closing a semaphore to execute safely from other running instances;
  • Slack notifications for events (like user registration, sales, content posting, etc.);
  • A/B testing (ingress’/loadbalancers are managed by Skipper, which allows multiple options on directing traffic for A/B testing, there aren’t any A/B testing features within the product yet);
  • Auto backup of the db on a set interval;
  • System credentials security and well organized system configuration: all secrets (api keys, passwords, etc.) are stored securely within the cluster without hardcoded credentials in the code;
  • Detailed Analytics logging: the built-in implementation is for Amplitude analytics and it logs a rich variety of data from which you can create pretty much any graph you would need for the first year of operation. Addition of extra event types is very simple. The specific target analytics platform is well abstracted and can easily be switched for another (Mixpanel etc.). Basic Google Analytics is also enabled by default;
  • Fast, 0-downtime (red-green) deployment: both api-gateway and web-front take no more than couple of minutes to deploy/update deployment. At scale;
  • Portable to all major PAAS/IAAS cloud providers — AWS, Microsoft Azure, Google Cloud, etc.;
  • and other features.

The project is at over 1k commits and is based on:

- Kubernetes, Node, MongoDB, Strapi, Vue, Nuxt, Bootstrap, Stylus.

What Vizu is NOT?

Vizu is not a no-code, drop-in solution for any type of project.

It’s a software project that you can easily mold into your specific product. But this alteration is mostly programmatic, and only partially visual through the Admin panel etc.!

In other words it’s the source code of a web app, which you can use for a foundation of the web app you want to build. But it’s not just for web apps — the backend will not only be used for your web-front — it will get used for any other frontend (client) you may decide to add — for example mobile apps, desktop apps, smart watch apps, smart TV apps, etc.

What is the license?

Single, non-sub-licensable, non-exclusive license for the source code of Vizu.

You will be able to alter it. Your company/product can be acquired. You will NOT be able to sub-license your project’s source code to 3rd parties (paid or free) or start a new product with it. You will NOT be able to open-source your project’s source code.

Vizu could be acquired as a whole (instead of being licensed to you), but this would require a much bigger compensation and I haven’t really thought what a reasonable price for that would be. Feel free to make me an offer. :)

What’s the price?

Revenue share or/and equity in your company.

In any case, I’ll not go crazy in my demands — we will come up with something you can afford, according to the stage of your company, funding situation, profitability, etc.

Is consultancy/support available?

I’m generally not looking for contracting opportunities, but I could help out for a week or 2 of customization of Vizu for your specific case and/or getting your team up to speed with the project. As a separate consultancy contract.

Of course, adequate documentation (on deployment, dev-ops etc.) will be provided with the project, by default, as part of the licensing deal. And I am available for (reasonably-time-consuming) support questions for free, after licensing Vizu to you.

BTW, at the time of writing this post — I am also looking for my next venture.

If you are interested — let’s chat!

Email: nikolay@tsenkov.net
Twitter: @NikolayTsenkov

--

--