Setting up dark mode with tailwind

The dark mode is a popular feature in websites and apps because it provides several benefits to users. Some of the main reasons why dark mode is a good feature include:

  • Improved readability: Dark mode can make text and other elements on a website more legible and easier to read, especially in low-light environments. This can be especially beneficial for users with visual impairments.
  • Reduced eye strain: Prolonged exposure to bright screens can cause eye strain and fatigue. Dark mode can help reduce the amount of blue light emitted by screens, making it easier for the eyes for users to read or work for longer periods of time.
  • Increased battery life: Dark mode can help conserve energy and increase the battery life of devices, especially those with OLED or AMOLED screens. Since the pixels in these screens don’t need to produce as much light to display dark colors, using dark mode can significantly reduce power consumption.
  • Personalization: Many people prefer the aesthetic of dark mode and find it more visually appealing. Allowing users to switch to dark mode can provide a more personalized and enjoyable experience.
  • Accessibility: Dark mode is also useful for people with visual impairments and can make it easier to read and use websites and applications.
  • Branding: Dark mode can be used as a branding element, some specific niches like music, game, and programming have a preference for dark mode, and it can be used as a way to stand out and create a unique and memorable user experience.

Overall, dark mode is a good feature in websites as it offers users a variety of benefits, including improved readability, reduced eye strain, increased battery life, personalization, and accessibility.

How to set it up:
1. Add the following code to the tailwind.config.js

Setting darkMode: ‘class’ will enable the generation of CSS class-based dark mode variants. This means that when you build your project with Tailwind, it will generate CSS classes for each utility class that has a .dark prefix. For example, if you have a utility class for setting text color to text-gray-800 , Tailwind will also generate a variant text-gray-800 dark:text-gray-100 that you can use to set the text color to when the dark class is added to the element. (This is useful since we use Javascript to toggle dark mode).

2. In your React component (or a ThemeProvider context), create a state variable darkMode to keep track of the current theme:

3. In your component’s componentDidMount lifecycle method, check the value of the darkMode state variable against the value stored in local storage, and set the state accordingly:

4. Create a function to toggle the theme by updating the darkMode state variable and storing the new value in local storage:

5. In your JSX, use the darkMode state variable to conditionally render a classname which will be used to apply the dark mode styles:

6. Create a button to toggle the theme and call the toggleDarkMode function on click:

Now, when the component is first rendered, it will check the value stored in local storage to determine whether to render the dark class or not, and when the button is clicked, it will toggle the theme by updating the darkMode state variable and storing the new value in local storage.

Usage example:

In conclusion, setting up dark mode with Tailwind CSS is a simple process that can provide a variety of benefits for your users. By following the steps outlined in this blog post, you can easily improve the readability, reduce eye strain, increase battery life, personalize the user experience, and make your website more accessible for all users. Implementing dark mode can also be a great branding tool and make your website stand out in specific niches. With Tailwind CSS, you can quickly and easily add dark mode to your website with minimal effort and provide a better experience for your users.

Making world a better place for all

Our contribution to the Sustainable Development Goals 

Through our technology solutions and services, we are creating the new future of our generations, every day. To do that, we don’t need to switch from the reality, we just need to make the sustainable development, our reality. The way we conduct business represents the future that we are building; it has to be a development that meets the needs of the present, without compromising the ability of future generations to meet their own needs. 

In 2015, the 193 United Nations member states committed to the adoption and implementation of the 17 Global Goals for Sustainable Development. The aim of the Sustainable Development Goals, (SDGs) is to end poverty, fight inequality and climate change by 2030 and to secure a sustainable prosperous future for the coming generations.

Responsible Business Conduct

Kutia recognizes the power of the SDGs as a force for good and has committed to aligning its strategy with the SDG Agenda. Achieving impact through responsible business conduct helps us operationalize the SDGs and ensure that the most significant impacts are prioritized. We want to make a positive contribution to the economic, environmental and social progress of our country and avoid and address negative impacts of our activities. 

Through a rigorous and structured approach, we have identified 5 SDGs that resonate deeply with our purpose and strategy. These are key areas where we can make the most positive contribution and where we will report on our progress. 

SDG1: End poverty in all its forms everywhere 

We are committed in providing opportunities for people that are living in difficult financial conditions, especially with inflation situation we are currently in. We must target those living in vulnerable situations, increasing access to basic resources and services, and support communities affected by conflict and climate-related disasters. Alongside with supporting different activities and initiatives, we organizing “Helping families in need” with the purpose of offering essential food products for poor families around the country during the holiday season. 

SDG4 – Quality Education 

Beetroot Academy Kosovo is a step we took to better serve this goal. This academy provides professional IT training for young people who want to pursue a career in IT. This also plays a positive impact in SDG8 – Sustainable Economic Growth, since 95% of the 500 students who have finished this training are now employed in IT companies in Kosovo. In addition to this, we have just recently applied for another opportunity that aims to provide youngsters with major opportunities in quality education. Through these initiatives, we are confident we will expand the scope of these activities that will serve SDG4 & SDG5. 

SDG5- Gender Equality 

In 2019, there were only 3 female employees in our company. Now, there are 14+ female employees with important roles. Since 2019, we have created a business strategy focusing on creating a highly supportive work environment for women. Our company is mainly represented by women in different conferences and activities with a high impact on our society. In October 2022, we awarded 17 Scholarships for Women in IT. These scholarships will support women with professional training in IT, additionally giving them job opportunities. This way, women’s engagement in the IT sector will increase. 

SDG8- Economic Growth 

Promoting sustained, inclusive, and sustainable economic growth, full and productive employment, and decent work for all is another SDG goal that we are supporting with the activities that we described above. In addition to this, by offering a highly supportive and beneficial work environment for our employees, we want to make sure that our profits contribute to Kosovo by keeping our young generations working and serving our country. 

SDG13 – Climate Action 

Climate change is a real and undeniable threat to our entire civilization.  Through education, innovation and adherence to our climate commitments, we can make the necessary changes to protect the planet. These changes also provide huge opportunities to modernize our infrastructure which will create new jobs and promote greater prosperity across the globe. To serve this goal, we will support activities and Goal 13 charities. We are already measuring our carbon footprint and we are committed into giving back to the nature by planting trees based on the measurement results. Our services are 100% based on renewable energy. 

Pirate Summit – Germany

Proud to announce that Arianit Fazliu – Co-Founder of Kutia was a speaker at the Pirate Summit held on 6 and 7th September 2022 in Cologne, Germany. 

His presentation Love, Mercy, Facts – A Human Approach to Leadership is a result of a deep analysis that utilizes Arianit’s personal experiences, different methods, learning, examples, and practices in conceptualizing this approach that aims to help leaders and other participants advance their organizational goals and ultimately promote the sustainability and success of any business.  

This session presented a new “back to human” approach in an organizational setting, as the only response to change in technological development’s constant state of flux. As leaders develop their organization’s human potential, this session provided them with an approach that will advance their organizational goals and ultimately promote the sustainability and success of any business. 

The session included experience sharing, examples, and practices on how to utilize the pyramid of Love, Mercy, Facts and let it become integral to the brand – and its reputation, by being spread throughout the organization – suppliers, partners, customers, employees, families, and communities.   

State of Headless CMS

Live Collab between Kutia & Async Labs!

We’re getting together to discuss the State of Headless CMS’s. Our speakers will be sharing experiences, mapping the challenges and the good practices that make their work marvelous.

Topics:

  • How do we use CMSs as a headless BAAS (back-end as a service)?
  • What options for modern CMSs do we have?
  • GraphQL vs REST API
  • A Comparison of CMSs
  • Developer satisfaction

More topics

  • Async Labs approach with WordPress and Strapi
  • How to optimize generic CMS solutions for the specific project purposes
  • DevUX collaboration models for working with Front-end and mobile teams
  • Documentation and versioning

React Team Technical Meeting #2

Do you want to be part of our technical meetings at Kutia?
We have audio recorded the recent technical meeting of our React team, where we discuss communication between webview and react native.
As you will see, the meeting is held in a typical casual setting, with no intention of creating professional audio. It’s all about sharing information & experiences with each other, as we always do!
That’s why you will all feel comfortable, just like being here with us!

Soundcloud: https://bit.ly/3xLniBl
Simplecast: https://kutia-technical-meeting.simplecast.com/…/react…

React Team Technical Meeting #1

Do you want to be part of our technical meetings at Kutia? We have audio recorded the recent technical meeting of our React team, where we discuss Data fetching & caching, types of API endpoints, how we use React-Query, and more caching patterns we’ve used with Apollo Client. As you will see, the meeting is held in a typical casual setting, with no intention of creating professional audio. It’s all about sharing information & experiences with each other, as we always do! That’s why you will all feel comfortable, just like being here with us!

Spotify: https://spoti.fi/37plD9s
Google Podcast: https://bit.ly/3MMMexa
SoundCloud: https://bit.ly/3KxQ7Em

Criticism or Feedback?

Believe it or not, humans couldn’t afford to live without feedback. The need for assurance in everything that we do goes back in time. From our childhood age, we needed affirmation in every step we took and every new thing we learned. We even acquired our language through reinforcement and imitation. Just try and make an angry face at a baby and you will see how he/she won’t smile at you. A second after, make a smiley face and see his/her face change immediately. Make a specific action when a child says a word and you will see how that will be inculcated in their head. It is the power of a reinforcement need that makes a major impact on how we can create relations with others.  

We need feedback in order to grow as humans and professionals. Feedback has the power to strengthen trust and respect between people, hence contributing directly to our psychological needs of love & belonging, and esteem. 

Getting feedback on both a personal and professional level is critical to an individual’s development and advancement. However, if the feedback is done incorrectly, it may sound like criticism. There is a feeling about criticism that can be perceived negatively by most people. In working environments criticism sounds like one-way thoughts after something has happened. Feedback, on the other hand, opens a door for a deeper understanding of the problem and leaves space for improvement and growth.  

How does feedback differ from criticism? 

Focus 

Feedback is frequently used to convey observations regarding how the work was completed. The receiver is made aware of the expectations for their task. This could contain suggestions for how to enhance future performance. 

Criticism is frequently aimed toward the individual who completed the work. If the work produces a beneficial result, the person is praised. If the outcome is less than ideal, it is common to assign blame. Since the focus of criticism is not on the issues that caused the non-completion of work, it is hard to leave room for improvement. 

Objectivity 

Feedback is both impartial and sincere. It evaluates the result of an action. If the outcome is negative, possible causes are investigated without assigning blame to individuals. The unspoken emphasis is that the individual must examine and resolve the situation. 

Criticism is personal. A boss is likely to share personal views on the cause of the bad result and insist that the team member take corrective action. Even if the manager’s judgment is correct, criticism has the effect of making the person hearing it defensive and irritable. 

Purpose Specification 

Feedback is defined by its clarity of intent. The project’s goal, the person’s role in achieving it, and how one’s actions will affect the team and the outcome should all be expressed clearly. 

Attitude 

Feedback is given with the intention of assisting in the resolution of an issue. As a result, collaboration and goodwill may improve. 

Criticism can appear to be judgmental. As a result of being inspected, the recipient may grow uneasy. Self-consciousness and a desire to disconnect from the topic and the person who is criticizing you may be prompted. 

Outcome 

Feedback allows for discussion and the exchange of ideas. A deeper examination of the problem may lead to a team member’s self-evaluation and self-correction. 

Criticism can lead to defensiveness, which can lead to missed opportunities for learning and self-correction. Emotions may become more intense. Arguments and a breakdown of trust between the criticizer and the critic are possible outcomes. Relationships, both personal and professional, are likely to suffer. 

Constructive feedback examples 

Instead of: “I think you could improve your public speaking.” 

Try this: “Well done for speaking in front of everyone, I know it can be daunting. For next time, try to look up a little more instead of looking down at your script. I have a book you can read to help you feel more confident to do this.” 

Instead of: “Your work isn’t written in line with our company voice.” 

Try this: “I really like how you’ve approached this piece of work. I have identified a couple of instances where your writing doesn’t match the company voice, so please can you revisit these again.” 

Instead of: “Can you make your work a bit clearer and consistent?” 

Try this: “Your spreadsheet is very useful and evaluative. However, the last two columns are not as clear as the rest of your columns. Please can you make them consistent with the rest?” 

Instead of: “I’ll discuss this piece of work with you in your next monthly one-to-one.” 

Try this: “I’d like to discuss this piece of work with you. Please can you let me know a time in the next few days when you’re free to discuss it?” 

Instead of: “I’ll email you feedback on your task.” 

Try this: “I’d like to give you some feedback on your completed task. Please can you let me know a time in the next few days when you’re free to discuss it?” 

Note: Feedback is extremely beneficial, so embrace both positive and negative feedback to create a more successful work environment. 

6 Steps to create a safe mobile app

Today, the number of smartphone users worldwide is over 3 billion, and this number is forecasted to grow by several hundred million over the next few years. 

Apps are getting more ingrained in our daily and professional lives. They can do plenty of things; from executing financial transactions to uploading sensitive health data.  

At Kutia, we work with start-ups and established industry leaders, designing mobile applications that make life easier for their customers. One of the most important factors we look at when building mobile apps is security – how we can protect both consumer and corporate data, while still building an application that is meaningful for both parties.  

What are the security risks for mobile applications?

Threat #1 Malware 

One possible threat to mobile app security is malware, which is installed on the device. Mobile devices are often configured to only allow application installation from an authorized app store (e.g., Google Play or Apple Store). With malware, a hacker places a malicious application in an authorized app store, enabling the application to be installed onto targeted devices. 

Threat #2: Lost or stolen device 

Another huge threat is that mobile devices could be lost, or even stolen. A person with physical access to a mobile device may try to bypass the device’s lock screen in order to access sensitive information stored on the device. 

Threat #3: Code guessing 

A more straight-forward approach to bypassing phone security is the Code Guessing method. In this method, the potential thief tries to crack the lock screen passcode (typically a PIN or password). This could be by brute force or by something known as “shoulder surfing”, where someone observes the device owner’s use of the lock screen passcode.  

How to create a secure mobile app?

1. Source Code Encryption 

As most of the code in a native mobile app are on the client side, mobile malware can easily track the bugs and vulnerabilities within the source code and design. Developers should ensure that their applications are robust enough to prevent any tampering and reverse engineering attacks. Encrypting the source code can be an ideal way to defend your application from these attacks as it ensures unreadable. 

2. Secure the Data-in-transit 

The sensitive information that is transmitted from the client to server needs to be protected against privacy leaks and data theft. It is highly recommended to use either an SSL or VPN tunnel, which ensures that user data is protected with strict security measures. 

3. Make Provisions for Data Security 

When it comes to accessing confidential data, the mobile apps are designed in a way that the unstructured data is stored in the local file system and/or database within the device storage. However, the data in the sandbox are not effectively encrypted; hence, there is a major loophole for potential vulnerabilities. 

4. High-level Authentication 

Developers should design the apps in such a way that it only accepts strong alphanumeric passwords. On top of that, it is better to make it mandatory for the users to change their passwords periodically. For extremely sensitive apps, you can strengthen the security with biometric authentication using fingerprints or retina scan. 

5. Secure the Backend 

It is essential to have security measures in place to safeguard against malicious attacks at backend servers. Most of the developers assume that only the app that has been programmed to access APIs can access it. However, you should verify all your APIs in accordance with the mobile platform you aim to code for because API authentication and transport mechanisms can deviate from one platform to another. 

6. Minimize Storage of Sensitive Data 

To protect sensitive data from the users, developers prefer to store the data in the device local memory. However, it is best practice to avoid storing sensitive data as it might increase the security risk. If you have no other option other than storing the data, better use encrypted data containers or key chain. Additionally, make sure to minimize the log by adding the auto-delete feature, which automatically deletes data after a certain time. 

Our App Development Process  

To build a safe mobile app, first, we need to have a development process that fits the needs of each project. Success within the competitive landscape of these growth projections can become a reality for your company—but only if supported by a precisely cultivated mobile app development process. 

An effective app development process flow lays over seven key phases. Regardless of the size and scope of your project, we have developed a process that will make your enterprise mobile app development initiative a success. 

If you’ve already made up your mind and you’re willing to build your safe app, contact us at sales@kutia.net.  

Hire the top software developers from Kosovo

Choosing a team that can translate your business needs to quality work is an essential factor for your business growth. Trusting a team to build your product requires a deeper understanding of expertise, culture and talent skills of the company you’re considering working with. 

In this article, we will make the process of choosing a software development team from Kosovo much easier for you.  

Who are we? 

Kutia is a software development company that is headquartered in Pristina, Kosovo, with offices in Albania, United States and Sweden as well. Since its establishment in 2013, our company has grown in people, expanded its geography, and brought quality software engineering services closer to our clients worldwide.  

Working with the team of Kutia means working with some high-skilled, innovative, open minded, English skilled & amazing young people who are ready collaborate in delivering high-quality services for our diverse clients, whenever they are!  

Why choose Kosovo?

If you haven’t yet heard about Kosovo or you still haven’t considered it as one of your options, you have the chance to understand more about how much you can benefit from this country that is making big IT turns and is increasingly becoming a magnet for clients from around the world. Kosovo has emerged as one of Europe’s top locations for global sourcing of IT services. 

It is situated in Southeast Europe in the central part of the Balkan Peninsula. In the southwest, it is bordered by Albania, in the west by Montenegro, in the north and east by Serbia and in the southeast by North Macedonia. 

Known as the youngest country in Europe since its declared independence on 17.02.2008, 53% of its people are under the age of 25. Kosovo also has the youngest population in Europe. In Pristina, the capital, the average age is 28. 

This percentage of youth in Kosovo is an important indicator of the continued development both socially and in people’s mentality.  

Through its youth, this small isolated county is reaching beyond existing boundaries, evolving increasingly in the field of innovation, technology and entrepreneurship. According to the Global Sourcing Association (GSA) the Southeast Europe – Kosovo region has become an attractive location for sourcing/outsourcing due to the low cost of qualified staff and a large number of highly educated, bilingual and qualified IT professionals. 

Our services 

We deliver specifically designed services & solutions for our clients, to cater to their unique business goals.  Our team uses a personal and innovative approach by evolving ideas and turning them into tangible visual results, which help us deliver top-notch services for software and mobile development. Our software solutions power mature businesses in Healthcare, Telecommunications, Banking and Finance, Retail, Education and other industries. From start-ups to large-scale organizations, our developers can work with any development project. 

Do you want to know what we’re currently working on? 

Our clients are very diverse. This diversity helped us grow as a team by fostering a feeling of innovation and progression. Working on different projects, with different technologies and on very different cultural approaches, we have become a first choice to our clients in Norway, Switzerland, Sweden, Germany, Finland etc. 

Here are some of our most current projects we’re working on: 

Our client operates in the banking and blockchain industry, with headquarters in Zurich, Switzerland. The project involves building a digital asset management tool for end customers and admin panel to manage it accordingly.  

Technologies: React (Typescript, Jest, React Testing Library) + Material UI, Nest.js Infrastructure: Docker, GitLab CI, Kubernetes. 

Our next client is an award-winning software development company with more than 20 years of experience implementing custom high-tech solutions for leading companies in the technology, media, telecommunications, and defense industry. With a positive reputation as a reliable IT services partner that consistently delivers on time, within budget, and with great ingenuity, they are certified by NATO AQAP 2110 & 2210 and ISO 9001: 2008 and have received IT industry awards in Europe and North America. 

Are you curious about working with us?

Contact us to book a meeting and learn more at: sales@kutia.net  

How to start a tech career in 2022?

IT jobs are growing at a higher rate than ever before and this is not a breaking news anymore! In this blog, we will share our insights on how to build a successful career in today’s rapidly evolving world of technology.

Calm down! It’s not that hard! 😊 

If you’re passionate about IT and have been eyeing this position for a long time, you need to know that this field pays exceptionally well, comes with a slew of advantages, and a lot of opportunities! Every industry is becoming increasingly reliant on technology. 

Choosing a tech career path is one of the most difficult decisions to make. There are many other types of tech jobs available, including Data Science, Software Engineering — Backend, Frontend, Full Stack, Mobile Engineer, Cyber Security, Dev Ops, Tester, and so on. 

But what if you’re not into coding? 

Product Management, Business Analyst, Technical Writer, User Experience Designer, Tech Support, and other non-coding positions exist. You can begin a career in technology in a variety of ways. We will highlight suggestions and guidance to get you started throughout this blog! 

Take your Soft Skills with you wherever you go! 

Before jumping into what technical skills you need to develop to start a tech career, first, you need to invest in your soft skills.  They are quite important in the IT business and having them will make it much easier for you to find work. Communication, leadership, team building, problem-solving, MS Office, and other skills can be wonderful to show off as a start and can help strengthen your resume. You should strive to pick out a lot more of these skills by carefully sifting through your previous experience. Remember to adjust your resume and LinkedIn profile as needed. 

Get certified

This is one of the most effective approaches to break into this industry. Certifications are everything in IT, and years of experience can be learned theoretically in only a few months. By being certified, you’re demonstrating your interest in this profession and your willingness to work in it. You’ll be exposed to a few extra work prospects with certificates in your pocket, which will make things easier. It’s not difficult to become certified, and you may do so either online or in person with an expert. If you’re living in Kosovo, things just got easier for you. Beetroot Academy offers highly effective courses in ReactJS, Front-end Development, Nodejs, Quality Assurance, Project Management in IT, UI/UX Design, English in IT.

Networking is everything 

The next step is to network. It doesn’t matter if you’re at an event or on social media – it’s never too early or too late to start connecting with people who are doing something you want to do. You’ll find that people are eager to connect, especially when they see how enthusiastic you are about their work. If you want someone to find your resume on LinkedIn, make sure you have a good profile picture and summary of your skills and experience.

Build an online brand 

Starting your career is not easy. Especially in the tech industry. There are many platforms out there to help you build your online presence and start building your professional brand.

#1 – Start with building a good LinkedIn profile. This way, recruiters can find you, contact you if they need help with their company, and see what kind of jobs you’ve had in the past. This will make it easier for them to assess whether or not they want to work with you.

You can also build your own website and have an online CV. Be as creative as you want! Consider this a first project for you to work on if you want to go into the web development! We highly recommend setting up a Github or GitLab account so you can push your code and projects up so employers can see.   

Find a mentor 

If you want to pursue a career in technology, then you need to find a mentor. A mentor will help guide your career and inspire you when you feel that all is lost. They can be very useful when it comes to finding job opportunities and negotiating salary.

There are many ways to find a mentor, but the best way is to start working on your goals. A mentor can be anyone who has experience in what you are trying to do. It might be a family member, friend, or someone you think is cool and achieving what you want. The best way to start your tech career is by taking the time to plan it out before jumping in head first.

Don’t Discount Remote Opportunities 

This pandemic has proven that many roles, particularly in the tech industry, can be done remotely. As organizations increase the number of remote roles they offer, being open to this opportunity will help to increase the roles that are available to you. Working remotely also enables you to have increased flexibility around where you work. It’s important to note that remote work doesn’t mean you have to give up your career.

There are a lot of benefits of working remotely, such as the possibility of not having to commute and less stress. And because this type of work is becoming more popular, there are also a lot more opportunities for it than there were in the past.

Develop Your Skillset 

Before starting out in your tech career, it is important to analyze the industry and ascertain which skills are most in demand. It is therefore crucial to consider the predictions and expectations for the industry and work towards building your skillset in those areas. This will help you to stand out from the crowd when applying for roles as you will have the skills that organizations require going forward. 

You may find that there are many different paths, but they all have a few things in common: a willingness to learn and evolve, a desire for constant feedback and critique, and being open-minded.

If you have made up your mind of starting a tech careerKutia is a place where everyone gets an opportunity to grow and shine by unleashing their passion, innovation, and creativity.  Feel free to contact us at: careers@kutia.net

Let’s start building connections_

Get in touch

Let’s work together Let’s work together