Inspiration
Over 1.3 billion people worldwide (16% of the global population, or 1 in 6) live with a significant disability (WHO, 2022). Despite this, modern digital workspaces like Slack are designed around an assumed-abled, native-English-speaking, low-distraction default user.
We were inspired by the "Curb-Cut Effect",the phenomenon where accessibility features built for a specific group (like sidewalk ramps for wheelchair users) end up benefiting everyone (like parents with strollers, travelers with luggage, or cyclists). We wanted to build Bridge: an ambient infrastructure layer that quietly transforms the default Slack experience into one that is more supportive, cognitively accessible, and inclusive for all employees.
What it does
Bridge works as a passive helper and an on-demand command suite across your workspace:
- Auto Alt-Text: When an image is posted, Bridge automatically calls a vision model to generate a WCAG-compliant description and replies in the message thread.
- Ambient Translation: Teammates can configure their preferred language. When messages are posted in other languages, Bridge silently translates them ephemerally (visible only to that user) to prevent cluttering the channel.
- Plain-Language Simplification (
/bridge simplify): Neurodivergent teammates or anyone returning to a massive thread can get a plain-language summary of the discussion. - Channel Digests (
/bridge digest): Provides a scannable daily summary of channel activity at a plain-language reading level. - Private Inclusion Nudges: When exclusionary or aggressive language is used, the bot privately DMs the author with a non-judgmental suggestion and a swap option. It is rate-limited and completely opt-out-able.
How we built it
Bridge is built using Python and the official Slack Bolt SDK, taking advantage of the Agents & AI Apps framework.
- Backend Storage: Local preferences and rate-limit logs are persisted in a DynamoDB Local container running via Docker Compose.
- Large Language Models: To maintain high speeds and cost efficiency, we integrated Ollama Cloud's OpenAI-compatible endpoint. We route text reasoning, translation, and classification tasks to the
gpt-oss:120bMixture-of-Experts (MoE) model, and usegemma3:27bfor image vision processing. - Context Fetching: We utilize Slack's RTS (Real-Time Search) API to fetch entire thread contexts dynamically for simplification and digests.
Challenges we ran into
- Surveillance vs. Support (Nudge Calibration): Setting up a classifier that monitors language runs the risk of feeling like "Big Brother." We mitigated this by enforcing strict asymmetrical privacy: nudges are sent exclusively via private DMs, never logged in the database with their text content, and gated behind a high confidence threshold ($0.75$).
- Adversarial Tuning: To verify the nudge classifier, we wrote an adversarial test suite of 17 complex cases (jargon, reclaim words, sarcasm). By tuning the system prompt on
gpt-oss:120b, we achieved a 0.0% False-Positive rate and a 5.9% False-Negative rate. - SQLite Windows Mounting: During Docker setup on Windows, we encountered folder/file permission errors from SQLite within DynamoDB Local. We solved this by switching the container's execution command to utilize the
-inMemoryflag, removing volume dependencies entirely.
Accomplishments that we're proud of
- Fail-Silent Passive Design: If an LLM call fails, background tasks degrade silently without alerting users or starting retry loops, while on-demand user commands fail gracefully with a friendly "Try again shortly" message.
- Strict Performance Goals: The test suite uses
motofor mocking AWS resources, ensuring quick local testing runs in under 10 seconds. - 100% Passing Tests: Fully verified unit test coverage across language detection, preferences, and the live LLM classification endpoint.
What we learned
We learned how crucial it is to design for the worst-case scenario when using AI in group communication settings. Treating accessibility as an ambient layer rather than a standalone app that users have to remember to summon makes the entire workspace a more collaborative and empathetic place.
What's next for Bridge
- Aggregated Admin Analytics: Providing workspace administrators with anonymous, aggregated charts showing the number of alt-texts and translations generated, proving organizational impact without violating user privacy.
- Feedback loop: Adding a "This nudge wasn't helpful" button so users can flag false positives and fine-tune their local instance's classifier threshold.
- Serverless Production: Migrating the Bolt handler to run on AWS Lambda behind an API Gateway, pointing at a production regional AWS DynamoDB table.
Log in or sign up for Devpost to join the conversation.