Neptune is a chat interface built against Ollama’s API, with no framework on the front end and a small Express service behind it. The work was less about the chat bubbles than the request lifecycle around them: replies stream in as they are generated, a response can be cancelled or timed out mid-stream, and the interface reports whether the backend is actually reachable.
Neptune AI Chatbot
Tylon SohnleA framework-free chat app with streamed Ollama replies, saved conversation context and cancellable requests.
The compact layout keeps the starting prompts and the composer within reach. Create, Explore, Code and Learn give the empty state a purpose, and the model and message actions sit inside the composer.
The Express backend separates routing, controllers, middleware and inference, so the parts that validate a request are not tangled with the parts that talk to the model. Replies stream to the browser through the Fetch API and a streamed reader, decoded with TextDecoder and rendered as they arrive rather than waiting for the full response.
An AbortController ties cancellation and timeouts to each request, and a heartbeat polls a health endpoint so the interface can show when the backend is unavailable instead of failing silently. The API is rate-limited per IP with proxy-aware client detection, validated input and an environment-configured CORS allowlist, and it logs requests with timing and user-agent data. The front end deploys on GitHub Pages and the API on Render.