Meet Sifu – Going Beyond a Simple DSL


Recently I left the beloved Semaphore and my team back at Rendered text, hence there is a new product in my life. Meet Sifu!

Recently I changed products. Feel kinda sad to be leaving my beloved Semaphore, but I felt I need a new chalenge so now I’m heading the marketing team ad dryTools and helping develop a disrupting new tech product.

Sifu

First I need to give you a short introduction — meet Sifu, my teams take on what we envisioned as a better way of building web applications. The idea is to develop Spring Boot and AngularJS based applications through specifications with full control of the generated code, meaning that the generated code will be always open to any customisation and the customised code is never over run when regenerating. Also, we wanted code with no dependencies, the code must be free from Sifu.

That is the whole idea make apps through specifications, whilst having no dependencies, generated code that is up to every standard and being in full control of the generated code.

The story behind

Now back to the story. Most of the programmes of today have different tastes in programming languages, but we can all agree that application modelling is something that has a higher cause, and in the end is far more interesting and fulfilling than writing code. With that in mind, we started making a tool that would allow us such a flexibility that we could use 80% of our time modelling, implementing business logic and to use that 20% to add that fine custom code that every application needs.

Yes, this often sounds like BS, it even sounded like BS more often than you would think. How could a tool provide so much code, that is high-quality, easily extendable with custom code and has no dependencies? At the same time, the tool must be able to develop the application during the whole development cycle and must be able to maintain the code base over time.

With over 10 years of experience in building the web and mobile applications, in between our engineering founding team, we were able to recognise some of the most repetitive tasks in the developers’ everyday life. The tasks developers have to do every time they start work on new projects, tasks that are dull. 60% of the code in a project can be classified as repetitive.The task all of us hate! Drudgery.

With that in mind, we made Sifu.

Using simple and understandable DSL to define specifications and running those through the generator supported with code templates both for the frontend and backend.

Down the road

We plan on further extending Sifu with other languages such as Angular2, Scala, React and others. Most of all we’re looking for more experienced people to give a try to Sifu and give us feedback on what they think of the tool and how we could further develop it.

We have a pretty bold statement that with Sifu you get at least 30% faster development, and to be honest you can read some of our case studies with users and believe our blue eyes, but the only way that you can really know that you give Sifu a try and see for yourself.

In the end, if you’re wondering why we choose the name ‘Sifu’, well lets say it mean master in cantoneese. :)