GSoC20 start contribution in React Native codebase

Hello, all my name is Amit Kumar Singh. I did a random search for React Native projects GSoC 2020 and got to know about Joplin. I have some experience working with React Native. I have made an app on React Native “
In frontend I have used

  • React Native 58
  • Redux
  • Client
    and for backend I used
  • Nodejs
  • Express
  • Mongodb
    and a few other middlewares.

I want to use my skills in contributing to this project as GSoC student for 2020. Please help me know how to get started with React Native contribution

Hello Amit, and welcome here! If you know about React Native, a good first step would be to build the app as described in Then you can have a look at the GitHub issue tracker to see if there’s something you could fix or implement to make yourself familiar with the codebase. Have a look also at the “good first issue” tag, and if you need any help feel free to post here.

Hey, I was trying to build react native project but while building I got error
ElectronClient/app/gui/ShareNoteDialog.tsx:6:29 - error TS2307: Cannot find module ‘…/…/lib/JoplinServerApi’.

so I went to the file and modified the way it was calling the the module
Screenshot from 2019-12-16 13-06-10
//import JoplinServerApi from ‘…/lib/JoplinServerApi’;
const { JoplinServerApi } = require(‘lib/JoplinServerApi’);

and after modifying I didn’t got any error.
so is it kinda bug or what ?
maybe other users may face this issue while building the project

Hi, please have a look at and follow the steps there. If it doesn’t work for you, please let us know what step. In particular it seems you have skipped the part about compiling the TypeScript files.

The need to be updated only for Building the Mobile application
All the library is inside ReactNativeClient/lib folder
so when building the mobile application in doc it is mentioned that
we are required to follow the below commands as per the doc

npm run tsc
cd ReactNativeClient
npm install
react-native run-ios
# Or: react-native run-android

but running

npm run tsc 


npm run copyLib

creates problem

but after running

npm run copyLib


npm run tsc 

works perfectly

Please take a look

Yes you are correct, the problem with the current TypeScript setup is that it tries to compile in all directories, which might not have the lib directory. Maybe we should indeed restrict it to work per app, or improve it some other way.

Yeah but for now we can update the so that other contributors dont face this issue.

I have successfully setup the development environment for Mobile application and found splash screen for the app is missing it shows white screen till the app gets load at the start.
Can I create this as a issue and fix this to get my first contribution at Joplin

If this is but, yes than please go ahead.
May I suggest another tag to tackle: How do you search for todos?

are you intersted in any of these projects


That definitely would be a nice improvement.

@laurent please take a look to this
and let me know what has to be done

Hello there, I have setup the mobile application on my machine. Can anyone guide me how to proceed further.

@rohit645 welcome to Joplin best way to get started try to use the Joplin app so that you understand how it works and can also find some issues. For code contribution start with good first issues"good+first+issue"

Do read more about contributing guidelines

1 Like

Thanks @amitsin6h

when you write “I have setup the mobile application on my machine” you mean that you are planning to code for the mobile plateform ?

Yes, @foxmask I am planning to contribute to Mobile Platform of Joplin. I should have made it clear earlier, sorry for that.

no problem it's fine - I should have read the topic too again :wink:

@rohit645 did you got markdown-it-expand-tabs module unresolve error while running the app ?

did you got markdown-it-expand-tabs module unresolve error while running the app ?

This was recently added but there are problems with the app build process still being resolved.

To solve it for the short term, you can add it to the dependencies section of your local copy of your app packages.json:

    "markdown-it-expand-tabs": "^1.0.13",
1 Like

You submitted quite a comprehensive proposal but there are some concerns in regard of your code quality
@amitsin6h would you mind to double check your code before doing a PR.
It is going to be quite time intensive to explain you all the details what have to be changed.
May you read other PR or read related code to find some guidance and update your PR accordingly.

1 Like