Self Hosted Jarvis-like Dashboard with RedwoodJS

:house: Papu’s Home — a real home robot, built on RedwoodJS

What is Papushome?

Papu is a home assistant that lives in my house; self hosted on an old gaming pc. A RedwoodJS app controls the the crud app, messaging service, and talks to a local LLM hosted on an old rtx 2070, the hardware and smart devices code live outside of redwoodJS core, but are organized in the same monorepo structure.

I started this project when I wanted to ask a chatbot to water my plants. Eventually I added a lot more microcontrollers around the house and needed a more manageable framework for administering the web app that gave me controls, monitoring, ui, etc. I tried the RedwoodJS tutorial and decided to adopt it instead of the vanilla express ts, hand-rolled db functions stack I was using

What does papushome do?

Conversational assistant — chat or voice, backed by a local Ollama model (qwen2.5:7b) calls tools, learns about the household, interacts with hardware

  • Controls things — smart lights via Home Assistant, a plant-watering system over MQTT, tank-level and environment sensors on custom ESP32 firmware
  • Knows the household — a Postgres + pgvector knowledge base of facts about the family, searched semantically
  • Books things — yoga/fitness classes via Mindbody’s Public API, dental appointments via a Cognito-backed integration I reverse-engineered and published as tend-mcp (both an MCP server and a plain library)
  • Reads calendars — Google Calendar plus the NYC DOE school calendar
  • Observability — Loki/Promtail/Grafana for app and hardware logging
  • Hardware - a fleet of ESP32 boards reporting over MQTT (plant-watering towers, tank sensors, environment sensors, an RGB status display). Built enough flash/OTA tooling around it that I split that out into its own package too: pio-flash-cli.

Why RedwoodJS

RedwoodJS was the seamless tutorial that I have worked with since trying Vue many years ago. The framework makes it so easy to wire up a powerful crud app with the least amount of manual boilerplate management.

Try it / poke around

Open source: GitHub - nries1/papushome · GitHub

Thanks to the Redwood team and community — this would’ve been a lot more scaffolding and less “actually building the interesting part” without Redwood handling GraphQL/Prisma/deploy for me.

Happy to answer questions about any piece — tool-calling, MQTT/hardware, or the booking integrations. Let me know what you’d want to hear more about!