ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
A free learning environment for IB Diploma Programme Economics. Learn the concepts, see the model, build the chain, stress-test the argument, make the judgement.
EducationHTML · JavaScriptGitHub @ArjunAgrawal101OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Think like an economist.
A free, browser-based learning environment for IB Diploma Programme Economics, built by
Arjun Agrawal: IB DP Facilitator in Economics, Business Management and Global Politics,
Economics educator, UPSC CSE mentor and resource creator.
Learn the concept. See the model. Build the chain. Stress-test the argument. Make the
judgement. Apply it under pressure.
Not a content repository. A system for practising the sequence that IB DP Economics
actually assesses:
cause → behaviour → market effect → second-round effect → wider consequence → evaluation → judgementRead the full README ↗Think like an economist.
A free, browser-based learning environment for IB Diploma Programme Economics, built by Arjun Agrawal: IB DP Facilitator in Economics, Business Management and Global Politics, Economics educator, UPSC CSE mentor and resource creator.
Learn the concept. See the model. Build the chain. Stress-test the argument. Make the judgement. Apply it under pressure.
Not a content repository. A system for practising the sequence that IB DP Economics actually assesses:
cause → behaviour → market effect → second-round effect → wider consequence → evaluation → judgement
Everything runs in the browser. There is no account, no tracking, and no AI API. A student can
download index.html, double-click it, and work offline. The one piece that runs on a server is
optional: the video studio reads the channel's public uploads through a small Vercel function
(api/youtube.js), which holds the YouTube key and receives nothing about the reader. Without it,
the video studio says so and everything else works exactly as before.
Economics is not only a subject you study. It is a way of understanding the world.
| Section | What it does |
|---|---|
| Course | The reference layer: the course at a glance, the six real-world issues, the nine key concepts, a complete curriculum explorer reading every subtopic three ways, an SL/HL difference explorer, a visual knowledge map, a 250-term glossary (Glossary 2.0, under Course › Dictionary) and a command term lab covering all 33 terms in the guide's glossary. |
| Learn | Every concept in nine stages: the idea, intuition, the model, the diagram, the chain, the application, the stress test, the IB connection, retrieval. Plus a curriculum map and a misconception lab. |
| Think | The Economic Chain: build a mechanism link by link against a live shock, then survive a conditionality test and choose between four judgements. Plus an evaluation stress test across fourteen dimensions, a Think › Dimension library setting out those dimensions as Evaluation is conditionality, a concept-connection exercise, and a conditions library of the twelve conditions that carry almost every "it depends" in the course, with an assumptions lab and a "when does the model break?" lab beside it. Last, the economist's toolkit: eighteen lenses (incentives to institutions), each with its questions and links into the platform's own material. |
| Lab | Computed market and AD-AS models you can move, a transparent policy simulator, a 35-plate diagram atlas (each plate with a reading guide: what changes, why, what the diagram does not show and the common mistake), a counterfactual "What if?" lab, a policy Decision Room, a "build it yourself" diagram builder, a 20-policy toolkit with a comparison matrix and a two-policy comparator, a Recommend-a-policy lab for HL Paper 3 part (b), an 11-model library stating assumptions before diagrams, a stakeholder / time-horizon / context lab, a predict-before-reveal mode for the diagrams, a "check my diagram" error detector, and three live integrity dashboards: model, content and links. |
| Calculate | The calculation centre: 36 calculations with live working, units, interpretation, common mistakes, linked diagrams and generated practice that hides the solution until you attempt it: plus a printable calculation sheet for the student's own level. |
| Real World | The largest section on the platform. 203 real-world cases remapped to the 2022 guide, each carrying its subtopic, level, papers, key concepts, diagram and evaluation, searchable and filterable by topic, concept, assessment, place, theme, level and case type; twelve of them worked to a full teaching standard. Around them: a twelve-zone case reader, a case-connection graph, Find me an example, Build an evaluation, Compare two cases, Use this case, three transfer challenges, My casebook, a syllabus atlas, a concept index, an assessment matrix and a sources-and-method page. The earlier surfaces are all still here: six recurring economic events, the eight worked cases split into verified fact, interpretation and inference, a data sources library, and an "Economics now" page that states plainly that this platform holds no live data. |
The platform reads as an economics publication rather than a long page of cards.
An opener that is about the page. Every page opens with a figure drawn for what it covers: comparative advantage on the comparative advantage page, a Lorenz curve for inequality, markbands in the exam room, and a case's own diagram on each Real World case. The 28 figures are built from stated functions, so their intersections, wedges and shaded areas are where the economics puts them, and the self-test recomputes them.
A register for each section. Journal paper for the course, Learn, the IA, the EE Studio, TOK and Educators; a newsroom for Real World; graph paper for the labs; ruled paper for the exam room; a field of nodes for mindmaps; a magazine for Economics, Everywhere. These are one system with one palette (obsidian, burgundy, chalk, and brass for rules and ornaments). Semantic colour stays inside diagrams.
The brand, in vector. The logo, reversed logo, monogram, wordmark, favicon and app icons are
SVG masters in assets/brand/, crisp at any size.
The opening. The brand line, Think like an economist., is the typographic signature.
The home page. It opens on a cover and a working model.
A section for readers who are not taking the IB course, and for IB students who want the economics
behind it. It lives at #/everywhere and is linked from the bar, the drawer, the More menu and the
home page.
Every big question is built the same way. The question → the short answer → the economic idea → Why does this happen?, the mechanism revealed one step at a time → a real example, labelled → Change one thing, an interactive lab → What would you expect?, a prediction made before the reasoning is shown → Go deeper, at beginner, student, IB or advanced level → the confusion to avoid → links to the platform's concepts, cases, mindmaps, diagrams and calculations → a pathway onward → sources.
Every claim carries its layer. A fact names its source, drawn from one register of checked URLs (central banks, statistical agencies, the IMF, World Bank, OECD, WTO, ILO, UNDP, the Nobel Prize site, and a small number of papers and reputable reports). An illustrative example uses invented numbers and says so. A stylised model is labelled on every lab and states its assumptions; none is a forecast. Nothing in the section is live data: Where the numbers live says which institution publishes each current figure and how to read it, and holds no figures itself.
The labs are declared models checked against independent solutions. Price, inflation and purchasing power, tax incidence, the minimum wage (competitive and monopsony), the exchange rate, interest rates and loan repayments, externalities, comparative advantage, a repeated pricing game, a public-goods game, who gets the growth, the power of growth, a membership calculator, an AD-AS explorer and network effects. The self-tests check, among other things, that tax incidence follows PES / (PES + |PED|), that the exchange-rate lab switches exactly at the Marshall-Lerner condition, that monopsony employment traces an inverted U, and that both countries gain from trade exactly when the terms of trade lie between the two opportunity costs.
It remembers, on this device only. Saved pieces join the platform's single saved list; recently opened pieces appear under Continue exploring and in the home page's continue-learning record; the chosen explanation level is remembered. Nothing is transmitted.
A workspace for the Economics extended essay: Research Economics. Build an argument. Think like an economist. It works as diagnose → question → refine → test again. It never writes, approves or grades anything, and everything a student enters stays in their own browser.
Source discipline. Every statement about the essay carries one of five labels: Official IB requirement (read first-hand in the Economics guide or its teacher support material, with the page); Official IB requirement · reported (from the Extended essay guide for first assessment 2027, which was not supplied to this project, via the author's Extended Essay Navigator: to be confirmed in the guide); Professional interpretation; Pedagogical suggestion; Teacher-created tool. Where the sources disagree, both are shown: the Economics guide (2022, p. 8) says the issue "must have taken place up to five years prior to the beginning of the research process", while the Navigator reports no recency rule in the 2027 Extended essay guide. The studio says the current Extended essay guide governs and sends the student to check it with their supervisor.
The video studio (#/arjun) lists the channel's videos automatically. No video is written into the
page: a new upload appears on its own.
How it works. The page calls /api/youtube, a Vercel serverless function in api/youtube.js.
With a key it reads the channel's uploads playlist, durations (to identify Shorts) and playlists
through the YouTube Data API v3, resolving the channel from its handle; without a key but with a
channel ID it reads the channel's public RSS feed (the latest 15 uploads, no playlists or
durations). The answer is cached in the function's memory for 30 minutes and at Vercel's edge for
an hour, so YouTube is not called on every page view; if YouTube fails, the last good answer is
served and marked as stale. Every call to YouTube has a timeout and one retry. Categories come from,
in order: manual overrides, playlist titles, then words in each video's title and description
(lib/youtube-categories.js; add a category by adding one entry there).
Setting it up (Vercel). In the Vercel dashboard open the project → Settings → Environment Variables, add the following, then redeploy:
| Variable | Required | What it is |
|---|---|---|
YOUTUBE_API_KEY | Recommended | A YouTube Data API v3 key. Create it in the Google Cloud console (APIs & Services → Credentials), enable "YouTube Data API v3" for the project, and restrict the key to that API. It is read only by the server function and never sent to the browser. |
YOUTUBE_CHANNEL_HANDLE | No | Defaults to @arjunagrawal5724. |
YOUTUBE_CHANNEL_ID | No | The channel's UC… ID. With a key, it skips the handle lookup. Without a key, it switches on the keyless RSS fallback. |
YOUTUBE_TIMEOUT_MS | No | Timeout for each call to YouTube; default 8000. |
With neither a key nor a channel ID, /api/youtube answers "not configured", and the studio shows
a short note with a link to the channel instead of breaking. Quota use is small: one refresh costs
about four units plus one per playlist, against the free daily allowance of 10,000 units.
The channel ID was not verified when this was built: YouTube could not be reached from the build
environment, so the function resolves the channel from the handle at run time. Once deployed, open
/api/youtube and check that channel.title is correct; setting YOUTUBE_CHANNEL_ID then pins it.
Privacy. The page requests only /api/youtube, without cookies or any information about the
reader, and never during the self-test. Videos open on YouTube, under YouTube's own terms.
A definition recalled without its mechanism is inert. A diagram drawn without an argument attached to it earns almost nothing. So the platform puts the mechanism first, and everything else attaches to it:
Understand → Visualise → Connect → Analyse → Stress-test → Judge → Apply
Around that spine sits the structure the guide itself uses: six real-world issues, read through nine key concepts, across four units. Every subtopic in the curriculum explorer answers the same three questions: what do I need to know, what must I be able to do, and how could this be assessed.
That framework is a teacher's framing, not IB terminology, and the platform labels it as such.
Where the source lives. index.html is still the shipped file, but it is now built:
src/modules/*.js and src/styles/*.css are spliced into it by python3 tools/build/splice.py.
The splice is idempotent, and its output was checked byte-identical before the move.assets/data/ by tools/build/build_ideas.py and
tools/build/build_data.py.tools/migrations/.docs/architecture-decision.md gives the reasoning, the measured baseline and the staged plan.
index.html. No framework, no bundler, no dependencies to install.index.html,
because that is what makes it work from a memory stick, from an email attachment and from a
file:// path with no server. Parse cost was measured rather than assumed, over three cold
loads of the packaged file: first contentful paint 280 to 288 ms, DOMContentLoaded 1.66 to
1.70 s, 964 DOM nodes after the home page renders, a 20 MB heap, and the slowest render in the
build is the diagram atlas, now 35 plates. Sixty navigations across the routes (34 sections and
194 tabs) leave the heap unchanged. The parse figure grew with the bundled copies of the two
corpora, which is the cost of a file that still works when it arrives on its own. Splitting the remaining datasets
would have traded that for a tree of files that breaks the moment one of them is lost. The one
exception is the pair of reference corpora, assets/data/exam-dna.js and
assets/data/real-world.js, which are loaded with a plain <script src> because they are
reference data rather than behaviour and because each must be auditable on its own. Neither is
required, and neither can leave a gap. Both also travel inside index.html, as JSON held in
function bodies the engine skips until they are called. If the copy in assets/data loads, the
bundled copy is never read; if it does not, the platform adopts the bundled copy and nothing on
the screen changes. Served beside its assets folder, the build runs the full 2,076 checks with
nothing failing. Opened on its own, without assets/, it still works but the checks on the
lazily loaded files fail, by design.assets/fonts/, so no font request leaves the site. Nothing
else is fetched.The knowledge map shows how syllabus topics connect to one another. A mindmap shows something different: how an economist moves through one of them, from the concept to the mechanism to the model to the judgement, and where each step can be tested. Both are kept, and they link to each other.
Forty-two maps in three classes:
Together they cover all thirty-one subtopics in the guide, which the coverage dashboard measures rather than asserts.
Each map is a tree of nodes plus cross-links that cut across branches, which is what lets the elasticity map reach tax incidence without redrawing elasticity inside the tax branch. Eighteen node types carry a consistent visual language across every map, with a distinct shape and colour each: concept, determinant, mechanism, model, diagram, calculation, application, evaluation, stakeholder, judgement, TOK, exam, assumption, formula, misconception, evidence, real-world case and policy.
The layout is computed, not positioned by hand. Branches are dealt to two sides of the central concept and balanced by weight, so every map comes out landscape rather than as a tall column, which is the shape a projector wants. A single renderer draws all forty-two, so adding a forty-third means adding data and changing no code. Seven hundred and sixty-two nodes in total.
The thirteen modes:
| Mode | What it asks |
|---|---|
| Explore | Open any node. Detail, syllabus subtopic, diagram, calculation and dictionary entry appear beside the map. |
| Follow the mechanism | One causal pathway highlighted, the rest faded, read end to end. |
| Test yourself | Four nodes blanked; the distractors are real nodes from the same map, so the shape of the topic will not carry you. |
| Build the map | A pathway shuffled and reordered from memory. |
| Explain it | Say a branch in your own words against a sixty-second timer, then self-check against four criteria. |
| Repair it | A claim about the topic that is nearly right. Find the fault, correct it, and send it to the mistake book. |
| Connect | Build the chain that links this topic to another part of the course, in the order the argument requires. |
| What changes the result? | Move the condition the conclusion rests on and read what happens to the judgement. The point of the mode is that a conclusion which survives every condition was never an evaluation. |
| Exam | The questions the map's branches are actually assessed by, with the command term crosswalk. |
| Real world | One sourced application with its interpretation, model, limitation and publishing institution. |
| TOK lens | The knowledge question the topic raises, marked optional. |
| Classroom | One branch at a time, sized for a projector, with a timer and an exit question. |
| Revision | The map reduced to what has to be recoverable under examination conditions, ordered by what the progress record says is weakest. |
| List | The whole map as text. Not an afterthought: it is the default on phones and what screen readers and printouts use. |
Beneath every mode of every map sits the evaluation engine: the conditions under which that topic's conclusion would change, each one to be written out with a direction, because a condition named without a direction earns nothing.
Mastery is earned, not opened. Five strands per map (explored, mechanism followed, retrieval, reconstructed, explained), and opening a map can move only the first. A self-test asserts that a map with every node opened and nothing else done still scores below secure. Everything feeds the existing skills model and revision queue rather than a parallel one: a branch marked difficult goes to the mistake book, a branch set aside for later goes to the revision queue, and the daily challenge draws from the maps on a rotation.
Validation. Every node reference is resolved against the thing it names. A node pointing at a syllabus code, a diagram or a calculation that does not exist fails the build, and so does an orphan node, a cycle, a cross-link leaving its own map, a pathway naming a node that is not there, an objective using a vague verb, a real-world section asserting a figure of its own, or a map laying out taller than it is wide. That suite found several defects during development, including twelve nodes mapped to the wrong syllabus subtopic and three cross-links pointing out of their own map.
Every mindmap that can carry a case does. Thirty-seven of the forty-two show one to three real-world cases from the collection at their own subtopics, with an Explore case button into the full record. The five that cannot say so rather than borrowing a case from somewhere else.
The eighteenth node type is in use. "Real-world case" asks where something has actually happened, which is a different question from "Application", where the theory is used. Rather than assert a new fact inside a map, each case node names a case the platform already holds in verified form and hands the student to it, so the claim and its sourcing stay in one place.
Stored progress was carried across, not discarded. These were called brain maps in the previous release. The storage key moved with the name, and the migration copies the old record into the new one rather than starting anyone from zero. A test seeds a profile in the old shape, runs the migration and asserts that every strand, every score and every unrelated key survives.
Thirty-four curated external videos across nineteen of the thirty-one subtopics, from nine channels. The layer exists because watching is the cheapest form of study and the easiest to mistake for progress, so nothing here is marked as learned because it was played.
Every entry states the subtopic it is filed against, whether the content is SL or HL, what it is for (concept, diagram, calculation or revision), and why it was chosen rather than something else. Beside each one sit three checkpoint questions, written against the syllabus content of that subtopic rather than against the wording of the video, and the panel says so: a question written from a transcript tests whether you were paying attention to a presenter, and a question written from the guide tests whether you can now do the thing the subtopic asks for.
Nothing loads until it is asked for. The grid fetches still images only. The player element does not exist anywhere in the document until the student presses Load the player, and it is then created against YouTube's privacy-enhanced domain and never autoplays. A test asserts that both the closed library and the opened viewer contain no player element at all.
No broken image, ever. Each still has two hosts and then a drawn placeholder generated inside the page, which needs no network. A watchdog replaces any still that was requested and has not arrived after five seconds, which matters because many schools block the video hosts outright.
Verification is a build-time fact, stated with its date. Every identifier was confirmed against YouTube's public oEmbed endpoint, which returns a title and a channel for a video that exists and is publicly available and an error for one that is private, deleted or restricted. The titles and channels recorded are the ones that endpoint returned, not the ones a search result displayed. Running times are not printed, because that endpoint does not return one and a figure that has not been checked is not worth printing.
Videos are external resources selected for conceptual support. They are not official IB materials unless explicitly identified as such, and none held here is so identified.
| Tool | What it does |
|---|---|
| Diagram repair shop | Twelve cases, each a candidate's diagram described exactly as it was drawn. Find the fault, name the correction, then compare with the atlas version. The corrected diagram is the atlas diagram, so there is only one drawing of each model in the platform. |
| Data detective | Eight tables, each with three claims: one the data support, one they contradict and one they cannot settle. Naming what a table cannot show is what the evaluation band rewards. |
| Policy memo lab | Six briefs, each written up in six sections: situation, objective, instrument, mechanism, risks, recommendation. A memo will not let you recommend before you have explained. |
| Economic debate room | Ten motions. Both benches must be argued before the judgement opens, because an evaluation that has only ever argued one side reads as a list of disadvantages. |
| Market scenarios | Eight named markets loaded into the market simulator that already exists, with the parameters that make each one behave as it does. Not a second simulator. |
| Comparative advantage game | Two countries, two goods, four output figures. Everything else (the opportunity costs, which country has the comparative advantage in which good, the range of terms of trade at which both gain) is computed from them. |
| CPI basket builder | Ten weighted categories. Change a weight or a price and watch which categories actually move the headline, and how a weighted index differs from an average. |
| Lorenz curve builder | Five quintile shares in, a curve and a Gini coefficient out, computed by the trapezium rule with the working shown. The grouped-data ceiling of 0.8 is stated rather than hidden. |
| Balance of payments ledger | Fifteen transactions posted to the sub-accounts the guide names, with the right sign. Posted correctly the whole ledger sums to zero, which is what the identity means. |
| Exchange rate lab | Seven named causes shift demand for or supply of the currency. The Marshall-Lerner condition falls out of the two elasticities entered rather than being asserted beside them. |
| Multiplier lab | Set the withdrawals, read the coefficient, and follow an injection round by round until it converges on the closed-form total. |
Revision fails in two directions. It fails when a student has ten minutes and opens nothing because nothing fits ten minutes, and it fails when a student intends twenty minutes and spends ninety re-reading. Naming the length first, and building the work to fit it, is what stops both.
Five lengths: five, fifteen, thirty, sixty and ninety minutes. Five minutes is three retrieval items, enough to keep a topic warm and not enough to learn one; ninety minutes finishes with an original examination task written under the clock. Each session is assembled when it starts, from the subtopics the progress record shows as weak and the mistakes still open in the mistake book, so two sessions of the same length are not the same session. The suggested minutes are scaled so that the steps add up to the length chosen. Self-assessment is recorded at a lower weight than a marked attempt, and the panel says so, because it is the student's reading of their own work.
A released examination paper is somebody else's copyright. The pattern inside it is not.
Exam DNA reads 212 released questions and their 990 parts, across twelve sessions of Papers 1, 2 and 3 at both levels, and records for each part only its syllabus subtopic, its command term, its mark tariff and what the task demands: a diagram, a calculation, use of the data, evaluation, a real-world example, a policy. It holds no question text, no stimulus, no markscheme and no paraphrase of any of them. The corpus was machine-checked against the source papers with all whitespace removed, and the longest run of consecutive words shared with any paper is zero.
What that buys a student is the shape of the paper rather than its contents:
No prediction is made anywhere. The corpus records what was asked, not what will be. Every surface carries the same notice, and the analysis date is the date the papers were read.
Three confidence levels are recorded rather than hidden: 803 parts classified directly from the task, 122 from the stimulus, 62 inherited from the question stem and 3 left unclassified. A classifier that cannot tell says so.
Original examination material, written for this platform and labelled as teacher-created practice. Nothing here is an IB question and nothing here is described as one.
All figures are constructed teaching data and are labelled as such.
Economics becomes easier to understand when you can see it happening.
The largest section on the platform, and the one the rest now connects through. 203 cases, remapped to the 2022 guide, held in one file and referenced from everywhere else. A case exists once. Nothing copies it.
What a case carries. Its 2022 subtopic code, its unit, its level status (core, carrying HL depth, or HL only), the papers it serves, its key concepts with the primary lens first, the economic issue, the mechanism, the diagram it actually supports, the evaluation opening, its Paper 1, Paper 2 and possible internal-assessment use, a discussion question, an examiner-style application note, its region, its themes, its case type, and the first-edition section it came from.
Six doors into the same bank. By topic, by key concept, by assessment, by country, by theme, by level. All six narrow one collection rather than opening six of them.
Search that says why it matched. Searching price ceiling, PED, India or equity returns cases with the reason each one matched printed under it: the title, the country, the syllabus code, the concept, the diagram or the evaluation line. The same cases are in the global command-palette search, filed under Real world, which now carries close to 2,900 rows across more than sixty kinds of content.
The twelve-zone case reader. Context · the economics · model · diagram · stakeholders · evidence · limitations · evaluation · key concept · exam use · IA use · TOK. One zone at a time, with a before-and-after panel and an eight-step policy chain in the economics zone, a who-gains-who-loses prompt in the stakeholders zone that refuses to pretend the answer is universal, and a data-freshness banner on every case.
Twelve deep teaching cards carry the full field set: context, theory, stakeholder table, arguments for and against, the balanced verdict, common student errors, per-paper deployment, a classroom kit with hook, starter, core activity and exit ticket, the misconception to intercept, an extension task, the examiner's lens, a TOK link, and a forty-word student revision rail with a memory trigger and an exam tip.
A connection graph on every case, resolving to records that already exist: the subtopic, the mindmaps covering it, the verified diagrams, the calculations, the curated videos, the exam archetypes, the dictionary terms, the TOK knowledge question, and four cases worth comparing it with.
Five case tools.
| Tool | What it does |
|---|---|
| Find me an example | Choose topic, concept, paper, place and level. Returns best-fit cases with the reason each fits, banded as a strong match, a useful match or worth a look. No case is ever called the best. |
| Build an evaluation | Seven moves against a chosen case: condition, time, magnitude, stakeholder, evidence, limitation, judgement. Printable. Nothing is marked. |
| Compare two cases | Two cases side by side, with what is the same, what differs, and the lesson. Nine ready-made comparison sets are built in, from the hyperinflation trio to the carbon-pricing family. |
| Use this case | An original examination-style task and five slots: claim, mechanism, evidence, evaluation, judgement. The platform does not write the answer. |
| Case challenges | Case to diagram, case to mindmap, case to command term. Three options, one correct, and then the sentence that has to follow it. |
My casebook. Saved cases, using the saved-items store that already exists rather than a second one, with a coverage read-out: which units are thin, which concepts are missing, and why that matters for a paper that offers a choice of three questions and for an internal assessment that requires three different units and three different concepts.
A teacher view of every case, with a learning objective, best classroom use, a starter, a core activity, the diagram, discussion, evaluation, the misconception to intercept, an extension, an exit ticket and a time estimate, and a printable lesson card.
Where the numbers come from. No figure is presented as current. Every case states how current it is (recent episode, settled episode, historical data), and the evidence layer names the national statistics office, the central bank, the ministry or regulator, the international institution and, last, the reputable secondary source, with what each one settles. The standing note from the source collection is kept: the durable content of a case is its mechanism, its diagram and its evaluation, not its headline number.
What it does not do. It makes no prediction. It never says a case is worth a number of marks. It does not supply an internal-assessment article, and it says so on every IA surface: the article has to be current, published and found by the student. Development lives in Unit 4, where the 2022 guide puts it, and Development is a theme inside that unit rather than a fifth unit of its own.
Declared gaps. 24 of the 31 subtopics hold at least one case. The seven that do not are named on the atlas, in the coverage dashboard and on the sources page, alongside the four commissioning priorities the source collection itself identified: public goods, the HL equity subtopic, inequality and poverty measurement, and Unit 1 methodology. A gap is stated rather than padded.
Every major concept now connects through a visible chain, and each link opens a record that exists once:
topic → concept → mindmap → diagram → calculation → misconception → real-world example → video → TOK → Exam DNA → original practice → revision → progress
The top bar, the section tabs, the lesson rails and the events chapter rail stay in view while
the page scrolls. They were always styled to do so, but body carried overflow-x:hidden, which
(with html clipping sideways overflow) made body a scroll container that never scrolls, so
nothing ever stuck. body now uses overflow-x:clip, which still prevents sideways scrolling
without creating a scroll container. The widths audit also now fails on content cut off at the
right edge, which that clip would otherwise hide.
The primary bar keeps the eight places most visits start from: Course · Learn · Lab · Real World ·
Practise · Exam · Mindmaps · Resources, with More and Tutorials closing it. Resources opens
the Resource hub (#/resources). Economics, Everywhere and the Learning Studio are in the More menu,
the drawer, the footer and search, and the home page opens a door to each.
The bar is measured after every paint, and again once the typefaces arrive. An item is withdrawn only when it would otherwise meet the brand, in a declared order; Resources is the last to go, then Real World and Mindmaps. At 1440px and wider all eight fit. To give the bar that room, the tools beside it fold:
Everything else is one step away:
/ or Ctrl/Cmd + K) finds lessons, terms, economists, causal questions, data pages,
cases and tools by name. A calculation's result, like its address (#/calculate/0/ped), opens that
calculation; simulator and worked-case results open their tabs.One save control and one difficulty flag, defined once and used by the mindmaps, the video library, the topic dossiers and the tools. Flagging something moves its subtopic to the front of the spaced revision queue: the flag is about the economics, not about the resource.
Seven paths, each of which opens material that already exists, in an order chosen because the concepts depend on one another: microeconomics from the beginning, macroeconomics from the beginning, the global economy, Paper 1 in two weeks, Paper 3 at HL, the internal assessment start to finish, and the week before the examination. A path is a suggested order rather than a requirement, and marking a step done records that you opened it and nothing more.
A teacher assembles mindmaps, subtopics, videos, tools, calculations, diagrams and learning paths into one sheet, prints a student version and a teacher version, or copies a link that carries the whole assignment inside itself.
There is no server, no account and no class list. The link contains the chosen items and nothing else: no names, no progress, nothing about any student. A student who opens it sees a panel offering to open the assignment, and nothing about what they then do is reported to anyone.
Exactly five seconds, on one clock. The sequence runs:
| Time | Stage |
|---|---|
| 0–0.9 s | an obsidian field with a faint grid; the axes rule themselves in from their origins |
| 0.7 s | the monogram, with a data series appearing beneath it (0.9–1.9 s) |
| 1.4 s | the name and "Knowledge. Insight. Impact.", assembled from the brand vectors rather than set again in type |
| 2.2 s | "IB DP Economics", with supply and demand and a frontier (micro) brought into focus behind it |
| 3.1 s | "Think like an economist.", the peak, as a growth path with its cycle (macro) and a faint network of trade (global) take over the background |
| 4.0 s | "Learn. Think. Calculate." |
| 4.7–5.0 s | the exit fade into the page |
One start timestamp. The start is the first frame the reader sees. It is taken from
requestAnimationFrame and re-anchored to the browser's reported first paint during a still passage
of the sequence. Every stage is a Web Animation scheduled from that timestamp, not a chain of timers.
Nothing can lengthen it. The stages animate opacity and transform only, so they run on the compositor while the start-up self-test occupies the main thread. The exit fade reaches full transparency at exactly start + 5000 ms, and the overlay is removed on the next frame.
Fallbacks rather than delays.
When it plays: the opening state model. The rule depends on the address, not on the cache or the kind of load:
| How the reader arrives | What they see |
|---|---|
The home page (/, #/home), first visit or any later one | the full five seconds |
| The home page by reload, hard reload, cache disabled, a bookmark or a typed address | the full five seconds |
| The home page by the browser's Back or Forward from another site | the full five seconds |
| The home page from a page restored by the back/forward cache | the page as it was left (it never unloaded, so there is nothing to open) |
A deep link to any other page (#/events/archive/india-1991) | the identity still, gone as soon as the page is ready |
| Moving inside the platform, including Home and Back between its own pages | no opening at all |
The page records the navigation type, the route and the result in window.__INTRO. There is no
timer that waits for the opening: the page is built behind it, so it is ready when the overlay leaves.
Skip and reduced motion.
tests/intro.mjs measures the timing at 360, 390, 768, 1024, 1440 and 1920 px, from the record the
page keeps in window.__INTRO, and every row of the table above: a fresh profile, reload, hard
reload with the cache disabled, a direct address, Back and Forward from another site, a revisit
controlled by the service worker, and a deep link.
The whole platform is one self-contained file, so once it has loaded on a device everything it does itself works without a connection: every mindmap, every diagram, every calculation, every dossier, every tool, every question and every printable, and the progress record, which lives in that browser and nowhere else.
What does not work offline is everything that belongs to somebody else: the videos and their still images, which are served by YouTube, and the resource library, which is held in Google Drive. The service worker leaves other origins entirely alone and never answers a request to them from a stale copy, and the offline panel on the About page says exactly this. Installing adds an icon and opens the platform in its own window. It creates no account, signs you in to nothing and sends nothing anywhere.
The home page leads with the platform's signature, "Think like an economist.":
#/resources).The author signature sits level with the foot of the figures. It shows:
assets/brand/arjun-agrawal-portrait-4x5.webp, made from assets/brand/arjun-agrawal-portrait.jpg, which is unchanged);The figures beside the words are three, numbered:
The two excerpts share the model's height. Between 900 and 1100px only the model is shown beside the words. On a phone the order is statement, idea, actions, model, then the signature. The page then reads as follows.
Explore Economics Resources, directly after the cover. It has eight doors, each a real page with a small figure and a count taken from the platform's data:
The Resource hub's library follows, listing its own eleven categories, then Random Economics, Find a topic and the economist's toolkit. A single line points to the Learning Studio, which stays separate: the hub is the free library, and the Studio shows selected previews of original work. This band takes the place of the earlier six pathways and gateway, which led to the same pages.
Inside the Economics Learning Studio. An exhibition of five pieces in five forms:
One topic, six perspectives. Price elasticity of demand as understand, visualise, apply, calculate, interact and evaluate. These are keyboard tabs on a vertical rail, each stage independent.
Inside the learning lab. A miniature of the platform's Predict a diagram lab, using its own questions and explanations for an indirect tax. There are five predictions with immediate feedback, then the model's own diagram.
From concept to judgement (in the About chapter). The nine-step progression the resources are designed around, shown with a second real topic, a depreciation of the rupee.
Interested in exploring more? An email prefilled with the resource the visitor chose.
Learning Studio (#/studio; the address is unchanged from the earlier name, Resource Studio):
docs/studio/ADDING-RESOURCES.md.docs/design-system.md.Learning design (#/design) follows price elasticity of demand through the nine steps: concept, model, diagram, evidence, quantitative reasoning, stakeholder perspectives, analysis, evaluation and judgement.
Contact and collaboration (#/contact) offers six kinds of enquiry, each prefilling an email or WhatsApp message to the published address and number. Nothing is sent from the page.
Eleven categories, each a card with its own drawn mark, an audience label and a description. Above them sit an audience filter and a search that runs locally over the category names, their descriptions and their tags.
Every destination resolves through one configuration object near the top of the script:
const RESOURCE_LINKS = {
master: "https://drive.google.com/drive/folders/189b-UnYEus-_8a300KLt6QiELwCN133W?usp=sharing",
ppt: null, platforms: null, handbooks: null, questionBanks: null,
assessments: null, revision: null, ia: null, ee: null,
teacher: null, cases: null, tok: null
};
function resourceUrl(key){ return RESOURCE_LINKS[key] || RESOURCE_LINKS.master; }
To give a category its own Drive folder, replace its null with the folder URL. Nothing else
changes. Until then the category falls back to the master library, so no card is ever a dead
link. The self-test asserts the master URL exactly, checks that no second Drive URL has been
introduced anywhere in the build, and checks that every link carries target="_blank" and
rel="noopener noreferrer".
There is no Google Drive API, no OAuth, no credential, no API key, no backend and no database. The cards are links. Nothing is embedded, nothing is fetched, and the hub adds nothing to load time.
Resource links also appear where they are useful rather than only in the hub: a Go deeper card on the curriculum explorer, the concept pages and the syllabus tracker; a Classroom resources card on the teacher pages; and a Resources column in the footer.
A major section, and a careful one. Three registers are kept visibly apart on every page, each with its own badge and colour:
The IA and examination lenses carry a fourth label, Optional TOK-informed thinking, and the page says in as many words that the Economics IA is assessed against its own criteria and the papers against their own mark schemes, neither of which mentions TOK. The self-test asserts that no page claims the IB requires an Economics TOK activity.
The TOK section links to the official IB material for anything administrative rather than reproducing it. What it teaches is the habit of asking what a claim rests on, which is the same skill the highest evaluation band in Economics describes.
Data explorer, country profiles, markets and prices, sources and method (More › Economic data,
#/data).
Reading a chart. Above the explorer's chart, a strip names what the series measures, where (the economies shown), when, its unit and its source. Beneath it: why the indicator matters, the largest one-year change in the chosen period, what might explain a movement (offered as possibilities to test, not conclusions) and what to be careful about, including that lines moving together do not show that one caused the other.
What it holds
Where it comes from
github.com/datasets, retrieved on 1 October 2026,
each with its licence.How it is handled
The charts
Loading
assets/data/econ-data.js) loads only when a data page opens, and is then kept
for offline use.RETRIEVED=YYYY-MM-DD python3 tools/build/build_data.py --refresh.Sixteen economists whose ideas the course still uses (More › Economists and ideas, #/ideas):
Smith, Ricardo, Malthus, Marx, Marshall, Pigou, Keynes, Joan Robinson, Hayek, Friedman, Sen, Ostrom,
Stiglitz, Banerjee, Duflo and Acemoglu.
Each profile covers:
The editorial layer (this release) turns the profiles into intellectual history:
The schools, chains, relations and comparisons were written for this release and reviewed for
accuracy; the 22 review corrections are applied at build time from src/content/ideas/rt-v2.json.
Review. The profiles were reviewed adversarially before release. The review found no factual errors; it corrected one misattribution and one contested claim stated as fact, and added HL labels where the guide marks content HL only.
Twelve episodes told as stories you can follow (More › Economic events, #/events): the Great
Depression, the end of Bretton Woods, the 1970s stagflation, the oil shocks of 1973 and 1979, the
Plaza Accord, India's 1991 crisis and reforms, the Asian financial crisis, the dot-com bubble, the
global financial crisis, the euro crisis and COVID-19.
The event in seven stages. Each event opens with its story at a glance: before, trigger, transmission, crisis, policy response, consequences and long-term change, each drawn from the event's own text and each a link into its chapter. The chapter rail stays in view below the section tabs, marks the chapter being read and carries a reading-progress bar.
Scrolling. An event page scrolls from top to bottom by wheel, trackpad, touch, Page Down,
Home and End, after a refresh, Back/Forward or a deep link. (Before this release the rail's
observer called scrollIntoView on its sticky links, which pulled the window back up each time a
chapter came into view; tests/events-scroll.mjs guards against its return.)
Each event has fourteen chapters: the world before; the trigger; a timeline you step through; the mechanism (opened only after the reader predicts it); the data; the policy response and who gained and lost; short- and long-run effects; how it travelled; competing readings; what the models explain and miss; what might have been done differently and a what-if; comparisons; connections (IB subtopics and key concepts, economics topics for Cambridge, university fields, themes for civil-services study, economists, causal pathways, glossary, Real World cases); practice, retrieval and reflection; and further reading.
Fact, interpretation, inference, controversy. Every statement about the world carries one of these four labels, so a well-documented fact never looks like one school's reading of it. Every number that does not come from the charted data is listed under How the numbers were checked, with its basis.
The data. Charts come from assets/data/history.js: US inflation from 1914, US growth from
1930, Shiller's monthly share prices, US and UK ten-year yields, Brent from 1987, US unemployment from
1941, exchange rates for nine currencies and a sixteen-economy panel of growth and inflation. Each
series names its original source, the open-data package it came through, its licence and the
retrieval date. Where a package was wrong it was corrected and the chart says so: US growth is
computed from chained levels, because the package's growth column is shifted by a year. Series whose
licence is unclear (Case-Shiller, VIX) were left out. Each chart marks the event on its time axis.
Compare and history. Compare events sets any two side by side (trigger, mechanism, response, short and long run, how it travelled) and asks what is similar, what is different and which mechanism dominates. Economics through time puts the twelve events and the sixteen economists on one axis.
Review. Four writers drafted the events from a shared brief, and a separate reviewer then checked
dates, people, causal claims and every listed number. The review found no high-severity errors and
made seven corrections (for example, the January 1991 emergency credit was the IMF's, not the World
Bank's). The corrections are kept as patches in src/content/events/rt-events.json and applied at
build time. tools/build/build_events.py validates every subtopic, diagram, glossary term, case,
economist and chart series an event names.
Six ways in (More › Pathways, #/paths): IB DP Economics (the deepest, written to the guide),
Cambridge International AS & A Level, school, university, civil services and the Indian economy, and
Economics for everyone. Choosing a path changes what the home page suggests first and hides nothing.
What the pathways do not claim. The Cambridge and civil-services syllabi could not be checked against their official documents from this build, so those pathways carry no syllabus map, no topic numbers and no exam-format claims. Each says so on its card, and the events name economic topics rather than syllabus references for them. A self-test fails if that changes before the documents are checked.
The Indian economy hub (#/paths/the-indian-economy) gathers India's growth, inflation and
inequality against the world, thirty-one dated policy cases in seven themes, the 1991 event and the
economists who wrote about India. It states no current policy facts.
Eleven causal questions (Think › Why did this happen?): why inflation rose, unemployment rose, growth slowed, a currency depreciated, a central bank raised rates, a government spent more in a recession, a tax raised the price by less than the tax, output rose after a subsidy, a tariff helped producers but hurt consumers, supply-side reform takes years, and a market polluted too much.
How a question works
HL-only parts are labelled.
The full text of both features is in assets/data/ideas.js, loaded when a profile or pathway opens.
Lists and search use a small resident index.
Every subtopic in the Economics guide (first assessment 2022) is a complete lesson at Course › Topics. The earlier topic dossier became the lesson, and its old address still works. Each lesson follows one loop: Learn → See → Try → Explain → Apply → Evaluate → Retrieve, then Connect.
Foundation, Core and Deeper choose how much of the lesson to show. They describe the content, not the student.
Around the lessons:
The course layer is data, not page fragments: assets/data/course.js carries its own version, its
sources and its counts. How it was written, reviewed and patched, the source hierarchy, and a
coverage matrix that shows every gap are in docs/content-architecture.md.
A masterclass runs one subtopic end to end in the time the student actually has. Ten, twenty, thirty or sixty minutes, and a shorter session drops whole steps rather than shortening all of them: the ten-minute run does four things properly. The sequence never offers a step the subtopic cannot support, so a subtopic with no named calculation does not get a calculation step with nothing in it.
The topic pack builder lets a teacher choose a subtopic and what to include, and assembles the pack from material the platform already holds: objectives, conceptual core, activation prompts, the mindmap as an outline, key terms, a diagram checklist, the calculation with its common error, a five-minute retrieval starter, a real-world case, a TOK question, a misconception, exam questions and an exit ticket. Three versions print: teacher, student and blank. Items a subtopic does not have are left out rather than filled with generated material, and every pack states which parts are from the Economics guide and which are teacher-created. A self-test asserts that no pack claims to be an IB examination paper.
Timeless ideas. Everyday impact.
Ten original visual essays by Arjun Agrawal, supplied for inclusion and built in as a first-class learning layer inside Learn rather than as another menu item.
| Issue | Title | Syllabus | Status |
|---|---|---|---|
| 001 | The Market for Lemons | 2.10 | Core |
| 002 | Comparative Advantage | 4.1 | Core |
| 003 | The Prisoner's Dilemma | 2.11, 2.8 | Enrichment |
| 004 | The Tragedy of the Commons | 2.8 | Core |
| 005 | Opportunity Cost | 1.1 | Core |
| 006 | The Power to Set Your Price | 2.5, 2.11 | Core |
| 007 | The Bill Someone Else Pays | 2.8 | Core |
| 008 | The Margin | 1.1, 2.11 | Enrichment |
| 009 | Incentives | 2.3, 2.7 | Core |
| 010 | The Sunk Cost Fallacy | 2.4 | Enrichment |
Every cover is the issue's own first page, rendered from the supplied file, so the branding is the author's rather than a stock thumbnail.
Nothing is downloaded to show what an issue contains. The viewer holds the cover, the ten-page outline, the one-line idea, why it matters for IB Economics, the accuracy note, the questions and the links out to the mindmap, the real-world case and the diagram. The ten-page file opens in a new tab only when it is asked for, and when the assets folder is not beside the page the viewer says so and everything else still works.
Every issue was read page by page. A carousel has to be short, and short writing rounds corners. The note beside each one says where the shorthand would cost a mark if it were written that way in an examination, and it is specific rather than general:
Original retrieval questions. Two or three per issue, each with one defensible answer. Teacher-created practice, labelled as such. No carousel is described as an official or endorsed IB resource anywhere, and a self-test scans every viewer for that claim.
Issue 024, "The Market Nobody Controls", is not in this build. It was named in the brief, the file was not supplied, and nothing was invented in its place.
An intellectual biography rather than a CV, read in under a minute:
The earlier long prose is kept, folded, under The longer version. Every fact comes from the supplied profile.
The portrait is never overlapped. The profile opens with three cells that cannot touch:
No figure is drawn behind the photograph at any width, and a test measures the rendered boxes to hold it there.
No current-employer framing anywhere. Fergusson College, BLISS International School and Symbiosis International School are presented as professional experience, with no institution described as a current post, on the About page, in the footer, in the page title, in the accessibility text or in the printed documents. A self-test scans every route and the footer for that framing and fails the build if it finds any.
The photographs keep their own ratios. The portrait is used at 3:4, the two contextual images at 3:2 and 4:3. Nothing is forced into a square, zoomed into the face or stretched. Each declares its own aspect ratio and object position, and clicking any of them opens a larger view with its caption, its full alternative text, a close button and Escape support.
The prose beside each image is about teaching, not about what the photograph contains: why a student is made to argue a side they did not choose, and why current affairs are where a model meets something that happened.
Five positions: Economics educator, IB DP educator, teacher and mentor, academic resource creator, research-oriented educator.
An interactive journey. Six stages, each opening to show what was taught, what it taught him, and what it changed about the way the platform works.
UPSC CSE mentorship, stated as a fact, with no claim about ranks, selections or results.
No superlative. No "best", no "number one", no "top IB educator", and a self-test asserts that none appears.
The homepage panel that reports learning signals was rebuilt rather than patched.
The coverage dashboard is the instrument that makes a silent curriculum gap impossible. It lists every subtopic in the guide against every kind of material the platform can hold for it (mindmap, dossier, diagrams, calculations, questions, TOK, real world, curated video, teacher resource), and names the subtopics that have none of a given kind rather than leaving the reader to count. The table now counts real-world cases, curated videos and analysed question parts per subtopic as well, and prints the list of subtopics holding no case at all. The video coverage dashboard does the same for the video library, and reports nineteen of thirty-one subtopics rather than padding the library to look complete. It is organised by the IB syllabus, because the guide is the authoritative classification.
A phone is not a narrow desktop, so the header is rebuilt rather than shrunk. Below 880px it becomes objects in a fixed order (logo, Resources, timer, profile, menu; the profile gives way below 430px), and the section navigation moves wholesale into a drawer grouped under Start, Explore, Practise, Progress, IA, Teacher and About. Every section in the build must appear in one of those groups; if one is ever added without being placed, it is appended to a More group rather than quietly becoming unreachable, and a self-test checks that.
Resource cards run three columns on desktop, two on tablet and one on phone. Wide tables and wide diagrams scroll inside their own containers rather than pushing the page sideways. Forms collapse to a single column on phones.
The release requirement is unexpected horizontal overflow = 0, verified across every view at 360, 375, 390, 430, 480, 600, 768, 900, 1024, 1280, 1440, 1600 and 1920 pixels: 1,937 view x width combinations in the release harness: together with checks for brand, navigation, timer, profile and menu collision, clipped header items, oversized tables, clipped diagrams and drawer overflow. Desktop layout is asserted separately so that nothing done for small screens can erode it.
On first launch the platform asks for a name, a level and (optionally) a target grade, exam session and usual study block. Several people can share one computer: each profile stores its own progress, notes, plan, mistakes, flashcards, drafts and mastery model, and profiles can be created, switched, backed up, restored and deleted from the profile drawer.
Personalisation sits beneath the platform identity. The workspace becomes "Aarav's Economics dashboard" inside Arjun Agrawal · IB DP Economics: the brand is not replaceable, and every printed or exported document carries the attribution.
Storage is versioned (AA_IB_ECONOMICS, schema v6) with migration logic, so future updates extend the structure rather than discarding existing progress.
Six corrections applied at source in this release, each checked against the Economics guide held in the project rather than against memory:
Alongside those, three corrections that current examiner guidance requires:
Four further corrections were found by the release audit rather than by the brief:
[object Object] where the skill
should have been and the skill routing silently failed. The factory now accepts either shape and
two assertions guard it.Found by this release's audit
A typographic pass. Em-dashes and en-dashes have been removed from the platform's own prose, which now uses hyphens, commas, colons and parentheses, and the supplied real-world collection was swept the same way. Three em-dashes remain, and deliberately: they are inside verbatim quotations from the Economics guide, where the punctuation belongs to the source rather than to this platform. Mathematical minus signs are untouched.
Alongside those, best fit is explained properly: a checklist is a diagnostic aid for finding the right descriptor, never a mark calculator, because it is not necessary for every aspect of a descriptor to be met for that mark to be awarded.
Contact details appear on the About page, the Tutorials page and in the contact drawer, and nowhere else:
No other account is listed, and no other personal information is exposed anywhere in the application.
Student progress stays on the device unless the student exports it.
No accounts, no sign-in, no analytics, no tracking pixels, no cookies set by this site, and no data transmitted anywhere. Export, import and reset are all in Settings → Take it with you.
This holds for everything added in this release. The video player is created only on a click and loaded from YouTube's privacy-enhanced domain; watching contacts YouTube, and nothing from this platform is sent with it. An assignment link carries the chosen items and nothing else, so a teacher can set work without a server and without anything about a student leaving their device. The service worker caches this platform's own files and leaves every other origin alone.
Download or clone the repository and open index.html in any modern browser. Double-clicking
the file is enough: there is no build step and no server required.
git clone https://github.com/<your-username>/arjun-agrawal-ib-economics.git
cd arjun-agrawal-ib-economics
# then open index.html
index.html is fully self-contained: the logo, portrait, diagrams and all logic are embedded.
You can email that one file to a student and it will work on its own.
Two things that single file cannot carry with it live beside it: the Exam DNA corpus
(assets/data/exam-dna.js) and the course layer (assets/data/course.js: the lessons, glossary,
misconception database and snapshot maps). Open the page on its own and the pages that need
either file say so plainly; the earlier dictionary and command-term pages stand in for the new
ones. Keep the folder together and both work, including offline once the platform has been
installed.
For the installable version, the service worker needs a real origin rather than a file:// path,
so serve the folder over HTTP:
python3 -m http.server 8000
# then open http://localhost:8000
1. Create the repository
Sign in to GitHub → New repository → name it arjun-agrawal-ib-economics → set it to
Public → Create repository. Do not add a README; this repository already has one.
2. Upload the files
On the empty repository page choose uploading an existing file, then drag in the contents
of this folder: index.html, README.md, LICENSE, .gitignore, 404.html, favicon.svg
and the assets folder. Commit directly to the main branch.
Keep the folders. Drag the
assetsfolder itself, not the files inside it. If the files arrive flattened at the top level, the page still opens, but the ten carousel PDFs, the app icons, the offline cache and the external Exam DNA and real-world corpora all miss, because the page asks for them atassets/carousels/,assets/icons/andassets/data/. The expected layout is:index.html 404.html favicon.svg manifest.webmanifest service-worker.js robots.txt assets/data/ exam-dna.js, real-world.js, course.js assets/icons/ app icons and apple-touch-icon.png assets/carousels/ economics-in-60-seconds-001.pdf … 010.pdf assets/brand/ source logo, monogram and portrait files (the page embeds its own copies)
The
.githubfolder is hidden on macOS. In Finder pressCmd + Shift + .to show hidden files before dragging, or skip it, see step 3b.
3a. Enable Pages using the workflow (recommended)
Repository → Settings → Pages → under Build and deployment, set Source to
GitHub Actions, and place pages.yml at .github/workflows/pages.yml. In this repository the
file sits at the root, where GitHub does not read it, so the live site is published by step 3b
(GitHub's built-in pages build and deployment from main).
3b. Or enable Pages without the workflow
Repository → Settings → Pages → Source: Deploy from a branch → Branch: main,
Folder: / (root) → Save. This works even if you did not upload the .github folder.
4. Visit the live site
After a minute or two it will be available at:
https://<your-username>.github.io/arjun-agrawal-ib-economics/
The Pages settings screen shows the exact URL once deployment finishes.
A note on the repository name. The site is published under a path, not at a domain root:
https://<your-username>.github.io/<repository-name>/. Every path inside the platform is
relative, so it works whatever you call the repository, and this was tested by serving the
package from a subdirectory: the service worker registers with the subpath as its scope, the
manifest and icons resolve, all ten carousel PDFs resolve, no request escapes the subpath, and
the site still works offline from there. You can rename the repository without editing anything.
5. Update it later
Edit or replace index.html in the repository (Add file → Upload files, keeping the same
filename) and commit. The site updates automatically within a minute.
Optional: a custom domain: Settings → Pages → Custom domain, then add the CNAME record your domain provider asks for.
Two licences apply, and the distinction matters:
Teachers and students are welcome to use the site in lessons and to link to it. Republishing
the content as your own, or repackaging it commercially, is not permitted.
See LICENSE for the full terms, or write to [email protected].
One-to-one IB DP Economics sessions: full syllabus, revision, Papers 1, 2 and 3, internal assessment and extended essay. Guidance, coaching and feedback; not ghostwriting.
All sessions are one-to-one and online. The terms, exactly as supplied:
| Pathway | Fee | Sessions | What it is |
|---|---|---|---|
| Regular sessions | US$20 | 1 hour each | Any topic of your choice |
| IA support | US$100 | 6 × 1 hour | Guidance in writing the three commentaries |
| Economics EE supervisor support | US$150 | agreed at enquiry | Academic supervision and guidance, not ghostwriting |
| Marathon Revision | US$300 | 20 × 1 hour | The entire syllabus before External Assessment |
| Exam Practice | US$200 | 12 × 1 hour | Questions only: Papers 1, 2 and 3 |
The Tutorials page (#/tutorials) sets these out as a narrative: why students get in touch, how
sessions are taught, what an hour looks like, the five pathways (what each is, who it is for, what
you do, what to expect), which pathway fits, how to get started, and eleven questions. Every pathway
has its own enquiry link. There is no booking system: enquiries go by email or WhatsApp and are
answered personally. The page carries no testimonials, ratings, outcomes or guarantees, and a
self-test fails if any price, count or length changes.
To enquire, email [email protected] with whether you are SL or HL, your school, what you would like help with, and your preferred days and times.
Built by Arjun Agrawal: IB DP Facilitator in Economics, Business Management and Global Politics, Economics educator, UPSC CSE mentor and resource creator. Academic background: St. Stephen's College, University of Delhi. Professional experience includes Fergusson College, Pune, BLISS International School, Pune and Symbiosis International School, Pune.
This is an independent educational platform created by Arjun Agrawal. It is not an official IB platform and is not endorsed by the International Baccalaureate Organization. It is not affiliated with or produced by the International Baccalaureate Organization. "International Baccalaureate", "IB" and "Diploma Programme" are registered trademarks of the International Baccalaureate Organization. No IB logo or crest appears anywhere in this platform.
Contact: [email protected]
| Mindmaps | Forty-two interactive maps of how an economist moves through a topic, in three classes: ten core maps for the strands of the course, twenty-two topic maps for individual syllabus subtopics, and ten synthesis maps that cross topics deliberately. All are built from the same eighteen-type visual language: concept, determinant, mechanism, model, diagram, calculation, application, evaluation, stakeholder, judgement, TOK, exam, assumption, formula, misconception, evidence, real-world case and policy. Thirteen modes per map, from exploring a node to repairing a claim that is nearly right, to building a chain into another part of the course, to asking what would change the result, to a revision pass, to projecting it in a classroom. Plus a pooled challenge set: find the missing link, spot the economic error, connect two ideas, and build from memory. |
| Video learning | A curated layer rather than a page of links. Thirty-four external videos across nineteen subtopics, each filed against a syllabus code, labelled SL or HL, given a purpose and a reason for inclusion, and paired with the three checkpoint questions set for its subtopic, written from the guide rather than from the video. Nothing is embedded until it is asked for: the grid loads still images only, and the player element is created on the click. Every link was confirmed to resolve at build time and the date is shown. A coverage dashboard names the subtopics that have none. Video › My queue holds what you set aside and what you flagged as difficult, and Video › Video of the day picks one video against your weakest ground. |
| Tools | Eleven working tools in one place: a diagram repair shop with twelve recurring faults, a data detective that asks what a table supports, contradicts and cannot settle, a policy memo lab, an economic debate room that locks the judgement until both benches have been argued, named market scenarios that load the existing simulator, a comparative advantage game with a terms of trade check, a CPI basket builder, a Lorenz curve builder that computes the Gini coefficient and states the grouped-data limit, a balance of payments ledger, an exchange rate lab that derives the Marshall-Lerner condition rather than asserting it, and a multiplier lab that follows the rounds to convergence. |
| Timed sessions | Five, fifteen, thirty, sixty or ninety minutes, assembled when you press start from the subtopics your record shows as weak. Five kinds of step: retrieval, a definition produced from memory, a generated calculation, a mechanism with a missing link, and one paragraph under a command term. The clock counts down and then counts up; nothing is cut off and nothing is marked against it. |
| My economics | One save control and one difficulty flag, used by every surface that needs them, with everything collected in one place. Seven learning paths through the material that already exists, from microeconomics in dependency order to the week before the examination. |
| Lessons | Course › Topics: thirty-one lessons, one per syllabus subtopic, described under The course below. The earlier topic dossier became the lesson, and its old address still works. |
| Masterclass | One subtopic worked end to end in ten, twenty, thirty or sixty minutes. A shorter session drops whole steps rather than rushing all of them, and never offers a step the subtopic cannot support. |
| Resources | A curated hub of eleven resource categories (presentations, interactive teaching platforms, handbooks, question banks, tests and assessments, revision, IA, extended essay, teacher resources, real-world economics and TOK × Economics) each with its own drawn mark, an audience filter and a local search. Every card opens the Arjun Agrawal Google Drive library in a new tab. The site is the interface; Drive is the repository, so new material appears there without a change here. |
| TOK × Economics | Sixteen pages on how economic knowledge is established: a hero interrogation of “an increase in interest rates will reduce aggregate demand”, a 109-question knowledge bank across twelve categories, TOK × micro, macro and global, fourteen tests for what counts as economic evidence, a causation lab, an epistemology lab covering all eleven named models, five ways of asking whether a model is true, a perspective lab, a map of where values enter, an uncertainty lab rating eight claims, the nine key concepts and six real-world issues examined, optional lenses for the IA and each paper, ten printable classroom activities, a teacher toolkit and a knowledge-question generator. |
| Practise | Twelve tabs: Question bank, Data response, the Economist's Gym, a spaced retrieval queue (Retrieval), a ten-minute revision run (Ten-minute revision), five families of Thinking drills, six Transfer tasks, a Teach it back mode, Explain it like an economist, The data lab with six constructed datasets, a nine-trap Data trap lab, and a Writing lab covering causal, conditional, comparative, evaluative and judgement sentences. |
| Exam | An exam cockpit for Papers 1, 2 and 3 with plan-write-review, timer, word count and autosave; Exam › Compose, a free writing surface (paste from elsewhere, or describe a diagram in words) that feeds the diagnostic; a sentence-by-sentence answer diagnostic; "Why did I lose marks?"; a Level 7 deconstructor; the IB reference layer; an assessment centre covering every component; and a paper architecture explainer. |
| My syllabus | Every topic tracked on three separate layers (learn, practise, master) with manual states from Not started to Mastered, spaced revision dates and private notes. |
| Dashboard | A twelve-dimension learning model built only from evidence you generated, plus topic health in green, amber and red, a revision priority engine, an optional examination countdown and a metacognitive confidence check. |
| My workspace | Weekly study plan, a mistake book that surfaces the pattern rather than the incident, categorised flashcards with spaced review, your calculation history ranked weakest first, every note you have written in one searchable place, and My workspace › Revision priority, which orders subtopics by how weak they are, how much assessed machinery they carry and how many others depend on them. |
| IA | An internal assessment command centre that checks the portfolio against the rubric conditions in the guide, a student checklist (IA › Student checklist), a portfolio tracker (IA › Portfolio tracker), a ten-question article quality screen (IA › Article checker) and the supervisor gates. |
| Teacher tools | An assignment builder that assembles items the platform already holds into a printable sheet and a link that carries the assignment inside itself with no server and nothing about any student, a teacher desk, class dashboard with local import of student exports, a fillable IA feedback checklist (Teacher › IA checklist), a lesson planner with success criteria, differentiation and extension (Teacher › Lesson planner), a five-minute retrieval starter generator (Teacher › Retrieval starter), an exam builder with answer key (Teacher › Exam builder), printable marking sheets (Teacher › Marking sheets), a resource centre, a feedback bank, an annotated exemplar library of two teacher-written responses and a best-fit IA moderation workspace. Each opens its own page. |
| Exam DNA | A structural analysis of 212 released examination questions and their 990 parts, across twelve sessions of Papers 1, 2 and 3 at both levels. It holds no question text: each part is recorded only as its syllabus subtopic, command term, mark tariff and what the task demands, so the pattern is visible and the copyright is untouched. Seven surfaces read it: an explorer, eleven question archetypes, a mark lens, a subtopic heatmap, a morpher that rebuilds an original task from a recorded shape, a museum of how the paper has changed, and a source register naming every paper analysed. |
| Exam practice | Original examination material written for this platform: eight Paper 1 tasks, four Paper 2 data sets with twenty-eight parts and their own stimulus, four Paper 3 cases with twelve calculations, and a five-run simulator from a ten-minute drill to a full mock. Every figure is constructed teaching data and every stated answer is recomputed from the table it sits beside. |
| Case room | Eight cases, each worked in eleven sections: context, what is verified, how it is read, what may be inferred, the model, the diagram, the calculation, the stakeholders, the evaluation, the examination use and the sourcing. Fact, interpretation and inference are never run together. |
| Media room | Resources › Media room: everything external in one place, clearly marked as external: video, data and visualisation, and official sources. Its video panel is a door into the video library rather than a second copy. |
| Analytical layers | Six cross-cutting surfaces rather than new content: a skills matrix over the twelve tracked dimensions, a topic dependency graph, a concept network, "Explain it like an economist" against a timer with self-check criteria, "Model or reality" on the eleven named models, and "What would change your mind?" attached to every evaluation surface. |
| Economics in 60 Seconds | Ten original visual essays inside Learn, each one idea taken from the story to the syllabus. Every issue carries its real cover, a ten-page outline, the syllabus link, why it matters for IB Economics, a page-by-page accuracy note and original retrieval questions with answers. The ten-page file opens only when it is asked for. |
| About | An editorial educator profile rather than a résumé: three photographs at their own aspect ratios with a lightbox, five positions, an interactive six-stage academic timeline, the teaching philosophy, a six-part teaching portfolio, the UPSC CSE mentorship, and why the platform exists. |
| Economics, Everywhere | The public-facing layer: the economics behind the world around us. Nineteen big questions (why flights cost more tomorrow, why queues exist, how an app can be free), each with a short answer, the economic idea, the mechanism revealed a step at a time, a labelled real example, a lab or sorting task, a prediction to commit to, an explanation at four levels from beginner to university, the confusion to avoid, links into the rest of the platform, a pathway onward and sources. Twelve Economics in real life cards, sixteen One economic idea cards, fifteen interactive labs, the Economist's eye game, and Where the numbers live, which routes current figures to the institutions that publish them. |
| Economics EE Studio | A research workspace for the Economics extended essay, in nineteen areas: what the essay is (every statement labelled by its source), the journey, a topic explorer across twenty areas of economics, a research question lab that diagnoses twelve dimensions and asks questions rather than writing a question, a model lab, sources, a data lab that separates what data show, suggest and do not establish, an evidence matrix, an argument map, a diagram studio, an evaluation lab, writing and structure, a reflection studio, academic integrity and AI, an EE red team, supervisor mode, a qualitative quality check and resources. It approves nothing and predicts no mark. |
| Arjun Agrawal · Video studio | Economics. Politics. International Relations. The channel's own videos, read automatically from YouTube: featured, latest, by category, Shorts and playlists. Kept separate from the curated videos by other creators. |
| Educator Studio | A professional handbook for new and experienced Economics teachers, extended essay supervisors and DP coordinators: role pathways into what the platform already holds, ten handbook modules with page citations to the guide and teacher support material, and coordinator notes. |
| Tutorials | One-to-one IB DP Economics sessions with Arjun Agrawal. |
A background system. Six faint families of economic drawing texture section openers and home bands: micro, macro, global, development, research and markets.
Go deeper. Beneath the core of thirteen models and eleven concept pages, a folded economist's note covers:
Misconception boxes pair a common wrong idea with the correct one. Both are labelled as original commentary, not IB material.
Real World case intelligence. Each case opens with a one-screen brief compiled only from its own record, each part labelled by what kind of statement it is (fact, interpretation, model, inference, evaluation, teacher guidance):
Links to a case now open the case.
Mindmap connections. A focused node offers go further links (a real case, practice, a video, an everyday question, EE research) drawn from the related-content graph for its subtopic.
The exam rooms. The exam, papers and Exam DNA sections share a bar of fourteen named rooms. Each room says what it holds: official IB information, teacher-created practice, analysed metadata or your own work.
The IA studio. A research-notebook rail across the IA pages, in nine steps from article check to final quality check. Each step opens a tool the platform already has. The studio asks questions and checks; it never writes the commentary.
The elasticity lab (Lab, last tab).
Discovery.
Nothing overlaps. Below 1000 px a page opener's figure follows the text instead of sitting
under it. tests/overlap.mjs measures every rendered element on twenty key routes at fifteen
widths, and fails on any overlap it finds:
Motion. Curves draw themselves once, the equilibrium breathes and figures count up. All of it
stops under prefers-reduced-motion, and none of it runs while the self-test paints the views.
localStorage on the student's own device. Migration from an earlier schema
is tested end-to-end and preserves keys the current build does not recognise. The rename from
the earlier name moved the stored key with it and copied the old record across rather than
discarding it; a test seeds a profile in the old shape and asserts that nothing is lost.manifest.webmanifest and service-worker.js make the platform
installable and genuinely usable without a connection once it has been opened, with icons
generated from the supplied logo. Registration happens only on a secure origin, after load, and
nothing external is cached or claimed to work offline.#/world, #/lab/diagram-atlas/<diagram>, #/learn/concept-spine/<concept>), so the
browser's Back and Forward buttons move through the platform rather than out of it, a refresh
keeps the reader where they were, and a teacher can bookmark or send a link to one page. The
address is a hash, so it works from a file:// path and from a subdirectory with no server
rewrite rules; the short form the install shortcuts use (#mind, #session, #video) works
too. The router writes nothing while the self-tests run, leaves assignment links (#assign=…)
untouched and stores nothing. The home page plays the five-second opening sequence on every kind
of load; a deep link to any other page skips it (see The opening sequence)./ or Ctrl/Cmd + K and reaches every section, every printable and
every indexed item of content.tests/: the self-test in a real browser,
end-to-end journeys (addresses, Back, search filters, the labs, saving, the EE Studio's tools, the
video studio against a stubbed feed in every state, the home page's gateway, daily page and folded desk, Random Economics, the toolkit, section openers and reduced motion; the cover's movable market, case links, the exam rooms and the elasticity lab), offline behaviour, every major route at fifteen
widths from 320 to 2560 px, a rendered-box overlap audit, every route for page errors, and the YouTube function itself against a
stubbed YouTube (including missing credentials, timeouts and malformed answers). They have their
own package.json (Playwright), so the site itself stays free of dependencies and build steps.
See tests/README.md.