Expbuilder is a desktop app, electronjs.org-based , for creating cognitive and behavioral experiments based on the jspsych.org framework. It leverages free resources like Cloudflare Tunnels for self-hosting experiments, and GitHub Pages for external hosting, which is connected to a serverless API to send the experiment results to the user’s Dropbox and/or Google Drive. Jspsych requires code for building experiments, so Expbuilder provides a user interface that translates your experiment design into the code required by Jspsych.
- Desktop platform based on Electron
- Uses GitHub Pages for free hosting
- Jspsych as the main engine for experiment creation
- Cloudflare Tunnels for sharing experiments via self-hosting
- Connection to a serverless API (for free) for data capture and storage
- No coding required, but advanced users can extend functionality with it.
-
Clone the repository:
git clone https://github.com/adndvlp/expbuilder.git cd expbuilder -
Install dependencies for both client and server:
cd client npm install cd ../server npm install cd ..
- Add a folder named
cloudflaredinside theserverdirectory. - Place the Cloudflare Tunnel binary (Download here) for your operating system and CPU architecture inside this folder.
To run the application in development mode:
-
Start the client:
cd client npm run devThe client will be available at port 5173 (by default).
-
Start the server:
npm run electron
Make sure both processes are running for full functionality.
To create a production build of the app:
-
Build the client:
cd client npm run build -
Specify the correct architecture (
arch) in the rootpackage.jsonfile to ensure compatibility with your system. -
From the root of the project, build the Electron app:
npm run build:electron
- Development mode: Access the client in your browser at http://localhost:5173.
- Production mode: Use the Electron-generated application (the executable) to run the platform locally.
Contributions are welcome! Fork the repository and submit your pull request following the coding conventions and adding tests for new features.
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0). Commercial use is prohibited.
Developed by Andrés Pacheco Fabián under the guidance and supervision of Dr. Armando Quetzalcóatl Angulo Chavira from the Laboratory of Psycholinguistics at the Faculty of Psychology, UNAM. Laboratory website