Building AI capabilities for education that you own

I believe educational institutions should own their AI capabilities—not rent them from vendors, not be left without options when contracts end, not compromise student privacy for convenience.

I'm Kevin M. Kinsall, and through KMK Web Solutions LLC, I help districts build systems that adapt to their unique needs and goals. Whether you need cloud-based solutions using frontier AI APIs or fully local systems running on your own infrastructure—I can build both. Production-ready software you own, deploy, and control. Based in Elgin, IL, serving educational institutions nationwide.

Data sovereignty is non-negotiable

I build local AI systems using technologies like Ollama that run entirely on your infrastructure. Your data never leaves your network. No API costs, no cloud dependencies, and FERPA compliance is baked in from the start.

Ownership over rental

I work alongside your team to build what you need—and when we're done, everything is yours. Complete applications with full source code and documentation. No vendor lock-in, no perpetual fees. You own the capability and can extend it however you choose.

When advanced capabilities matter

Some tasks need the power of frontier models from OpenAI, Anthropic, or Google. Strategic planning, complex reasoning, pulling together insights across curriculum, students, operations, and finance—when you need that level of capability, I build systems that tap into those APIs while keeping you in control of how your data flows.

Built for how educators work

I focus on human-AI collaboration, not replacement. Natural language interfaces designed by someone who understands educational workflows. Curriculum coordinators search materials by grade and standards. Student support teams pull whole-child profiles. Finance officers query budgets in plain English. AI that works with your people, matching how schools actually operate.

Knowledge that persists

When your team understands, maintains, and extends the systems you deploy, that knowledge stays with you and grows over time. Document search systems preserve what your organization knows. Technical expertise transfers to your staff. You're not left dependent on outside help—you own the capability.

Hybrid by design

The question isn't "local or cloud?"—it's "what combination serves each need best?" Sensitive student data stays local. Strategic planning taps into cloud APIs. Budget queries run on-premise. Legal compliance tools use the smartest models available. I build systems that pick the right tool for each job.

What I deliver

Chat interfaces that remember context and stream responses in real time. Search tools for curriculum and policy documents. Data analysis for attendance and assessments. Vision models that can read and understand documents. Web apps that work even offline. Multi-tenant platforms where each school's data stays separate.

You get complete software, deployment docs, and implementation guidance. And I'm here to stay—whether you need help expanding what we built, adding new capabilities, or ongoing support. I build things correctly for the long haul, and I'm available to grow with you.

Who I am

I hold a Master of Education from McKendree University and a BS in Information Technology from the University of Missouri. I've spent years learning by doing—building real systems in educational technology, web development, and AI. I understand both the technical side and the educational context because I've worked in both worlds.

Through KMK Web Solutions LLC, I partner with educational institutions to build AI capabilities that respect their constraints, serve their needs, and grow with their goals. I'm here to collaborate—and to make sure you walk away owning something that lasts.

Demo: Workspaces

A Slack-inspired AI productivity suite combining project management with context-aware AI assistance. Features task management with due dates and subtasks, threaded messaging, cross-project RAG context via hashtags, and multiple AI personalities—with both local Ollama models and GPT-5 integration including web search.

Node.js SQLite Ollama OpenAI GPT-5 Vanilla JS
Email for access
Learn more

What it does

A Slack-inspired workspace where you create projects as channels, manage tasks with due dates and subtasks, have threaded conversations, and chat with an AI that genuinely knows your work. Use hashtags like #project-name to pull context from other projects into AI conversations—true cross-project awareness.

AI models & personalities

Cloud models: GPT-5.1 (advanced reasoning + web search), GPT-5 Mini (fast + web search), GPT-5 Nano (ultra-fast for descriptions and cleanup). Local models: Qwen2.5-Coder 7B, Qwen3 4B, Gemma3 4B via Ollama.

Seven built-in personalities: Chat (general), Workspaces (project context), Mental Health Coach, News Assistant (web search), Learning Buddy, NFL Insider, plus custom personalities via Admin panel. Each has tuned prompts, temperature, and preferred models.

Project & task management

  • Tasks with titles, descriptions, due dates, and subtasks
  • Task status tracking (in-progress / complete)
  • Threaded message replies with reactions
  • Timeline view aggregating all activity across projects
  • Project priorities and AI-generated descriptions
  • Cross-project RAG: #project-name or #all in AI queries
  • Voice-to-text input via Web Speech API

Architecture

Express.js backend with better-sqlite3 for synchronous database operations. RESTful API for channels, messages, tasks, and projects. Streaming endpoint for real-time AI responses with token-by-token display.

Frontend is vanilla JavaScript ES6 modules—no React/Vue. Manager-based architecture: SlackApp (core + AI), UIManager, ThemeManager, ModalManager. CSS custom properties for dark/light theming.

Context injection pattern: before each AI request, the system queries SQLite for current project data, recent messages, tasks, and any hashtag-referenced projects. This gives genuine workspace awareness without embeddings.

Admin panel

Configure user profile and avatar, create custom AI personalities, monitor Ollama connection status and available models, view AI activity logs with model details and token estimates, and adjust GPT-5 reasoning effort and verbosity settings.

Demo: CSV Transformer

A privacy-focused web app for transforming CSV data using natural language queries. Ask questions in plain English, get SQL queries—all processed locally in your browser with DuckDB-WASM and Ollama. No data ever leaves your machine.

CSV Transformer - Tables & Schema view
CSV Transformer - AI-Powered Insights
CSV Transformer - Join query results
CSV Transformer - SQL query execution
CSV Transformer - Join Assistant
CSV Transformer - SQL Preview
CSV Transformer - Query results
CSV Transformer - Data filtering
React TypeScript DuckDB-WASM Ollama
Email for access
Learn more

What it does

Upload any CSV file and ask questions about it in plain English. "Show me the top 10 customers by revenue." "What's the average order value by region?" "Filter to orders over $500 from Q4." The AI translates your question into SQL, runs it, and shows you the results—all without you writing a single query.

Architecture

The app runs entirely in your browser—no backend server needed for data processing. DuckDB-WASM handles SQL execution with near-native performance, while Ollama generates queries locally. Your CSV never touches a remote server.

I chose this architecture specifically for privacy-sensitive use cases. Schools, healthcare, finance—any context where data can't leave the building. The React frontend communicates with Ollama via localhost API, and DuckDB runs in a Web Worker to keep the UI responsive during heavy queries.

Conversational query refinement

Most natural language SQL tools are one-shot: you ask, it answers, done. This one maintains conversation context. After your first query, click "Refine" and say "Now group that by month" or "Add a filter for active customers only." The AI builds on your previous query instead of starting fresh.

This mirrors how analysts actually work—iterating toward the answer rather than nailing it on the first try.

Smart error handling

When a query fails (and they do—AI isn't perfect), you get a human-readable explanation: what went wrong, why it happened, and a suggested fix. Not "Syntax error at position 47." The app uses a separate lightweight model (Gemma 3 1B) just for generating these explanations, keeping response times fast.

Features

  • Auto-generated query suggestions based on your actual column names and data types
  • Smart column filtering with range syntax (e.g., "10-50") and multi-select
  • Automatic column type detection (numeric, categorical, text, date)
  • One-click CSV export of any result set
  • Model selection: 7B for accuracy, 3B for speed
  • Full SQL visibility—see exactly what's being executed

Tech stack

React 19 with TypeScript, Vite for sub-second hot reload, DuckDB-WASM for in-browser SQL, and Ollama for local inference. The frontend is component-based with clean separation between the query interface, result display, and AI communication layers.

React Data Table Component handles virtualized rendering for large result sets—important when you're querying files with hundreds of thousands of rows.

Demo: WiFi Analyzer

A comprehensive real-time WiFi monitoring dashboard with AI-powered analysis. Tracks 12+ network metrics including Network Grade (A-F), MOS Score (ITU-T telecom standard), latency, jitter, packet loss, and actual speed tests—with an integrated AI assistant that teaches networking concepts while diagnosing your connection issues.

Vanilla JS OpenAI API Network APIs Canvas Charts
Email for access
Learn more

What it does

A split-panel dashboard with real-time network monitoring on the left and an AI chat assistant on the right. Tests run every 5 seconds, updating 12 metric cards live. The AI doesn't just analyze—it teaches networking concepts from a CS perspective, explaining what each metric means and why it matters.

Network metrics tracked

  • Network Grade (A-F): Combined quality score based on all metrics
  • MOS Score: ITU-T Mean Opinion Score (1-5) for VoIP call quality prediction
  • Latency: Round-trip time with min/avg/max statistics
  • Jitter: Packet delay variation affecting real-time apps
  • Packet Loss: Failed tests percentage
  • Uptime: Network availability percentage
  • DNS Time: Domain resolution speed
  • Download/Upload Speed: Actual throughput measurements
  • Public IP, ISP, Location: Connection identification

Educational tooltips

Every metric has an interactive tooltip explaining the concept, formula, and real-world implications. Hover over "Jitter" to learn about packet delay variation. Hover over "MOS Score" to see the ITU-T R-factor calculation. Makes networking concepts accessible without leaving the dashboard.

AI assistant

GPT-4o-mini receives your complete monitoring data with one click. Quick action chips: Analyze, Explain (in simple terms), Why Slow? (teaches concepts), Hub Status. Responses stream in real-time with full markdown formatting.

The AI is tuned as both a network analyst AND a CS instructor—ask it to explain concepts in simpler terms anytime.

Features

  • Real-time Canvas chart showing last 50 latency tests
  • Activity log with timestamped events
  • System info: Platform, User Agent, Effective Connection Type
  • Export monitoring data for documentation
  • Dark mode UI matching the Workspaces project theme
  • Back navigation to Workspaces (integrated suite)

Demo: Social Media Model Trainer

A complete LoRA fine-tuning pipeline using ThinkingMachineLabs' Tinker API. Train custom language models on your organization's content for under $1. Includes a web interface for generating posts with the trained model.

Python Tinker API LoRA Node.js
Email for access
Learn more

What it does

Fine-tune a 4B parameter language model on your organization's social media posts, then generate new content that matches your voice and style. The demo was trained on 57 real posts from CCSD93 school district across 7 schools.

Training pipeline

  • Base model: Qwen3-4B-Instruct (instruction-tuned for stability)
  • Fine-tuning method: LoRA (rank 32) for efficient adaptation
  • Training: 40 epochs, batch size 4, Adam optimizer
  • Loss: 4.22 initial to 0.0002 final (99.99% reduction)
  • Total cost: ~$0.45 via Tinker API

Architecture

The training code is pure Python using the Tinker SDK. Data processing converts posts into chat-formatted examples using Qwen3's template. The web interface is Express.js calling Python subprocesses to run inference with the trained model.

The pipeline handles the complexity of tokenization, loss computation from logprobs, and model weight saving for inference—all abstracted into a clean API.

Key learnings

  • Smaller instruction-tuned models outperform larger base models on small datasets
  • LoRA rank 32 balances capacity and training stability
  • Chat template consistency between training and inference is critical
  • Conservative learning rates prevent loss spikes

Demo: Social Hub

An AI-powered social media calendar for school districts. Plan, create, and improve social media posts with an intelligent assistant that learns your writing style, integrates with Google Calendar, and supports multi-school coordination.

PHP OpenAI API Google Calendar Tailwind CSS
Email for access
Learn more

What it does

A monthly calendar view with a VS Code-inspired dark theme. Click any date to add social media posts. The AI assistant analyzes your previous posts to learn your writing style, then generates new content that matches your district's voice and tone.

Smart calendar features

  • Color-coded cells: blue (posts), green (calendar events), purple (both)
  • Google Calendar ICS integration with automatic sync
  • Multi-school selection for district-wide posts
  • Collapsible sidebar with responsive mobile design
  • School-specific analytics tracking post distribution

AI assistant

GPT-4o-mini with session-based chat persistence. Describe your event and get content that matches your established style. Quick action buttons for achievements, events, reviews, and calendar queries.

One-click auto-post extracts clean content from AI responses and posts directly to your calendar with inline confirmation.

Security

  • Rate limiting: 20 requests/minute per IP
  • Input sanitization and XSS protection via DOMPurify
  • Session storage clears on browser close
  • JSON-based storage—no database required

Demo: Bus Qualifier

A transportation eligibility tool that determines which students qualify for bus service based on driving distance. Upload a CSV of addresses, and get instant results showing who's over the 1.5-mile threshold plus optimized route suggestions.

PHP Google Maps API Distance Matrix GeoJSON
Email for access
Learn more

What it does

Select a school, upload a CSV of student addresses, and the tool calculates driving distance to each address using Google's Distance Matrix API. Students over 1.5 miles qualify for bus service. Results are instant and exportable.

Distance calculation

  • Actual driving distance, not straight-line
  • Google Distance Matrix API for accuracy
  • School locations from GeoJSON data
  • Address formatting with town name detection
  • Batch processing for large student lists

Route optimization

After identifying eligible students, the tool generates optimized bus routes. It consolidates nearby addresses into single stops, orders stops using a nearest-neighbor algorithm, and calculates timing backwards from school start time.

Each route includes departure time, stop sequence, estimated duration, and student counts per stop.

Technical details

  • Uses Google Maps JavaScript, Places, and Distance Matrix APIs
  • Levenshtein distance for address similarity matching
  • Dynamic stop time calculation based on student count
  • 8:30 AM school start with configurable buffer time
Kevin Kinsall
© 2025 KMK Web Solutions LLC | Kevin M. Kinsall kevin@kmkwebsolutions.com