Mudlet:Repository Technical Vision

From Mudlet
Jump to navigation Jump to search

Technical vision for Mudlet package repo

Our constraints

We're a team of developers who is developing a desktop-based, cross platform application using modern C++ and Lua. Given our focus on the desktop, web technologies aren't second nature to us.

We build things to last, because we're a volunteer team: we can't afford to be throwing everything away and re-writing it every 2-3 years.

We build Mudlet to be fast. Performance is a defining quality of Mudlet. We can't afford to use a technology that requires you to be a deep expert in it to produce a performant outcome.

We're not designers. We do our best, but amazing design doesn't come natural to us.

Given these constraints, neither popular nor niche web frontend stacks of 2021 are a good fit for our usecase.

Our solution

Use the tech we know

Lua is a very familiar technology to all of us. For this reason we've chosen Lapis, a Lua development framework based on the battle-proven OpenResty platform, which in itself is nginx+Lua.

Bring it back to the basics

HTML5 is here and it works great across all browsers. It's also what everyone is most familiar with. By sticking to the basics, we'll be making our project more accessible to developers.

Bootstrap+jQuery

It's not the latest shiny toy - and that's great for us. We need proven technology that is modern, yet built to stay.

Bootstrap also comes with a slew of themes that we can use out of the box - great building blocks to assemble a good-looking result with.

Why this differs from Mudlet on desktop

We use the latest edition of C++17 and the latest Qt available. Why not follow the same philosophy on the web as well?

Because while the web in itself is great at backwards compatibility, frontend stacks are not.

Thanks for reading, now let's go and build.