DEMOLAND is an open source website template that allows you to distribute editable code demos (HTML, CSS, JavaScript) entirely within your web browser. This project was created by GD with GD to make teaching code easier, without the need for subscribing to any premium code distribution services.

DEMOLAND is a metaphor for a library containing books featuring chapters of demos. Each book is organized via JSON files, and each demo is split up into two HTML files (content and information). A Node.js file generates the homepage as a static document, while the code editor page fetches demos dynamically. The editor is built using CodeMirror 5.

Interested in launching your own DEMOLAND site? Clone the GitHub repository and launch your site via GitHub pages!

CREDITS
DEMOLAND was developed by GD with GD / Gabriel Drozdov. The site features Limkin by Too Much Type and Monaspace by GitHub. Text editors are built using CodeMirror 5. The original DEMOLAND site is available at demoland.gdwithgd.com.

If you launch your own DEMOLAND, I’d appreciate it if you left these credits in. And sent me an email just to share your work!

Welcome to DEMOLAND!

DEMOLAND is an open source website template that allows you to distribute editable code demos (HTML, CSS, JavaScript) entirely within your web browser. By GD with GD.

2010s web design exhibit Cflexducks3Weekly Challenge: Funky dice solutionTesting codeModifying arraysgridcats1Question 41990s web designGetting data from objectsQuestion 32010s web design exhibit CQuestion 3ConditionalsVariablesHelper functionsWeekly Challenge: Funky diceMaking it prettyLooping through arraysdiscodogs2flexducks-payoffQuestion 1Weekly Challenge 2Modifying stringsQuestion 42010s web design exhibit DportfolioQuestion 4Homework templatediscodogs1Question 22010s web design exhibit BQuestion 1Question 2Bonus Questionflexducks-payoffLooping through arraysWeekly Challenge 3 SolutionStarter TemplateEvery click, a story1990s web designPlaying with arraysCSS Self-portraits2010s web design exhibit BSide effects2010s web design exhibit Aflexducks2Weekly Challenge: Funky diceTesting codeWarm Up: Poem generator2000s web designIntroductionWeekly Challenge 3 SolutionOperatorsdiscodogs3flexducks4Question 3Weekly Challenge 3HTML templateWhat is CSS?What’s next?Splitting things upData typesVariablesflexducks3discodogs1flexducks-payoffRepeating code with loopsQuestion 4Playing with arraysPlaying with arrays2010s web design exhibit BLooping through arrays2010s web design exhibit CQuestion 5Warm Up: Poem generatorThe “select” elementQuestion 4flexducks-payoffStarter TemplateCSS Self-portraitsCSS Self-portraitsGetting random valuesHomework templateWeekly Challenge 2VariablesTry It Out: “for” loopsQuestion 4Question 1gridcats-payoffgridcats3Question 3Bonus Questionflexducks1Question 4Playing with arraysStarter Templatediscodogs1Helper functionsMaking it pretty2010s web design exhibit A
2010s web design exhibit Cflexducks3Weekly Challenge: Funky dice solutionTesting codeModifying arraysgridcats1Question 41990s web designGetting data from objectsQuestion 32010s web design exhibit CQuestion 3ConditionalsVariablesHelper functionsWeekly Challenge: Funky diceMaking it prettyLooping through arraysdiscodogs2flexducks-payoffQuestion 1Weekly Challenge 2Modifying stringsQuestion 42010s web design exhibit DportfolioQuestion 4Homework templatediscodogs1Question 22010s web design exhibit BQuestion 1Question 2Bonus Questionflexducks-payoffLooping through arraysWeekly Challenge 3 SolutionStarter TemplateEvery click, a story1990s web designPlaying with arraysCSS Self-portraits2010s web design exhibit BSide effects2010s web design exhibit Aflexducks2Weekly Challenge: Funky diceTesting codeWarm Up: Poem generator2000s web designIntroductionWeekly Challenge 3 SolutionOperatorsdiscodogs3flexducks4Question 3Weekly Challenge 3HTML templateWhat is CSS?What’s next?Splitting things upData typesVariablesflexducks3discodogs1flexducks-payoffRepeating code with loopsQuestion 4Playing with arraysPlaying with arrays2010s web design exhibit BLooping through arrays2010s web design exhibit CQuestion 5Warm Up: Poem generatorThe “select” elementQuestion 4flexducks-payoffStarter TemplateCSS Self-portraitsCSS Self-portraitsGetting random valuesHomework templateWeekly Challenge 2VariablesTry It Out: “for” loopsQuestion 4Question 1gridcats-payoffgridcats3Question 3Bonus Questionflexducks1Question 4Playing with arraysStarter Templatediscodogs1Helper functionsMaking it pretty2010s web design exhibit A
2010s web design exhibit Cflexducks3Weekly Challenge: Funky dice solutionTesting codeModifying arraysgridcats1Question 41990s web designGetting data from objectsQuestion 32010s web design exhibit CQuestion 3ConditionalsVariablesHelper functionsWeekly Challenge: Funky diceMaking it prettyLooping through arraysdiscodogs2flexducks-payoffQuestion 1Weekly Challenge 2Modifying stringsQuestion 42010s web design exhibit DportfolioQuestion 4Homework templatediscodogs1Question 22010s web design exhibit BQuestion 1Question 2Bonus Questionflexducks-payoffLooping through arraysWeekly Challenge 3 SolutionStarter TemplateEvery click, a story1990s web designPlaying with arraysCSS Self-portraits2010s web design exhibit BSide effects2010s web design exhibit Aflexducks2Weekly Challenge: Funky diceTesting codeWarm Up: Poem generator2000s web designIntroductionWeekly Challenge 3 SolutionOperatorsdiscodogs3flexducks4Question 3Weekly Challenge 3HTML templateWhat is CSS?What’s next?Splitting things upData typesVariablesflexducks3discodogs1flexducks-payoffRepeating code with loopsQuestion 4Playing with arraysPlaying with arrays2010s web design exhibit BLooping through arrays2010s web design exhibit CQuestion 5Warm Up: Poem generatorThe “select” elementQuestion 4flexducks-payoffStarter TemplateCSS Self-portraitsCSS Self-portraitsGetting random valuesHomework templateWeekly Challenge 2VariablesTry It Out: “for” loopsQuestion 4Question 1gridcats-payoffgridcats3Question 3Bonus Questionflexducks1Question 4Playing with arraysStarter Templatediscodogs1Helper functionsMaking it pretty2010s web design exhibit A

Tutorial

Get started with DEMOLAND and learn how to code websites!

Introduction to Computation

What is code? What can we use it for? This book is an introduction to coding through the lens of web programming. We’ll cover object-oriented programming using JavaScript, and use HTML and CSS to create visual and interactive outputs.

Week 1

What is code?

Let’s get started by playing around with HTML and CSS!

Open chapter  ↗
Week 2

The basics

Introducing the basics of JavaScript: variables, data types, operators, conditionals, and functions.

Open chapter  ↗
Week 3

Answers to Technical 1

Try to answer these questions on your own first! You can access the assignment here.

Open chapter  ↗
Week 3

On a loop

How can we use code to do a whole bunch of things at once? With loops!

Open chapter  ↗
Week 4

Technical 2

Topics: random numbers, input elements, accessing data from arrays, for/while loops.

Open chapter  ↗
Week 4

Technical 2 Answers

Topics: random numbers, input elements, accessing data from arrays, for/while loops.

Open chapter  ↗
Week 4

Constructing data

We can store, access, and modify data (relatively) easily using arrays and objects.

Open chapter  ↗
Week 5

Fun with CSS

Let’s make self-portraits!

Open chapter  ↗