Welcome to MetaForge!
MetaForge is a powerful visual experiment builder for behavioral research.
Create professional jsPsych experiments without writing code. This comprehensive guide
will walk you through every feature, step by step.
🚀 Getting Started
Creating Your Account
-
Visit MetaForge
Go to the MetaForge website and you'll see the welcome screen.
-
Sign In
Choose between:
- Google Sign-In: Click "Sign in with Google" for quick access
- Email & Password: Create an account with your email
-
Access Your Projects
After signing in, you'll automatically be taken to your Projects page.
💡 Tip:
Your experiments are automatically saved to the cloud, so you can access them from any device!
📁 Managing Projects
Creating a New Project
- Click the "New Project" button on your Projects page
- Enter a Title for your experiment
- Optionally add a Subtitle and Description
- Click "Create" to open the editor
Organizing Your Projects
Search & Filter
- Search Box: Type to search by project name or description
- Filter Dropdown: View different project categories:
- All Projects - Everything you have access to
- Owned by Me - Projects you created
- Shared with Me - Projects others shared with you
- Public Library - Templates and examples
Project Actions
Each project card has action buttons:
- Open: Click the card to open in the editor
- Duplicate: Create a copy of the project
- Share: Invite collaborators (see Collaboration)
- Save to Library: Add to your team's template collection
- Delete: Remove the project (only if you're the owner)
⚠️ Important:
Deleted projects cannot be recovered. Make sure to duplicate important experiments before deleting!
✏️ Editor Basics
Understanding the Interface
The MetaForge editor has three main panels:
Left Sidebar (Trial Editor)
Configure individual trials and their settings. This is where you'll spend most of your time building experiments.
Center Panel (Preview)
See a live preview of your experiment. What you see here is what participants will experience.
Right Sidebar (Timeline)
View and organize all trials in your experiment. Drag and drop to reorder trials.
Basic Workflow
-
Add a Trial
Click the "Add Trial" button in the Timeline panel
-
Choose a Trial Type
Select from the available plugins (see Trial Types)
-
Configure the Trial
Use the left sidebar to set up your trial's content and options
-
Preview
Check the center panel to see how it looks
-
Repeat
Add more trials to build your complete experiment
💡 Tip:
Your work is automatically saved every few seconds. Look for the "Saved" indicator at the bottom of the left sidebar.
🎯 Trial Types
MetaForge offers 11 different trial types, each designed for specific research needs. Here's a complete guide:
1. HTML Button Response
Best for: Multiple choice questions, consent forms, demographic surveys
What it does: Shows text or images with clickable buttons for responses.
Key Settings:
- Stimulus: The content participants see (text, images, HTML)
- Choices: Button labels separated by commas (e.g., "Yes,No,Maybe")
- Randomize Button Order: Mix up button positions to avoid bias
- Button Margins: Adjust spacing between buttons
Example Choices: "Strongly Agree,Agree,Neutral,Disagree,Strongly Disagree"
2. HTML Keyboard Response
Best for: Reaction time tasks, go/no-go tasks, categorization experiments
What it does: Shows content and waits for participants to press specific keyboard keys.
Key Settings:
- Stimulus: What participants see on screen
- Allowed Keys: Specify which keys are accepted:
ALL_KEYS - Accept any keyboard key
NO_KEYS - Don't accept responses (for display-only)
- Specific keys:
a,b,c or ArrowLeft,ArrowRight
- Response Ends Trial: Whether pressing a key moves to the next trial
Example Allowed Keys: "f,j" (common for binary classification tasks)
3. HTML Slider Response
Best for: Rating scales, confidence judgments, continuous measurements
What it does: Presents a slider that participants move to indicate their response.
Key Settings:
- Min Value: Leftmost slider value (e.g., 0)
- Max Value: Rightmost slider value (e.g., 100)
- Start Value: Where the slider begins
- Step: How much the slider moves (e.g., 1 for whole numbers)
- Labels: Text at each end (e.g., "Not at all,Extremely")
- Require Movement: Force participants to move the slider before continuing
4. Canvas Button Response
Best for: Custom visual stimuli, drawings, dynamic graphics
What it does: Lets you draw custom graphics using JavaScript code, then collect button responses.
Key Settings:
- Canvas Size: Width and height in pixels
- Background Color: Canvas background
- Drawing Function: JavaScript code that draws on the canvas
- Choices: Button labels for responses
💡 Tip:
Click "Edit Canvas Function" to open a full-screen code editor. The default template gives you a starting point!
5. Canvas Keyboard Response
Best for: Custom stimuli with keyboard responses, rapid visual presentation
What it does: Same as Canvas Button Response, but collects keyboard presses instead.
Key Settings:
- Same canvas settings as Canvas Button Response
- Allowed Keys: Which keyboard keys to accept
6. Instructions
Best for: Multi-page instructions, consent forms, tutorials
What it does: Shows multiple pages of content with forward/back navigation.
Key Settings:
- Pages: Add each page in the stimulus editor (separate by
<page> tags)
- Navigation Options:
- Show clickable buttons
- Allow keyboard navigation
- Allow going backward
- Button Labels: Customize "Next" and "Previous" button text
- Keyboard Keys: Set which keys advance/go back (default: Arrow keys)
7. Survey Multi-Choice
Best for: Multiple choice questionnaires, demographic forms
What it does: Creates forms with radio buttons or dropdown menus.
Key Settings:
- Preamble: Introductory text at the top of the survey
- Questions: Configure in the stimulus editor or use Survey Flow button
- Randomize Question Order: Mix up question presentation
- Required Message: Error text shown if required fields are empty
- Button Label: Submit button text
💡 Tip:
Use the "Survey Flow" button in the Timeline panel for a visual question builder!
8. Survey Text
Best for: Open-ended responses, free text answers
What it does: Creates forms with text input fields.
Key Settings:
- Same basic options as Survey Multi-Choice
- Field Types: Short text inputs or long textareas
- Autocomplete: Enable/disable browser autocomplete
9. Preload
Best for: Loading images, audio, and video before the experiment
What it does: Downloads media files in advance to prevent delays during the experiment.
Key Settings:
- Auto-preload: Automatically find media in your experiment
- Images/Audio/Video: Manually list files to load
- Show Progress Bar: Display loading progress
- Message: Text shown while loading
- Continue After Error: Keep going even if some files fail
💡 Tip:
Add a Preload trial at the beginning of your experiment. Turn on "Auto-preload" to automatically load all your uploaded images!
10. Fullscreen
Best for: Entering or exiting fullscreen mode
What it does: Switches the experiment to fullscreen (or exits fullscreen).
Key Settings:
- Fullscreen Mode: True to enter, false to exit
- Message: Instructions shown to participants
- Button Label: What the button says
- Delay After: Milliseconds to wait after entering fullscreen
11. Generic Plugin
Advanced
Best for: Using jsPsych plugins not built into MetaForge
What it does: Lets you use any jsPsych plugin by writing custom code.
Key Settings:
- Plugin Script Path: URL to the plugin's JavaScript file
- Plugin Type Name: Name of the plugin (e.g., "imageButtonResponse")
- Trial Code: JavaScript object with the trial parameters
⚠️ Advanced Feature:
This requires knowledge of jsPsych and JavaScript. See the jsPsych documentation for available plugins.
📋 Timeline & Blocks
Understanding the Timeline
The Timeline is the sequence of trials that participants experience. It's shown in the right sidebar.
Basic Timeline Operations
- Add Trial: Click "Add Trial" button
- Select Trial: Click on any trial in the timeline
- Reorder Trials: Drag and drop trials to rearrange
- Duplicate Trial: Click the duplicate icon on a trial
- Delete Trial: Click the trash icon
Creating Blocks
Blocks are groups of trials that share common settings. They're useful for:
- Organizing trials into phases (e.g., practice block, test block)
- Repeating a set of trials multiple times
- Randomizing trial order within a section
- Applying timeline variables to multiple trials
How to Create a Block
- Select multiple trials by clicking them (they'll highlight)
- Click the "Create Block" button
- Your selected trials are now grouped together
- Configure block-level settings in the left sidebar
Block Settings
| Setting |
What It Does |
| Repetitions |
How many times to run all trials in the block |
| Randomize |
Shuffle trial order within the block each time |
| Timeline Variables |
Apply variables to all trials in the block (see below) |
| Conditional Function |
Code to determine if the block should run |
| On Start/Finish |
Code to run before/after the block |
💡 Example Use Case:
Create a practice block with 5 trials, set repetitions to 1, randomize on. Then create a test block with the same trials, set repetitions to 5, randomize on. Participants get randomized practice, then 5 randomized test blocks!
🔄 Timeline Variables
What Are Timeline Variables?
Timeline Variables let you create one trial template and automatically generate many variations. This is perfect for:
- Showing different images or words on each trial
- Varying questions or response options
- Counterbalancing experimental conditions
How to Use Timeline Variables
-
Create a Trial or Block
Select the trial(s) you want to vary
-
Open Timeline Variables
Click "Advanced Options" → "Timeline Variables"
-
Choose Input Mode
- Table View: Visual spreadsheet-like interface
- CSV: Paste data from Excel or Google Sheets
- Text: Write JSON directly
-
Define Your Variables
Each column is a variable, each row is one trial repetition
-
Use Variables in Trials
Reference variables using {{variableName}} syntax
Example: Word Memory Task
Step 1: Create an HTML Keyboard Response trial
Step 2: Set up Timeline Variables table:
| word |
category |
correctKey |
| apple |
fruit |
f |
| carrot |
vegetable |
v |
| banana |
fruit |
f |
| broccoli |
vegetable |
v |
Step 3: In the trial's stimulus field, write:
<p>Is {{word}} a fruit or vegetable?</p>
<p>Press 'f' for fruit, 'v' for vegetable</p>
Result: One trial becomes four trials, each showing a different word!
Sampling Modes
| Mode |
What It Does |
| Sequential |
Shows rows in the order you defined |
| Random |
Shuffles rows, each shown once |
| Random with Replacement |
Randomly picks rows, same row can appear multiple times |
Advanced Features
Sample Size
Only show a subset of rows. For example, if you have 20 rows but only want to show 10 random ones.
Weighted Sampling
Add a column named weight to control probability. Higher weights = more likely to appear.
Frequency Sampling
Add a column named frequency to specify exact repetitions. A frequency of 3 means that row appears exactly 3 times.
💡 Pro Tip:
You can have timeline variables at both the trial level AND block level. Block-level variables create combinations with trial-level variables!
📝 Rich Text Editor
Formatting Tools
The stimulus editor includes powerful formatting options:
Text Formatting
Bold, Italic, Underline, Strikethrough
Text Size
Increase or decrease font size with + and - buttons
Colors
Change text color and background color
Fonts
Choose from multiple font families
Alignment
Left, Center, Right text alignment
Lists
Create numbered or bulleted lists
Links
Insert clickable hyperlinks
Code
Format text as inline code
Images
Insert images from your gallery
HTML Mode
Toggle between visual editing and raw HTML:
- Click the
</> button to switch to HTML mode
- Edit HTML directly if you know the code
- Click again to return to visual mode
Using Timeline Variables in Text
You can insert timeline variable placeholders anywhere:
- Click the "Insert Variable" button ({{x}} icon)
- Type the variable name
- The variable will be replaced when the trial runs
Example: <p>Welcome, {{participantName}}!</p>
⚠️ Note:
Timeline variables only work if you've defined them in the Timeline Variables section!
⚙️ Experiment Settings
Click the "Experiment Options" button at the top of the editor to access global settings.
Metadata Tab
Basic information about your experiment:
- Title: Experiment name
- Subtitle: Short description
- Description: Detailed information
- Author: Your name or lab
- Version: Version number for tracking changes
- Keywords: Tags for organization
- Category: Experiment, Survey, Game, or Template
- External URLs: Links to Prolific, OSF, etc.
Display Tab
Visual appearance settings:
Colors
- Background Color: Page background (default: white)
- Text Color: Default text color (default: black)
Fullscreen
- Start in Fullscreen: Automatically enter fullscreen when experiment begins
Custom Styling
- Custom CSS: Add your own CSS styles
- Custom Head HTML: Add scripts, fonts, or other HTML to the page head
Variables Tab
Define experiment-wide JavaScript variables:
- Add name/value pairs
- Access these variables in any custom code
- Random Selection: Comma-separated values pick one randomly (e.g., "A,B,C")
Code Tab
Advanced
Add custom JavaScript that runs before your experiment starts:
- Define helper functions
- Set up data structures
- Initialize external libraries
Developer Tab
Testing and debugging options:
- Simulation Mode: Run experiment with simulated responses
- Simulation Speed: Control how fast simulation runs
- Random Seed: Make simulations reproducible
💡 Tip:
Use the simulation mode to quickly test your experiment without clicking through manually!
💾 Data Collection & Storage
Where Does Data Go?
MetaForge offers multiple options for storing participant data:
1. MetaForge Hosting (Default)
When you publish to MetaForge (see Deployment), data is automatically saved to Firestore:
- No setup required - enabled by default
- Data linked to your account
- Real-time response tracking
- Download as CSV anytime
- Control data collection with Open/Closed status
Viewing Response Count
After publishing your experiment, you can track responses in real-time:
- Check the status badge in the editor header (shows response count)
- View detailed stats in Experiment Options → Deploy → Data Collection panel
- See when the last response was received
Downloading Data
You can download participant data from multiple locations:
-
From Deploy Tab (Recommended):
Experiment Options → Deploy → Data Collection → Click "📥 Download Data"
-
From Data Storage Tab:
Experiment Options → Data Storage → Click "Download Participant Data"
- Data downloads as CSV with all participant responses
2. OSF Integration
Automatically upload data to the Open Science Framework:
-
Create an OSF Project
Go to osf.io and create a project
-
Get Your API Token
OSF Settings → Personal Access Tokens → Create Token
-
Configure in MetaForge
Experiment Options → Data Storage → Enter OSF Project URL and API Token
-
Test Connection
Click "Test Connection" to verify
Data will now upload to OSF when participants complete your experiment!
3. Local Download
Participants can download their own data:
- Data saved in browser during experiment
- Downloaded as CSV at the end
- Useful for offline testing
Custom Data Fields
Add extra information to each trial:
- Click "Advanced Options" on a trial
- Expand "Custom Code"
- Use "Custom Data" function to add fields
Example:
{
condition: "experimental",
block: "practice",
trial_type: "recognition"
}
💡 Best Practice:
Always include a Preload trial and test data saving before launching your study!
🚀 Publishing & Deployment
Export Options
Click "Actions" menu at the top to access export options:
1. Download as HTML
What you get: A single HTML file with everything embedded
Use for:
- Running experiments offline
- Uploading to your own web server
- Sharing with collaborators
- Creating backups
2. Export Configuration (.jsexp)
What you get: A JSON file with your experiment structure
Use for:
- Importing into another MetaForge project
- Version control
- Sharing experiment designs
3. Download as Webloc (macOS)
What you get: A bookmark file that opens your experiment in the editor
Use for: Quick access on macOS
Hosting Options
MetaForge Hosting (Recommended)
Easiest option - no setup required!
-
Open Experiment Options
Click "Experiment Options" button at the top of the editor
-
Enable MetaForge Hosting
Go to "Deploy" tab → Turn ON "MetaForge Hosting" toggle
-
Publish Your Experiment
Click the "🚀 Publish to MetaForge" button that appears
(The dialog will close automatically and show your shareable URL)
-
Copy & Share
Copy the participant URL from the success dialog and share with participants
Participant URL format:
https://yoursite.com/host.html?id=yourExperimentId
Managing Your Published Experiment
After publishing, you'll see a status badge on the editor header and in your Projects page:
- 🟢 Published - Experiment is live and collecting data
- 🟠 Unpublished Changes - You've made edits that haven't been published yet
- 🔴 Closed - Data collection has been stopped (participants see a "study closed" message)
- 🗄️ Archived - Experiment is archived for long-term storage
Data Collection Controls
Once published, you can manage data collection from Experiment Options → Deploy tab:
- View Responses - See how many participants have completed your experiment
- Download Data - Export all collected data as CSV
- View Live URL - Get the shareable participant link
- Open/Close Data Collection - Control when participants can access your experiment
- Archive - Archive completed experiments for long-term storage
⚠️ Publishing Updates to Live Experiments:
If you publish changes to an experiment that already has participant data, MetaForge will warn you. Publishing updates to live experiments may affect data consistency and could impact participants currently taking the experiment. Always review changes carefully before publishing updates.
Stopping Data Collection
To prevent new participants from taking your experiment:
- Experiment Options → Deploy → Data Collection section
- Click the "🔴 Closed" button
- Participants will now see a "Study Closed" message instead of your experiment
- You can still download all collected data
Features:
- ✅ Instant publishing - no configuration required
- ✅ Automatic data collection to Firestore
- ✅ Real-time response tracking
- ✅ Version control with unpublished changes detection
- ✅ Open/close data collection on demand
- ✅ Warning system for publishing to live experiments
- ✅ Free hosting
GitHub Pages Hosting
For public, shareable experiments
-
Get GitHub Token
GitHub → Settings → Developer Settings → Personal Access Tokens → Generate Token
-
Configure in MetaForge
Experiment Options → Deploy → GitHub Pages
Enter: Username, Token, Repository Name
-
Publish
Click "Deploy to GitHub Pages"
-
Get URL
Your experiment will be at: https://username.github.io/repository-name/
Features:
- ✅ Free hosting
- ✅ Custom domain option
- ✅ Version control
- ✅ Public accessibility
OSF Hosting
For open science projects
- Configure OSF settings (see Data Collection)
- Click "Upload to OSF"
- Experiment files uploaded to your OSF project
Testing Before Launch
⚠️ Important Checklist:
- ✓ Test the experiment yourself completely
- ✓ Verify data is being saved correctly
- ✓ Check on different browsers (Chrome, Firefox, Safari)
- ✓ Test on mobile if participants will use phones
- ✓ Verify all images load properly
- ✓ Test SONA/Prolific integration if using
- ✓ Run through with a colleague
🤝 Collaboration & Sharing
Sharing Projects
Collaborate with colleagues by sharing experiments:
-
Open Project Card
Go to your Projects page
-
Click Share Button
Click the share icon on the project you want to share
-
Enter Collaborator Email
Type the email address of your colleague
-
Choose Permission Level
Select "View" or "Edit" access
-
Send Invitation
Click "Share" - they'll receive access immediately
Permission Levels
| Role |
Can View |
Can Edit |
Can Share |
Can Delete |
| Owner |
✅ |
✅ |
✅ |
✅ |
| Edit |
✅ |
✅ |
❌ |
❌ |
| View |
✅ |
❌ |
❌ |
❌ |
Team Library
Save experiments as templates for your team:
- Click the "Save to Library" button on a project card
- Project is added to the Public Library
- Team members can duplicate it to start new experiments
Trial Library
Save individual trials for reuse:
-
Save a Trial
While editing a trial, click "Advanced Options" → "Save to Library"
-
Use in Other Experiments
Click "Library" button in Timeline → Select saved trial
💡 Workflow Tip:
Create a template experiment with common trials (consent, demographics, instructions). Save to team library. Start all new experiments by duplicating the template!
🔧 Advanced Features
Custom JavaScript Code
Advanced
MetaForge supports custom JavaScript for advanced users:
Trial-Level Custom Code
Click "Advanced Options" on any trial to access:
| Function |
When It Runs |
Use For |
| on_load |
When trial appears |
Modify display, start timers, custom animations |
| on_finish |
When trial ends |
Process responses, calculate scores, update variables |
| Conditional Display |
Before trial runs |
Show/hide trial based on previous responses |
| Custom Data |
During trial |
Add metadata to saved data |
Example: Conditional Display
Only show a trial if participant got previous answer correct:
function() {
const lastTrial = jsPsych.data.get().last(1).values()[0];
return lastTrial.correct === true;
}
Example: Custom Data
Add extra fields to the data:
{
experimentPhase: "practice",
stimulusCategory: "faces",
responseDeadline: 2000
}
Canvas Function Editor
Create custom visual stimuli with JavaScript:
- Add a Canvas Button or Canvas Keyboard trial
- Click "Edit Canvas Function"
- Write JavaScript to draw on the canvas
Example: Draw a Circle
function draw(canvas) {
const ctx = canvas.getContext('2d');
ctx.clearRect(0, 0, canvas.width, canvas.height);
// Draw circle
ctx.beginPath();
ctx.arc(150, 150, 50, 0, 2 * Math.PI);
ctx.fillStyle = '#4c8dff';
ctx.fill();
// Add text
ctx.font = '20px Arial';
ctx.fillStyle = 'black';
ctx.textAlign = 'center';
ctx.fillText('Click a button!', 150, 250);
}
Using Functions in Fields
Some fields accept JavaScript functions instead of static values:
Dynamic Stimulus
Instead of static HTML, use a function:
function() {
const trialNumber = jsPsych.data.get().count() + 1;
return `<p>This is trial ${trialNumber}</p>`;
}
Dynamic Choices
Generate button choices dynamically:
function() {
const options = ['Red', 'Green', 'Blue'];
return jsPsych.randomization.shuffle(options);
}
Accessing jsPsych Data
In any custom code, you can access experiment data:
// Get all data
const allData = jsPsych.data.get();
// Get last trial
const lastTrial = jsPsych.data.get().last(1).values()[0];
// Filter by type
const buttonTrials = jsPsych.data.get().filter({trial_type: 'html-button-response'});
// Get specific column
const allRTs = jsPsych.data.get().select('rt').values;
Survey Flow Builder
Visual tool for complex surveys:
- Add a Survey Multi-Choice or Survey Text trial
- Click "Survey Flow" button in the Timeline
- Add questions with drag-and-drop interface
- Create randomizer blocks for question randomization
- Reorder questions by dragging
Simulation Mode
Automatically test your experiment:
- Click "Actions" → "Simulate Experiment"
- jsPsych will automatically:
- Make random button clicks
- Press random keys
- Fill in survey responses
- Complete the entire experiment
- Review simulated data to verify everything works
💡 Pro Tip:
Set a random seed in Developer Options to make simulations reproducible. Same seed = same responses every time!
Generic Plugin
Use any jsPsych plugin not built into MetaForge:
- Find the plugin on the jsPsych website
- Add a Generic Plugin trial
- Enter:
- Plugin Script Path: URL to the plugin's .js file
- Plugin Type Name: Name of the plugin (e.g., "imageButtonResponse")
- Trial Code: JavaScript object with trial parameters
⚠️ Advanced Users Only:
Generic plugins require knowledge of jsPsych's plugin system. See the jsPsych documentation for details.
💡 Tips & Best Practices
Experiment Design
- ✅ Start with Instructions: Always begin with clear, multi-page instructions
- ✅ Add Practice Trials: Include practice with feedback before the main experiment
- ✅ Use Fullscreen: Add a Fullscreen trial to minimize distractions
- ✅ Preload Media: Always add a Preload trial before showing images
- ✅ Randomize When Possible: Use randomization to avoid order effects
- ✅ Save Frequently: Although auto-save is enabled, manually save after major changes
Data Quality
- ✅ Attention Checks: Include catch trials to verify participants are paying attention
- ✅ Required Fields: Mark survey questions as required to avoid missing data
- ✅ Test Thoroughly: Run through your entire experiment before launching
- ✅ Pilot Test: Have colleagues complete a pilot run
- ✅ Verify Data Saving: Check that data is being stored correctly
Performance
- ✅ Optimize Images: Compress images to reduce file size
- ✅ Limit Simultaneous Media: Don't load too many large files at once
- ✅ Test on Multiple Browsers: Verify compatibility across Chrome, Firefox, Safari
- ✅ Mobile Testing: Test on phones if participants will use mobile devices
Organization
- ✅ Use Descriptive Names: Give trials clear, meaningful names
- ✅ Organize with Blocks: Group related trials into blocks
- ✅ Comment Your Code: Add comments to custom JavaScript
- ✅ Version Control: Export configurations regularly as backups
- ✅ Use Templates: Create reusable trial templates in the library
Collaboration
- ✅ Share Early: Invite collaborators before you're done for feedback
- ✅ Duplicate Before Major Changes: Make a backup copy before big revisions
- ✅ Document Changes: Keep notes about what you modified
- ✅ Set Permissions Carefully: Give "View" access unless editing is needed
🔍 Troubleshooting
Common Issues
Images Not Showing
Solutions:
- Check that images are uploaded to the gallery
- Verify image path starts with "uploads/"
- Add a Preload trial with auto-preload enabled
- Check browser console for error messages
Data Not Saving
Solutions:
- Verify you published the experiment to MetaForge or configured OSF
- Test with a complete run-through
- Check Experiment Options → Data Storage settings
- Review browser console for errors
Timeline Variables Not Working
Solutions:
- Check variable names match exactly (case-sensitive)
- Verify you're using
{{variableName}} syntax
- Make sure timeline variables are defined at the correct level (trial or block)
- Test with simple values first before complex HTML
Experiment Won't Preview
Solutions:
- Check browser console for JavaScript errors
- Verify all custom code is syntactically correct
- Try removing recently added trials to isolate the issue
- Clear browser cache and refresh
SONA/Prolific Integration Not Working
Solutions:
- Double-check API tokens are entered correctly
- Verify URL parameters are configured in the platform
- Test with a personal run-through using the exact URL participants will use
- Check that completion codes match
Getting Help
If you're stuck:
- 📧 Contact Support: Reach out via the feedback link
- 📖 jsPsych Documentation: Visit jspsych.org for detailed plugin docs
- 💬 Community Forum: Ask questions in the jsPsych community
- 🔧 Browser Console: Press F12 to see error messages that can help diagnose issues
🎉 Ready to Build!
You now have a complete understanding of MetaForge's features. Whether you're creating
a simple survey or a complex behavioral experiment, MetaForge provides the tools you need.
Quick Start Summary
- Create a Project - Sign in and click "New Project"
- Add Trials - Build your experiment trial by trial
- Configure Settings - Set up data collection and display options
- Test Thoroughly - Preview and test on multiple devices
- Publish - Deploy to MetaForge or GitHub Pages
- Collect Data - Share with participants and gather responses
🚀 Next Steps:
Start with a simple experiment - maybe a brief survey or reaction time task.
As you get comfortable, explore advanced features like timeline variables and custom code.
Happy experimenting!