Standalone API, SDK, and web console for managing invite codes.
This software is intended for private beta access to SaaS.
Running a private beta with a controlled, trusted group helps you validate your idea and surface early bug reports before going viral. By limiting access, you can ensure a higher quality experience for your initial users and iterate quickly based on direct feedback.
Install Deno on your system.
Run the following commands to develop:
deno task start: Start the API server and admin console.deno task test: Run the tests.
The admin console is hosted directly by the API server. You can access it by
navigating to your API's root URL (e.g., http://localhost:8000/v1/invites) in
a web browser. The server will detect your browser's request for HTML and serve
the console.
This project is designed to be multi-instance. To deploy your own instance of the invites API:
- Fork the repository: Create a new repository by forking this one. Name it
based on your project (e.g.,
my-project-invites). - Create a Deno Deploy project: Go to the Deno Deploy console, create a new project, and provision a Deno KV database, and connect it to your project.
- Deploy: Connect your forked repository to the new Deno Deploy project. Deno Deploy will automatically deploy the API for you.
Tip
You can set an API_KEY environment variable in the Deno Deploy console to
protect your API. If set, all requests must include an X-Api-Key header with
the corresponding value.
You can use the SDK to interact with your invites API.
import { InvitesSdk } from "@fartlabs/invites/sdk";
const sdk = new InvitesSdk({
baseUrl: "https://my-project-invites.deno.dev",
apiKey: "optional-api-key", // Include this if API_KEY is set on the server.
});
// Create a new invite with a custom ID.
const invite = await sdk.create({
alphabet: "1234567890abcdef",
size: 10,
});
console.log(invite); // e.g., { code: "4f90d13a42", ... }
// List invites.
const { items } = await sdk.list();
console.log(items);Developed with 💖 @FartLabs
