Technology

Development process

When beginning a new project we first go through a concentrated conception phase. With user stories we isolate the most important features the minimal version of the app needs and collect ideas for optional and comfort features. Taking enough time to develop a suitable concept and architecture without over-engineering is important to us. Entity–relationship, component and architecture diagrams and Figma designs helps us to consolidate our ideas.

We love to team up with experts in other fields like interface/project design and security.

Our working cycles are influences by agile concepts like Scrum. Since code quality and security are most important for us, we do pair programming, code reviews and write tests. Our goal is to be test driven as often as possible. We do weekly meetings to review and plan and Gitlab helps us with project mangagment via issues and milestones.

Figma logo

Drawio logo

Gitlab logo

Web

For more complex web applications we use the web framework Ruby on Rails. Additionally, we use modern frameworks like Bulma, Bootstrap, React and Svelte when building frontends depending on the project scope. High accessibility on all kind of devices is important for us. At the beginning of each project we weigh up exactly how the application should be conceptualized. Is classic templating with a monolithic app enough? Do we need smaller services with REST APIs? Or does it even make sense to use React and headless Rails? For small services that don’t need the full list of features Rails is offering, we use Sinatra. No matter which solution it will be in the end, coverage through automated testing by Rspec is a clear priority for us.

We use PostgreSQL for storing complex data and SQLite for simple cases. For job queuing, Sidekiq is our first choice.

Ruby on Rails logo

Sinatra logo

Bulma logo

Bootstrap logo

React logo

Svelte logo

PostgreSQL logo

Sidekiq logo



Jamstack

When creating presentation websites with or without CMS we follow the jamstack idea. We use SvelteKit or Nextjs together with (Sprapi CMS)(https://strapi.io/) and vite. Through the Gitlab pipeline or Netlify content is rendered and deployed. There is no backend needed which makes this small projects easy to maintain and to hand over.

SvelteKit logo

Nextjs logo

Strapi

Vite logo



Deployment

Our self-hosted services are running on Ubuntu Linux VPS servers. We use Ansible for deployment. Our applications are containerized in Docker. Via Gitlab pipelines we are building new Docker images and using the Gitlab Registry to organize them.

For our productive applications errors and uptime are monitored via Glitchtip using the Sentry Sdk. For checking the reach of our applications we use Matomo.

Ansible logo

AWX logo

Ubuntu logo

Docker logo

Glitchtip logo

Matomo logo

Gitlab logo



Misc

We are also have experience and fun of building Android Apps, Java, Python, Django applications and making GIS analysis.

Android logo

Python logo

Django logo

QGIS logo