Mirror of a WIP clone of the Scratch API and others made in Django
  • HTML 72.8%
  • JavaScript 11%
  • Python 8.9%
  • CSS 7.3%
Find a file
2026-03-11 21:11:07 -04:00
_docs
accounts
apiclone Merge branch 'main' of codeberg.org:heathercat123/apiclone 2026-03-11 21:11:07 -04:00
base_comments Fix clicking comment form while signed out not opening modal 2026-03-09 08:09:05 -04:00
djangobb_forum
educators
files
galleries
help
hosts Try to get Scratch 2 to like cloud vars 2026-03-11 15:21:58 -04:00
internalapi Try to get Scratch 2 to like cloud vars 2026-03-11 15:21:58 -04:00
lib
news
ngapi
notifications
pagination
projects
scratch_admin
siteapi
static oops 2026-03-08 19:21:00 -04:00
templates Merge branch 'main' of codeberg.org:heathercat123/apiclone 2026-03-08 18:18:58 -04:00
userprofiles Merge branch 'main' of codeberg.org:heathercat123/apiclone 2026-03-08 18:18:58 -04:00
.gitignore
forumindex.py
jinxer.py
LICENSE
manage.py
README.md
requirements.sh Remove /commit route 2026-03-08 18:00:54 -04:00
requirements.txt Try and fail to get cloud variables working 2026-03-11 14:45:37 -04:00
todo.txt
upgrade.sh

APIClone

Work in progress recreation of the main Scratch API, projects API, assets API, uploads API and ScratchR2.

Requirements

APIClone requires the following to be installed:

  • Python. Only versions 3.12 and 3.13 were tested, but any version from 3.8 to the latest should work in theory. The rest can be installed using pip install -r requirements.txt.

Usage with Scratch-WWW

  1. Clone APIClone and Scratch-WWW:

    git clone https://codeberg.org/heathercat123/apiclone.git
    git clone --depth=1 --single-branch --branch develop https://github.com/scratchfoundation/scratch-www.git
    cd apiclone
    
  2. Create superuser (admin/ST account): python manage.py createsuperuser

  3. Optional: Collect static files: ```python manage.py collectstatic`` This will create the static_prod directory for production environments.

  4. Start APIClone: python manage.py runserver 8000

  5. Switch to another terminal window.

  6. Install Scratch-WWW's dependencies and translations:

    cd scratch-www
    npm install
    npm run translate
    
  7. Start Scratch-WWW:

    API_HOST=http://localhost:8000/hosts/api \
    ASSET_HOST=http://localhost:8000/hosts/assets \
    BACKPACK_HOST=http://localhost:8000/hosts/backpack \
    CLOUDDATA_HOST=http:/localhost:8000/hosts/clouddata \
    PROJECT_HOST=http://localhost:8000/hosts/projects \
    STATIC_HOST=http://localhost:8000/hosts/uploads \
    FALLBACK=http://localhost:8000 \
    npm start
    

You can now open http://localhost:8333 in a web browser and enjoy Scratch-WWW with APIClone. Note that many elements of the website are hard-coded whereas they should be modifiable by the user, such as the home page's "What's Happening" box. Quite a few pages and API endpoints are also missing. Both of these are either currently being worked on or this project may randomly have gotten abandoned. I love life.

Standalone usage

  1. Clone APIClone:

    git clone https://codeberg.org/heathercat123/apiclone.git
    cd apiclone
    
  2. Create superuser (admin/ST account): python manage.py createsuperuser

  3. Optional: Collect static files: ```python manage.py collectstatic`` This will create the static_prod directory for production environments.

  4. Create a file in the apiclone subdirectory called local_settings.py:

    from .settings import *
    SCRATCHR2_ONLY = True
    
  5. Start APIClone: python manage.py runserver 8000

You can now open http://localhost:8333 in a web browser and enjoy the good old Scratch 2.0 website. Note that many elements of the website are hard-coded whereas they should be modifiable by the user. Quite a few pages and functionality are also missing. Both of these are either currently being worked on or this project may randomly have gotten abandoned. I love life.