AWS Builder Center
Weekend Productivity Challenge July 2026
Weekend Productivity Challenge: BrainDump

Weekend Productivity Challenge July 2026 Weekend Productivity Challenge: BrainDump

A brain-dump app that turns your mental clutter into a prioritized plan — then remembers what you didn't finish and calls out the tasks you keep avoiding. Built on AWS Lambda, Bedrock, API Gateway, and DynamoDB.

aws SBCL @ CSU Chico
The AWS Weekend Productivity Challenge asked builders to create a personal, AI-powered productivity tool. My answer was BrainDump — a task-prioritization app for when there are too many things to track at once.
You know the feeling: an email you forgot to answer, an assignment due Monday, taxes, a meeting to prep for, some random task from yesterday. None of it is hard on its own… the problem is figuring out what actually deserves attention first and sticking to it.
BrainDump lets you dump all of that into one box, unorganized, and an AI turns it into a real plan. That was the first version. Then I realized a nicely organized list wasn't enough. The feature that ended up defining the project was memory. BrainDump remembers unfinished tasks, carries them forward, and flags the things you keep avoiding. Sometimes the problem isn't forgetting what to do. Sometimes you know exactly what to do you're just ducking it!

Vision and What the App Does

BrainDump starts with one text box. You give it natural raw input "email John back, buy dog food, taxes Friday, finish my presentation" and the AI returns a structured board using an Eisenhower-style system: Do First, Schedule, Quick, Later. Each task gets a plain-language reason and a time estimate. From there you can drag tasks around, check things off, run a focus timer, or revise the board in plain English ("cut this to three," "I only have two hours" etc. ).
The real value shows up when you come back. BrainDump saves your board and carries unfinished work forward new brain dumps merge in rather than wipe the slate, duplicates get filtered, and completed progress is preserved. Each task gets a first-seen date, and anything unfinished for 2+ days gets flagged right on the card: "moved 3d." The banner at the top calls it out directly: "3 have been sitting for days do them or drop them." 

How I Built It

I'm an incoming AWS Student Builder Campus Leader at Chico State, and this challenge was a good excuse to actually ship something instead of just learning the platform.
I kept the system deliberately small one Lambda function handles the frontend, the AI calls, and the memory logic. The first version worked but looked mid. I redesigned it around an "analog editorial" look to emphasize the physical process of completing tasks in the real world. The bigger change came from testing the idea honestly, not just the code. A tool that turns chaos into a tidy list can be a productivity facade you admire the columns, feel accomplished, close the tab, and nothing's actually done. So I set a real test: does this help me finish more of what I flagged as "Do First," across several days? The original version couldn't even answer that — no memory, no way to measure it. That gap is what led directly to the carry-forward and stalled-task system.

Challenges I Encountered

My first plan was a public Lambda Function URL, which returned 403 every time — turns out newer AWS accounts block public Function URLs by default. Fixed it by routing through API Gateway instead, which is the more standard approach anyway. (skill issue)
Getting reliable AI output was its own problem. Early on I parsed JSON out of free-form model text, which broke constantly. Switching to Bedrock's schema-enforced tool-use forced the model to return structured data by contract, moving the app from "usually works" to "always works." Massive quality-of-life upgrade, 10/10, would enforce schema again.
For the memory feature, I stamped each task with a first-seen date and calculated real elapsed days rather than a naive counter (no fake progress bars in this house), then seeded a backdated board to confirm the "moved 4d" logic actually triggers correctly (had to time-travel a little since I didn't have three real days to spare mid-challenge). I also added input-size limits and a per-device daily cap on AI calls, since a public endpoint calling a paid model with zero guardrails is just not a good idea!

AWS Services and Architecture

  • API Gateway — public HTTPS endpoint, routes requests to Lambda
  • Lambda (Python) — serves the app, runs AI calls, handles memory logic
  • Bedrock (Nova, tool-use) — returns structured, schema-enforced task data
  • DynamoDB — stores each device's board, tracks first-seen dates, powers carry-forward
Browser ── GET ──▶ API Gateway ──▶ Lambda ──▶ Serves app
Browser ── POST ─▶ API Gateway ──▶ Lambda ──▶ Bedrock/Nova → plan
                                     └──▶ DynamoDB → saved board
The model organizes what you say today. The database remembers what you said yesterday. That combination is the actual product. (thanks DynamoDB!!!!)

What I Learned

An AI app doesn't need to be big to be useful the complexity here lives in the prompt, the schema, and the data model, not the amount of code. a great lesson heading into the SBCL role: meaningful builds aren't about more infrastructure, they're about fewer moving parts working together clearly. the biggest lesson was about honesty in product design. The hardest part of building a productivity app isn't sorting tasks it's admitting whether it actually changes behavior. My first version organized intentions without creating accountability. The version I shipped remembers what you meant to do and calls out what's slipping. It actually helps.

Try BrainDump

Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article