Getting started
A walkthrough from creating your organization to shipping your first ticket. Ten steps, in the order you'll actually hit them.
Sign up with your email, or accept a teammate's invite link if someone already set up your organization. The first person to sign up for an organization becomes its Owner.
Every project, ticket, and teammate lives inside an organization — think of it as your company's workspace. You can belong to more than one (e.g. an agency working across clients), and switch between them from the Dashboard.
From the Dashboard, click New project. First, tell ImpRYnt what kind of project this is:
That choice shapes the questions the AI asks next. Describe what you're building in a sentence or two, and keep chatting — the AI (Claude, ChatGPT, or Gemini, whichever your organization has configured) will ask follow-ups until it has enough to draft a full plan. Review the proposed Domains and Modules, then click Create this project.
No AI provider configured yet? A plain form is offered instead, creating a single starter node you can build out by hand — see Settings below to add a key.
Every project is a hierarchy, drawn as a map instead of a flat list:
Tasks and Subtasks are the tickets your team actually works — everything above them is structure that gives those tickets context. Each node is color-coded by status: locked, not started, in progress, blocked, or completed, so you can see progress at a glance without opening anything.
Open any Task or Subtask to see its full detail: description, status, technical layer, and assignee. Only the assignee, or an organization Admin/Owner, can change a ticket's status or reassign it — everyone in the organization can view it.
The Tickets and Test Cases pages (top nav) list everything across every project you have access to, with search and filters — useful when you want a flat view instead of navigating the map.
From Settings, invite teammates by email — they'll get an email with a link to join. You can also copy the invite link directly if it's easier to share some other way.
Projects change. Regenerate plan (from the project header) replaces the entire node tree with a fresh AI-drafted one — everything you've completed or edited is replaced, so use it deliberately. Every regeneration is saved as a version, and Version history lets you inspect or restore any previous one.
The bell icon opens your Notification Centre — updates on tickets assigned to you, like new comments or status changes. On the Dashboard, the Welcome back widget lists everything currently open in your name so you always know where to pick up.
The Milestone Map (top nav on any project) reorganizes your Task and Subtask tickets into a linear roadmap — Step 1 through the Final Step — instead of the full Domain-to-Subtask tree. Generate it with AI from your existing tickets, or build it by hand.
No repo connected, or a ticket you'd rather do yourself? Set its status and assignee directly on the Milestone Map — no AI or GitHub required, and it's always free.
Shipped something you're proud of? Flip Showcase (in the project toolbar, Owner/Admin only) to list it on ImpRYnt's public homepage, linking straight to wherever you've deployed the real app.
Two building blocks, both under Settings → Connectors (organization Owner/Admin only), let ImpRYnt talk to anything else you use — directly, or via Zapier, Make, n8n, a CI pipeline, or your own script.
Create a token, then call the API with it as a Bearer token:
curl https://imprynt.space/api/v1/tickets?status=BLOCKED \
-H "Authorization: Bearer imp_xxxxxxxxxxxxxxxxxxxxxxxx"
curl -X PATCH https://imprynt.space/api/v1/tickets/<ticketId> \
-H "Authorization: Bearer imp_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"status": "COMPLETED"}'Every delivery includes an X-Imprynt-Signature header — an HMAC-SHA256 hex digest of the raw request body, signed with the secret shown when you created the webhook. Recompute it on your end and compare before trusting the payload:
const crypto = require("node:crypto");
const expected = "sha256=" + crypto
.createHmac("sha256", webhookSecret)
.update(rawRequestBody) // the exact bytes received, before JSON.parse
.digest("hex");
if (expected !== req.headers["x-imprynt-signature"]) {
throw new Error("Invalid webhook signature");
}Stuck, or found something broken? Message us on WhatsApp for the fastest reply, or use the chat bubble in the bottom corner of any page or the contact form on the homepage — all three reach the team directly.
Ready to see it in action?
Create a free account — no credit card required.