Inspiration
I grew up watching people navigate systems that weren't built for them. As an international student from Burundi, I've seen firsthand how identity documents, or the lack of them, determine access to healthcare, education, financial services, and safety. There are over 100 million forcibly displaced people in the world. Most have no persistent digital identity. Not because they don't exist, but because the systems that record existence weren't built to include them.
GhostBorder started with a simple question: what if identity didn't require a government's permission?
What it does
GhostBorder is a cryptographic identity vault for stateless and displaced people. Instead of relying on a single authoritative document, it builds identity from a web of attestations: an NGO says "this person received aid on this date," a clinic says "this person was vaccinated," a community leader attests to residency. No single institution controls or owns the identity. The credential bundle belongs to the person.
An NGO field worker visits /issue and submits an attestation in under
30 seconds. The displaced person receives a QR code. Anyone verifying their
identity scans the QR code and sees: "Amara's identity has been attested to
by 3 independent organizations across 2 countries over 14 months. No single
organization controls this record."
How I built it
- Frontend: Next.js scaffolded with Vercel v0, deployed on Vercel
- Backend: API routes handling attestation writes and bundle reads
- Database: Amazon DynamoDB, chosen deliberately for its schemaless structure (different NGOs submit different attestation fields), high-velocity write throughput, and partition-key access pattern (person_id + timestamp) that maps directly onto the trust model
- Cryptography: Each attestation is SHA-256 hashed at write time, creating a tamper-evident record. The production roadmap includes zero-knowledge proofs for selective disclosure without revealing PII.
Challenges I ran into
Building something this sensitive under extreme time pressure forced brutal scoping decisions. The ZK proof layer is architected but not fully implemented; the demo uses SHA-256 hashing as the cryptographic anchor, which is honest and defensible. The harder challenge was designing a UI simple enough for a field worker on a 3G connection while still conveying the weight of what the system does.
What I learned
That the hardest engineering problems aren't technical; they're about trust architecture. Who attests? Who verifies? Who can revoke? DynamoDB's data model forced me to think clearly about access patterns before writing a single line of code, which made the architecture stronger.
What's next
- Aurora DSQL for multi-region, strongly-consistent attestation storage with true tamper-evidence across jurisdictions
- Zero-knowledge proof layer for selective disclosure
- Offline-capable PWA for field workers without reliable internet
- Partnerships with UNHCR and MSF for pilot deployment
Built With
- amazon-dynamodb
- aws-sdk
- next.js
- node.js
- qr-code-api
- sha-256
- tailwind
- v0
- vercel

Log in or sign up for Devpost to join the conversation.