# Navigators Season 2: Facilis Growth Grants Proposal
## Facilis: End to end SDK for Mina Development Ecosystem!
# 📌 About Facilis
Facilis is an end-to-end software development kit that simplifies developers' interactions with smart contracts and Mina wallets on web and mobile platforms. As a team participating in the Navigator program, we encountered some challenges when we started developing on the Mina network. Realizing that these difficulties were not unique to us, we wanted to find a solution. Thus, the foundation of the Facilis project was laid. The project name, Facilis, means "easy" in Latin. The project aims to create the best possible developer experience.
## Similar Wallet Connection Kit's on Ethereum:
#### Some developer kits that simplify connecting to wallets on the Ethereum network:
### WalletConnect | 4.7k ★ on Github | 232k weekly download | Ethereum
[](https://walletconnect.com/)
### Familiy Wallet | 791 ★ on Github | 10k weekly download | Ethereum
[](https://family.co/)
### Thirdweb | 359 ★ on Github | 54k weekly download | Ethereum
[](https://thirdweb.com/)
## Similar SDK's on Ethereum:
#### SDKs that enhance developer experience by simplifying interactions and accessibility on web3 networks:
### Wagmi | 5.7k ★ on Github | 177k weekly download | Ethereum
[](https://wagmi.sh/)
### Thirdweb | 359 ★ on Github | 54k weekly download | Ethereum
[](https://thirdweb.com/)
### Dappkit | 56★ on Github | 189 weekly download | Ethereum
[](https://dappkit.dev/)
# 📌 Proposal Overview
## Problem:
Developers face significant challenges when building on the Mina blockchain. These include complex interactions with smart contracts, inefficient wallet connection processes, and a lack of streamlined tools for zkApp development. When developing an application, developers encounter similar difficulties and seek solutions. These solutions lead to the establishment of conventions, which foster an ecosystem where products go through similar development stages.
For example, in a web3 application, I know that import { address } in client-side JavaScript will return a wallet address from any imported library. This knowledge enables me to develop across various networks quickly and positively impacts my initial impression of the technology.
As the Choz (aka Examina - Navigator Season One Project) team, our first encounter with Mina presented significant difficulties. Initially, we had to handle wallet connections manually because the community-developed project was incomplete and only worked on the web. When we tried to interact with smart contracts, we faced even greater challenges. The documentation was heavily dependent on a tutorial, recommended using web workers, and required us to update pre-written files to continue development.
These problems are not unique to us but also affect others wanting to enter or already in the ecosystem. For these "simple" tasks, they need to seek help from those who have previously encountered similar issues. For example, a zkIgnite program participant who consulted me had to download and edit the prepared files in the documentation to implement Mina into their project because the documentation necessitated it. This approach is far from being a convention, is difficult to understand, and imposes a significant workload on a developer taking their first step into the Mina ecosystem.
Finally, we can summarize our problems in two sentences:
- **People who are new to development can only operate within the very limited scope imposed by the documentation for tasks like interacting with contracts and connecting wallets.**
- **The libraries developed as solutions are inadequate and not mobile-focused.**
---
## **Solution:**
Our proposed solution is Facilis, a comprehensive SDK (Software Development Kit) designed to enhance the developer experience on the Mina network while developing React and React Native zkApps.
Facilis provides a fully customizable wallet integration component. This allows developers to minimize the workload for tasks such as wallet connection stages, account state management, and preparing the UI for wallet connection by using Facilis.
Another solution is to simplify the smart contract interaction stage. Facilis creates a layer for interacting with Mina smart contracts, enabling developers to perform non-blocking interactions with a React-like syntax without dealing with web workers or worklets.
---
## **Impact:**
Facilis, through its SDK, pledges to make the following significant contributions to the Mina ecosystem:
- **Lowering the Entry Barrier**: Facilis provides a developer-friendly and reliable development environment by reducing the workload required for wallet connection and smart contract interaction to one-fifth, making it easier for developers to create zkApps on Mina.
- **All-in-One**: With its web2 and web3 login options, Facilis allows developers to handle all user login processes from a single platform.
- **Best Practices, No Effort**: Web workers or worklets are automatically created, allowing Mina interactions without blocking the UI thread and reducing the learning curve for developers in the Mina ecosystem.
- **Write Once, Use Twice**: Facilis enables developers to focus on developing mobile zkApps without additional effort for wallet connection and smart contract interaction, thanks to the Facilis React Native SDK.
- **Inherently Educational**: In addition to detailed and easy-to-understand documentation, content such as YouTube videos, tutorials, and demos will be created to increase the number of tutorials in the ecosystem and promote the popularity of zkApps. This will especially reduce the learning curve for new developers and encourage them to stay within the ecosystem.
### Audience:
The primary target audience includes:
- **Developers**: Both new and experienced developers looking to build on Mina.
- **Startups and Enterprises**: Organizations seeking to develop zkApps with secure and scalable solutions.
---
# 📌 Architecture & Design
The basic architecture of our project focuses on providing a "easy" developer experience.
## **Detailed Design/Architecture:**
### Facilis architectural structure can be categorized with 3 layers:

### 1. Facilis SDK
- The Facilis SDK consists of three distinct packages. The first package, Core API, which also supports the other libraries, includes built-in modules to facilitate interaction with contracts.
- The React SDK provides the necessary environment for the modules written in the Core SDK to work with web workers in a React environment. Additionally, it offers the best developer experience with pre-written hooks using TanStack Query.
- The React Native SDK provides the necessary environment for the modules written in the Core SDK to work with worklets in a React Native environment. Similar to React, it uses TanStack Query to deliver the best developer experience. This module also includes support packages configured specifically for mobile.
### 2. Facilis ConnectKit
Facilis ConnectKit consists of two packages, one for React and one for React Native. Both packages are fully customizable through the Facilis front-end and come with pre-written themes. For customization, we take inspiration from [Family ConnectKit's Theme Builder](https://docs.family.co/connectkit/theme-builder).
### 3. Facilis Front-End
The Facilis Front-End is designed to include Facilis's impressive landing page, documentation, and theme builder. The site, written in React, will also feature a demo and allow customizations to be tested in a unique playground.
## **Vision:**
The long-term vision for Facilis is to become an indispensable tool for developers within the Mina ecosystem, fostering a vibrant developer community capable of creating secure, scalable, and innovative Web3 applications. To achieve this vision, we have outlined specific goals and strategies:
**1. Continuous Development and Updating of API Features:**
- Facilis will offer continuously updated and enhanced API features tailored to developers' needs. These APIs will facilitate the easy development of secure and scalable applications on the Mina network. New features and improvements will be regularly added based on developer feedback.
**2. Providing Solutions to Developer Problems:**
- Facilis will be a constantly evolving platform that offers solutions to the active problems faced by developers. By closely monitoring the feedback and needs of the developer community, we will optimize the platform to address these needs effectively.
**3. Cross-Platform Compatibility for Mobile and Web:**
- Facilis will focus on ensuring cross-platform compatibility for both mobile and web applications. This will allow developers to leverage Facilis's tools and services across various devices and platforms, ensuring a seamless development experience.
**4. Leadership in the Ecosystem:**
- Facilis aims to be a leader in innovation and development within the Mina ecosystem. By continuously adopting the latest technologies and development methodologies, we will provide developers with the best tools and resources. Through the solutions offered by Facilis, we aim to set new standards within the Mina ecosystem and lead the community's growth.
In line with this vision, we will develop and implement strategies and plans that continuously support the growth and expansion of Facilis. By working closely with the developer community, we will advance our platform and drive innovation within the Mina ecosystem.
It aims to become a SaaS, providing services such as private authentication systems in future stages.
## **Production Timeline:**

As seen from the timeline, ConnectKit, the Landing Page, and the Core API will be developed in sequence. Some tasks will be executed concurrently.
# 📌 Budget & milestones
## **Deliverables**:
Facilis will provide tools that maximize the developer experience for the Mina ecosystem. These can be examined in various components:
- **React ConnectKit**: It offers a fully customizable wallet connection UI for React, compatible with all Mina-supported wallets.
- **React Native ConnectKit**: It offers a fully customizable wallet connection UI for React Native, compatible with all Mina-supported wallets.
- **Core SDK**: It includes facilitating structures and hooks for everything from contract deployment to interaction.
- **Landing Page (and Theme Builder) and Incredible Docs**: A landing page will be designed to compare the code of projects using Facilis with those that don't, showing developers how much time they can save. In addition to easy-to-read and understandable documentation, the docs will include a theme builder, allowing developers to try custom connect UIs without writing any code directly through the documentation.
## **Mid-Point milestones:**
- EPIC 1:
- Branding/Research
- Mobile/Web ConnectKit UI Component Design
- EPIC 2:
- Mobile/Web ConnectKit UI Component Development
- Landing Page Design
- EPIC 3:
- Mobile/Web ConnectKit UI Component Development
- Landing Page Design
- Core SDK Architecture Design
- Docs for ConnectKit's
## **Final milestones:**
- EPIC 4:
- Mobile/Web ConnectKit UI Component Testing
- Landing Page Development
- Core SDK Architecture Design
- Docs for ConnectKit's
- EPIC 5:
- Core SDK Development
- Docs for Core SDK
- EPIC 6:
- Core SDK Development
- Docs for Core SDK
- Core SDK Testing
## **Project Timeline:**
3 Months
## **Budget Requested:**
Monthly 7.000 MINA
Total 21.000 MINA
> *The team members will work full-time on Facilis.*
## **Budget Breakdown:**
Development Cost: 15.000 MINA (2 Full-time developer 2.500 MINA/month)
Design, UI/UX Cost: 5.250 MINA (1 Full-time designer 1.750 MINA/month)
Operational Costs: 750 MINA (Domain, Server, License Costs)
## **Wallet Address:**
B62qrR5uK64QFgVeeDnRNgQRKhUMez3pV7BsqCbFh6wS5F3gRLXrDBi
---
# 📌 Team Info
## **Proposer Github:**
[Feyyaz's Github Account](https://github.com/feyyum)
## **Proposer Experience:**
Feyyaz has been a Front-End Developer for nearly three years. Through his carpool start-up, he was involved in every stage of a product's lifecycle, from ideation to production. After the start-up failed, he began developing on blockchain and brought the Choz project to life, winning an award from the Mina Foundation at ETHGlobal Istanbul. He is a Season 1 Navigator and currently holds the position of Head of Developers at the Istanbul Technical University Blockchain Society (ITUBlockchain).
## **Team Members:**
**Feyyaz Numan Cavlak, Developer**
Head of Developers [@ITUBlockchain](https://twitter.com/itublockchain). Developed [Pooly](https://www.linkedin.com/company/poolytech/). Season 1 Navigator.
📌 Social links: [Linkedin](https://www.linkedin.com/in/feyyaz-numan-cavlak/) - [X (formerly Twitter)](https://twitter.com/feyyazcigim) - [Github](https://github.com/feyyum)
**Can Kecilioglu, Developer**
[@TAUBlockchain](https://x.com/tdublockchain). Software Engineer [@TAC](https://www.linkedin.com/company/tgu-autonomous-car/).
📌 Social links: [Linkedin](https://www.linkedin.com/in/can-kecilioglu/) - [X (formerly Twitter)](https://x.com/keciliogluu) - [Github](https://github.com/cankecilioglu)
**Esra Akyazı, UX/UI Designer**
She is experienced in dApps and zkApps. Worked in both web2 and web3 projects. She also designed Choz in the first season of the Navigator program.
📌 Social links: [Linkedin](https://www.linkedin.com/in/uiesraakyazi/) - [Dribbble](https://dribbble.com/uiessra)
## **Achievements:**
1. **ETHGlobal Istanbul Hackathon 2023** - MINA Prize Category 4th Place
---
# 📌 Risks And Mitigation Strategies
### 1. Competitors like Family ConnectKit or Thirdweb Adopting Mina to their products
**Risk:**
If our major competitors integrate the Mina network into their systems, our ConnectKit might be at risk of falling behind in the competition. Their brand values are very high.
**Mitigation:**
We could explore potential mergers or share our know-how through open source contributions.
### 2. The successful upgrade of the network is a prerequisite.
**Risk:**
If the network is not successfully upgraded, there will be no zkApps to use our services. At this point, we are closely monitoring the network.
**Mitigation:**
We will closely monitor the network upgrade and be ready to take action at the slightest development. This way, users will be able to use our SDK without experiencing any issues during transitions.
### 3. The shortage of developers hinders the adaptation of updates.
**Risk:**
Developers in our team may not be able to keep up with the rapidly evolving o1js and Protokit updates while developing the product. They may have a delayed support for a while.
**Mitigation:**
A portion of the development budget will be reserved, and external developers will be engaged when necessary.