En
Active

Entercom

A virtual intercom service - ring a doorbell in your browser and connect directly via audio or video. No app install required.
typescriptconvex
Cr
Work in progress

CrossCheckout

A tool for collating online grocery receipts and reporting on price and purchase trends over time. Lets you track what you spend, compare prices across shops, and spot patterns in your shopping history.
groceries
WS
Active

What's Next?

A feature suggestion and voting system using instant-runoff based ranking to surface the most broadly preferred options across a group.
voting
TQ
Work in progress

TQM

Task Queue Manager (TQM) is an AWS-native task queue service built on DynamoDB and Lambda, deployable via Terraform. Influenced by SQS, Celery, BullMQ, and other task queuing systems, it's designed for workloads where SQS falls short: specifically where you need fine-grained control over dispatch rate to downstream services, approximate priority ordering, or DAG-style task dependencies. SQS's Lambda integration handles polling for you, but this makes it hard to implement backpressure and circuit breaking without tuning concurrency and batch size - which is highly sensitive to Lambda execution time. TQM keeps you in control of dispatch, with rate limits defined by token buckets which can be used independently, or combined and shared by multiple queues. Design
awssqsdynamodb
Ke
Proof of concept

Kevalin

Kevalin is a proof of concept distributed web platform built with modern web technologies. It allows contributors to publish content to the network without the need to host a website themselves, while maintaining control over their own content in the sense that the files making up their posts are freely downloadable from the network at any time, or can be marked for removal by participating peers. The network is not tied to any particular server, the content itself is identified by its hash and may be fetched from any participating peer. The core principle is that it must not require the installation of any additional software to join the network, nor require a user account for read-only access to public content, just like the traditional World Wide Web. There are several intended interaction modes for publishing and consuming different types of content. Tech stack
p2p
Ku
Work in progress

Kumiko

A content-addressed, deduplicated backup tool targeting cheap cloud blob storage. The design follows the approach pioneered by Brad Fitzpatrick's Brackup: large files are split into chunks using content-aware boundaries, each chunk is stored exactly once in a remote store indexed by its hash, and each backup is recorded as a manifest referencing those chunks. This makes every backup self-contained and independent while deduplication handles the incremental savings automatically. The practical goal is to make encrypted incremental backups to AWS S3 Glacier and similar services viable, with the added option of pooling deduplicated chunks across multiple machines or users in a single store, rather than paying for a separate backup for each.
gobackup
Ha
Work in progress

Handl

An experimental multi-tenant CRM that bridges email and Asana for managing external customer contact. Asana's native email integration is unidirectional and designed for internal teams; Handl turns an Asana project into a shared inbox by accepting inbound emails via AWS SES, creating a task per thread, and routing follow-up messages as comments on the same task. The outbound half - replying to contacts as tasks are updated or commented on - is still in progress. The stack is serverless throughout: AWS SES for email, Lambda for processing, and DynamoDB for state and per-tenant config.
asanacrmemail
Sp
Proof of concept

Sprocket

A distributed application framework for building streaming, event-driven pipelines on commodity serverless infrastructure - Lambda, ECS, Kubernetes, or anything else - while remaining language and platform agnostic. The core idea, drawn from experience with Apache Storm and Flink, is to separate the application logic (tasks invoked over a simple HTTP protocol) from the orchestration concerns (event queueing, dispatch, rate limiting, backpressure), handled by a sidecar layer that runs alongside each execution unit. The closest analogue is DAPR, a Microsoft Research project that launched around the same time and addresses a similar problem. Sprocket's emphasis was on the protocol layer: any service that can handle an HTTP request can participate in the graph, regardless of language or runtime.
godistributed-systemsserverless
Co
Maintenance

CompactList

CompactList implements the List<Long> interface, but internally it uses a tree of variable word-width segments to improve performance and memory usage compared to an ArrayList. Performance tends to be worse for appends than an ArrayList but better for inserts. Memory usage is significantly reduced, even for incompressible random data where it approaches the memory use of an array of primitive longs (which happens to be the internal representation in this case). There are some performance metrics over at the GitHub repository. My aim is to use this for the internal index representation in CSView, which already uses an earlier version of this data structure. Source code at GitHub
javacsview
CSView
Active

CSView

A fast CSV viewer built for files that break everything else. Open multi-gigabyte files in seconds with background indexing, smooth scrolling through 300M+ rows, and modest memory usage - without ever modifying your data. CSView 2 is a ground-up native macOS rewrite optimised for Apple Silicon. CSView 1.x remains available for macOS, Windows, and Linux.
macoscsvapp
An
Proof of concept

Anansi

An experimental graph database written in Go, motivated by the poor performance of existing options like Neo4J and the question of whether a bare-metal approach could do better. The design used Morton-coded indexes to maintain bidirectional edge relationships between nodes in a way that could be distributed across a cluster, although it didn't progress that far. It reached a working single-node implementation with acceptable traversal performance, including some connected component algorithms, but never gained replication or clustering. In the end, confidence in the implementation wasn't high enough to use it in production, and the need for deep graph analysis turned out to be less pressing than expected. At Stashmetrics, the follower graph problem was solved more pragmatically by storing edge lists directly in DynamoDB - paginated arrays of follower IDs per user rather than one record per edge.
databasegraphgo
Ma
Maintenance

Magnets

After reading this article about Magnetic Poetry I was taken by the idea that the fridge was no longer the central notice board of the home: Our age-old impulses haven't gone away—changes in technology have just encouraged us to take them elsewhere. "It used to be the fridge door was the center of the home," Kapell says. "That’s where people would hang their kids’ art, leave notes for each other, put pictures, all that stuff." So, I thought I would create a digital magnetic notice board, replete with fridge poetry, postcards and photos. I've got a few loose ends to tie up, but I'm pretty happy with the proof of concept.
websocketscss
Di
Maintenance

Ditto

A web tool for copying Asana projects between workspaces. Takes a complete snapshot of tasks, subtasks, attachments, custom fields, and assignees, then recreates them faithfully in any destination workspace. Free to use with no installation required. In maintenance mode as of April 2025. Full details Background The original tool started in 2013, based on a script posted to GitHub by AWeg and an earlier version by MhdHejazi. A web UI was added to help choose projects, then gradually updated to support new Asana features like Teams and Custom Fields. It became surprisingly popular - in no small part because Asana support would refer users looking to transfer projects between workspaces to it directly. Over six years it was sustained entirely by donations, just about covering running costs.
asanago

PP
Archived

P2PPP - Peer to Peer Planning Poker

An implementation of 'Planning Poker' often used in software feature estimation. This version uses WebRTC data channels to coordinate votes between the players, which reduces the need for a server to track this state and improves running costs and performance.
p2pwebrtc
Co
Archived

Compareomatic

A Twitter analysis tool that examined the lists a user appeared in and used that list-membership fingerprint to recommend accounts with a similar profile.
twitteremail
La
Archived

Languamatch

Languamatch was an experimental service for locating language exchange partners based on shared interests and skill levels. (Currently offline)
languageswebsocial
Fu
Archived

Furor

Furor is a web content curation tool for businesses. (Currently offline)
curationsocial-media
Sl
Archived

SlimTweet

SlimTweet tries to shorten a message by applying a set of rules. For example, and will be replaced by &, while it is will be replaced by it's. Substitutions will be made one at a time until the message reaches a target length (140 characters by default). If SlimTweet still can't make the message fit, it will start tweaking the Unicode characters which make up your message, without changing its appearance too much. For example, the digraph vi will be replaced by the roman numeral character . When rendered in a standard font, these substitutions are nearly inⅵsible. (Currently offline)
twitterunicodeutility
St
Archived

Stashmetrics

Stashmetrics was a seed-funded SaaS startup focused on social media analytics for content marketing, running from 2012 to 2017. The core problem it addressed was the difficulty of discovering what content was actually resonating within a specific niche community - as opposed to what was broadly popular - and finding influential accounts within that community. The two main capabilities were: 1. Niche content discovery - given a community of interest, surface the content and topics gaining traction specifically within that group, rather than across the platform as a whole. 2. Influencer similarity search - given a small seed set of influential profiles, locate similar accounts using profile text similarity and common list membership, combining graph analysis with vector similarity search. The platform targeted Twitter, Instagram, Facebook, YouTube, and Tumblr.
startupsocial-mediaanalyticsgo
JG
Unmaintained

jGraphViz

Graphviz is a widely used graph layout package developed by AT&T. There exist several ways of using Graphviz from Java, but in most cases the Graphviz command line tools are called to parse files containing a graph definition and render a rasterised image of the graph. This is unsatisfactory for many interactive applications, and a more direct interface to the layout algorithms is desirable. Java bindings generated using SWIG already exist as part of the Graphviz source code, however they are very low-level. jGraphViz aims to build on these low-level bindings to provide a more flexible interface to the graph model and layout system. It also provides some basic support for rendering the resulting layouts using GEF , and packages the library as an OSGi plugin compatible with Eclipse and other OSGi containers. Source code at SourceForge
java
Ja
Unmaintained

Javada

In order to allow the use of Ada libraries with Java GUIs, a JNI (Java Native Interface) binding must be created which allows the JVM to call the non-java code, and vice versa. Working with the JNI is complicated, and maintenance to the interface is time consuming. A more intuitive approach is to make Java objects directly visible to the native code, and vice versa. Javada allows this with Ada by providing automatically generated 'proxy' objects, which present the correct interface to the developer while hiding the complexity of the JNI and performing memory management behind the scenes.
javaadacodegen
Wi
Archived

Wildebeest

Wildebeest was a peer-to-peer distributed web cache, built in Java on top of ZeroC ICE middleware. The problem it aimed to solve was the Slashdot effect: before cloud hosting, a self-hosted project featured on Slashdot's front page would routinely go down or exhaust its bandwidth within hours. The idea was that participating users could share their locally-cached copy of a site through a distributed proxy, so availability would scale with popularity rather than being bottlenecked by a single host. The project reached proof-of-concept stage - a working proxy server that could serve cached resources from other nodes in the network, with the benchmark being successfully loading the Gmail web interface through it. It never had users and wasn't promoted.
p2pjavaice
Ch
Archived

ChilliOS

A hobby x86 32-bit OS kernel built collaboratively with a housemate around 2005, inspired by a university OS design course. Written in D - chosen for its object-oriented model and optional GC, which made it a better fit than C++ for bare-metal development. The bootloader used ASM segments from the osdev.org wik; everything else was built from scratch, including a custom memory allocator and the D stdlib primitives needed in kernel mode (no libc available). The binary image was cross-compiled and loaded into QEMU. Design The kernel was designed as a microkernel built around non-blocking message passing - avoiding kernel interrupts for most IPC. Rather than a file-based abstraction, the design was object-based: OS primitives would expose interfaces that could be interacted with transparently over the network. This was influenced heavily by CORBA, which I had been working with during a placement year.
oskernelD
EC
Unmaintained

Eclipse CORBA Plugin

The Eclipse CORBA Plugin (ECP) provides extra features to the Eclipse platform to facilitate development using the CORBA middleware specification. Features IDL (Interface Definition Language) file editor with syntax colouring. Customisable syntax colouring Eclipse automatic installation site Tool for running external IDL compilers New Outline view for the IDL editor Autocompletion for editing IDL types Source code
javaeclipsecorbaide