Strands.Agents.Hackathon.Demo.mp4

Project Link: https://devpost.com/software/alongside-o0hckl

A learning partner that draws with you beside the page you are reading.

Ask about a YouTube lecture, GitHub pull request, or any topic. Alongside builds an editable whiteboard explanation. Pause, move a shape, ask a follow-up, and return to saved lessons.

Built with Strands Agents SDK, React, and Excalidraw for Agents for Humans.

Open Alongside with a demo access code. The hosted app runs Strands on Amazon EC2, with Amazon S3 backups and AWS Secrets Manager for credentials.

- Chrome side panel with context from the selected page.

- Progressive drawing, editable shapes, images, and notes.

- Follow-up questions and separate teaching steps.

- Saved lessons and an optional agent activity panel.

- Full-page whiteboard for questions without a browser source.

Requires Node.js 24, Docker, Chrome, and an OpenAI API key.

git clone https://github.com/SinghCoder/alongside.git

cd alongside

npm ci

npm run setup

cp .env.example .env.local

npm run sandbox:buildSet OPENAI_API_KEY and a supported OPENAI_MODEL in .env.local, then run:

npm run dev -- --port 5176 --strictPortOpen http://127.0.0.1:5176/. Setup includes 12 original architecture symbols.

Image search is optional. Use SEARCHAPI_API_KEY for SearchApi.io,

BRAVE_SEARCH_API_KEY for Brave, or SERPAPI_API_KEY for SerpApi.com.

SearchApi.io and SerpApi.com are different services.

If using Colima without a working host socket, set

ALONGSIDE_CONTAINER_CLI=colima and build the sandbox with:

colima ssh -- docker build -t alongside-lesson:1 "$PWD/sandbox/lesson"The checkout must be mounted into the VM.

- Open chrome://extensionsand enable Developer mode.

- Choose Load unpacked and select the extensiondirectory.

- Open a YouTube video or GitHub PR and click Alongside's icon.

The extension defaults to the hosted app. For local development, change its

app address to http://127.0.0.1:5176.

- Ask a question. Close Activity for more drawing space.

Open YouTube's Show transcript panel if the transcript is unavailable. On GitHub, load the relevant diffs. Click the extension again after navigating to another source page. See extension instructions.

flowchart LR

Page[Selected browser page] --> Extension[Chrome extension]

Extension --> Board[Shared whiteboard]

Board <--> Agent[Strands agent on Amazon EC2]

Agent <--> Model[Model provider]

Agent --> Tools[Drawing and image tools]

Tools --> Board

Board <--> Lessons[Saved lessons]

Lessons --> S3[Amazon S3 backups]

Strands maintains the lesson conversation and coordinates tools. Alongside provides page context, the editable board, and saved teaching steps.

The production entry point is npm start. On an EC2 Linux instance, install

Node.js 24 and Docker, then run npm ci, npm run setup,

npm run sandbox:build, and npm run build.

Store a JSON configuration in Secrets Manager containing the variables from

.env.example, plus ALONGSIDE_ACCESS_CODE, ALONGSIDE_COOKIE_SECRET,

ALONGSIDE_ORIGIN_SECRET, and ALONGSIDE_PUBLIC_ORIGIN. Generate distinct,

random secrets. Set AWS_REGION, ALONGSIDE_SECRET_ARN, and an absolute

ALONGSIDE_DATA_DIR in the service environment. Give its instance role read

access to that secret.

Serve dist/ over HTTPS. Proxy /api/* to the Node service on port 8080,

injecting X-Alongside-Origin with the configured origin secret. Keep port 8080

private and disable proxy buffering for streaming. Back up the data directory

to a private S3 bucket. For another hostname, update extension/origins.js and

the matching origins in extension/manifest.json, then reload the extension.

npm test

npm run build

npx playwright install chromium

npm run test:panel

npm run test:extensionBrowser tests require the app on port 5176. npm run test:shell tests Docker

execution. Optional RUN_PR_MODEL=1 npm run test:extension invokes the configured

model and incurs provider usage.

Lessons are stored locally under .local/lessons by default. Back up this folder

to retain your work. Page context is sent to your configured model provider.

Keep API keys server-side; never prefix them with VITE_.

The development server is intended for local use. Complex diagrams may need manual adjustment; reloading interrupts an active explanation but retains saves.

MIT. See LICENSE and third-party notices. Built using open-source frameworks and AI coding assistance.