
Inspiration
With the accelerating trend of hybrid and remote working that has only increased since the COVID-19 pandemic, we were inspired to reimagine how centralized work, parking, and location apps could be improved using open web principles that put people in control of their data and money.
Space Gem is using open web principles to address a real-world application that affects several millions of people every day. It's an ideal way to showcase what NEAR and open web can do to a wider user base beyond crypto.
What it does
There are plenty of web 2 based space booking applications – apps like AirBnB being front and center. With a web 3 based solution, we’re looking to apply open web principles to those platforms and change the entire paradigm of how people who own space provide it to those who need space. Specifically, we’re embracing what NEAR aims to enable – a world where people control their money and their data while providing the ecosystem with composable tools to help build and accelerate new ideas. In terms of Space Gem, that means:
a. Space Gem provides the means for space owners to connect directly with space providers without someone in the middle acting as a middle person/broker and making decisions that affect either party. There are no exorbitant listing fees or decisions being made as to whether someone can list something or not. It’s an open platform, governed by the rules programmed into the smart contracts.
b. It’s possible for Space Gem to run 100% decentralized. The demo is hosted on an Azure VM, but it can easily move to a decentralized hosting solution like Flask or IPFS. Decentralized data streams and data storage is enabled through Ceramic and IPFS. For performance and data, it’s using subgraphs, that are currently deployed to The Graph’s hosted service – but they can also be moved to Graph ndoes when that becomes more accessible for NEAR.
c. Space Gem puts everyone using it in charge of their own data. The app has no ability to change any of it thanks to the integration with NEAR/Ceramic. Anyone using the app is in control of their money and their data.
d. Space Gem builds on/contributes open-source composable pieces to the NEAR ecosystem. The front end ties into deployed contracts, decentralized profiles through NEAR profiles, and subgraphs deployed to The Graph. Anyone else can now decide to alter the frontend or build a completely new app using the same underlying framework.
How we built it

SpaceGem is built on NEAR Protocol with contracts in both AssemblyScript and Rust and a frontend in React. It gets added functionality from NEAR integrations with Ceramic.Network and The Graph.
Every location added to the app whether it is a building or parking lot is minted as a NFT that contains a reference to a Ceramic datastore id – a decentralized identifier or DID. This enables us to add to or change data that is associated with that location as needed but also enables all the decentralized ownership benefits that come along with NFTs including the ability to transfer the building/lots to another person as desired.
The spaces that are added to the buildings/lots are also minted as NFTs at the time of reservation – and because spaces are NFTs, they can be issued/valid for set lengths of time – enabling the renting of the spaces. They too are linked to DIDs to enable provision of rich information about the space in a decentralized manner. Any images/media that are added to the listings are stored on IPFS with their CID linked to the space’s DID as well. Provides a completely decentralized storage solution.
We’ve built subgraphs for NEAR on The Graph and use GraphQL queries to make data available to the frontend. For example, the subgraphs provide the DID for each location as they are added which are then used to look up that location’s datastore on Ceramic. The Graph is indexing the main Space Gem subgraph as well as the registry contract used to register DIDs.
The app has some social features built in and more will come. It already supports decentralized profiles – also built with the NEAR/Ceramic integration. People can manage/build rich profiles for the NEAR account they use with Space Gem or any other application in one place where they control their data/can change it at will.
Challenges we ran into
Forming a new team and coming together for the first time to produce something that might seem simple on the surface, but is actually highly complex was not without challenges. Those challenges ranged from things as normal as coordinating team member efforts to delays incurred as a result of reliance on technologies we chose to implement that are in beta (The Graph support for NEAR).
Everyone on the team is employed full-time or attending full-time university classes. It is not taken for granted that the members sacrificed family and personal time to contribute to the project and see the vision become reality. It was incredible to see how everyone supported each other as the application took form leading up to this submission.
In terms of technical challenges, the vast majority arose from the need to learn new skills and concepts, and every member of Pistol Shrimp walks away from this hackathon journey having added something to their skills, knowledge, and competency toolset.
Accomplishments that we're proud of
First and foremost, we're all pretty proud of what we were able to accomplish in the time available and given constraints due to work/personal obligations, capitalizing on the strengths of each member of the Pistol Shrimp to put together this submission for the Metabuild hackathon. Four of the six members of the Pistol Shrimp are brand new to NEAR and web 3 and this is the first project we've all worked on together. That coupled with the fact that we actually produced something pretty amazing puts a smile on all our faces.
What we learned
Every member of the team learned different things ranging from what a hackathon, NEAR and Web 3 even is, to why we might want to use open web technologies in applications like Space Gem, to the technical implementation of NEAR with other technologies like Ceramic and The Graph.
Members learned to build data models, UI prototyping with Figment, component development with React, NEAR contract development in Rust and AssemblyScript, how to work together remotely on a software project with an introduction to Azure DevOps, Github, video production and editing, and more.
What's next for Space Gem by Pistol Shrimp
The Pistol Shrimp team is hitting its stride and has big plans to make Space Gem a formidable force and agent for open web adoption. We're looking to continue building other components that we believe will become valuable parts of the NEAR ecosystem and bring added functionality to Space Gem. If you're interested in our project and want to be involved or support future development, please reach out and get in touch. Here is our roadmap.

Demo Link Note
The live demo link provided below is best used on mobile or using a mobile screen resolution. The application has not been optimized for larger screens yet.





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